RStan 中的协方差矩阵
Covariance matrix in RStan
我想在 RStan 中定义一个协方差矩阵。
类似于如何为标量和向量值提供约束,例如real a,我想提供协方差矩阵的前导对角线必须为正的约束,但非对角线分量可以取任何实数。
有没有办法强制矩阵也必须是半正定的?否则,产生的一些样本将不是有效的协方差矩阵。
是的,正在定义
cov_matrix[K] Sigma;
确保Sigma
是对称且正定的K x K
矩阵。由于浮点数,它可以减少为半定的,但我们会捕捉到它并引发异常以确保它保持严格的正定。
在幕后,Stan 使用了 Cholesky 因子变换——无约束表示是具有正对角线的下三角矩阵。我们只是将其用作实际参数,然后按照 reference manual chapter on constrained variables 所述在幕后隐式地转换和应用雅可比矩阵,以创建具有隐式(不正确的)均匀先验的协方差矩阵。
我想在 RStan 中定义一个协方差矩阵。
类似于如何为标量和向量值提供约束,例如real a,我想提供协方差矩阵的前导对角线必须为正的约束,但非对角线分量可以取任何实数。
有没有办法强制矩阵也必须是半正定的?否则,产生的一些样本将不是有效的协方差矩阵。
是的,正在定义
cov_matrix[K] Sigma;
确保Sigma
是对称且正定的K x K
矩阵。由于浮点数,它可以减少为半定的,但我们会捕捉到它并引发异常以确保它保持严格的正定。
在幕后,Stan 使用了 Cholesky 因子变换——无约束表示是具有正对角线的下三角矩阵。我们只是将其用作实际参数,然后按照 reference manual chapter on constrained variables 所述在幕后隐式地转换和应用雅可比矩阵,以创建具有隐式(不正确的)均匀先验的协方差矩阵。