R STAN - 如何制定多元协方差矩阵
R STAN - How to formulate multivariate co-variance matrix
我目前正在使用 R stan 来拟合多元正态分布。当前型号为
b ~ MVN ( 0 , 西格玛 )
哪里
b = ( x1 , x2 , x3 )
0 = ( 0 , 0 ,0 )
西格玛=
我可以使用以下方法构建协方差矩阵:
parameters {
row_vector b[3];
real<lower=0> b_sigma[3];
real<lower=-1, upper=1> b_rho[3];
}
transformed parameters {
matrix[3,3] b_SIGMA;
b_SIGMA[1,1] = b_sigma[1] ^ 2;
b_SIGMA[2,2] = b_sigma[2] ^ 2;
b_SIGMA[3,3] = b_sigma[3] ^ 2;
b_SIGMA[1,2] = b_rho[1] * b_sigma[1] * b_sigma[2] ;
b_SIGMA[2,1] = b_rho[1] * b_sigma[1] * b_sigma[2] ;
b_SIGMA[3,1] = b_rho[2] * b_sigma[1] * b_sigma[3];
b_SIGMA[1,3] = b_rho[2] * b_sigma[1] * b_sigma[3];
b_SIGMA[2,3] = b_rho[3] * b_sigma[2] * b_sigma[3];
b_SIGMA[3,2] = b_rho[3] * b_sigma[2] * b_sigma[3];
}
然而,这对我来说似乎非常手动且效率低下。是否有适当或推荐的方法来构建此类方差结构?
高度相关的说明 PROC MIXED in SAS 提供了广泛的 "out the box" 方差结构,例如非结构化、复合对称、自回归等。STAN 中是否有等效项,或者我是否需要手动每次构建它们?
注意:由于这个问题更具理论性,我认为数据 + 一个完整的示例是没有用的。我很乐意提供数据 + 完整的工作示例,但如果人们想玩弄它或不这么认为的话。
您的构造不能保证产生正定矩阵。有一个 cov_matrix
类型和一个 cholesky_cov_matrix
类型可以保证正定性。后者与 multi_normal_cholesky
参数化一起使用。我们通常推荐对相关矩阵进行缩放,有并行类型。
Stan 中没有现成的方差结构。但是 RStanArm 中有几个,这可能是您正在寻找的更多内容。它是一种比 Stan 本身更高级的语言,可以让您指定自回归和很快的空间模型以及各种层次结构。并且它会自动使用 QR 分解进行预处理。
我目前正在使用 R stan 来拟合多元正态分布。当前型号为
b ~ MVN ( 0 , 西格玛 )
哪里
b = ( x1 , x2 , x3 )
0 = ( 0 , 0 ,0 )
西格玛=
我可以使用以下方法构建协方差矩阵:
parameters {
row_vector b[3];
real<lower=0> b_sigma[3];
real<lower=-1, upper=1> b_rho[3];
}
transformed parameters {
matrix[3,3] b_SIGMA;
b_SIGMA[1,1] = b_sigma[1] ^ 2;
b_SIGMA[2,2] = b_sigma[2] ^ 2;
b_SIGMA[3,3] = b_sigma[3] ^ 2;
b_SIGMA[1,2] = b_rho[1] * b_sigma[1] * b_sigma[2] ;
b_SIGMA[2,1] = b_rho[1] * b_sigma[1] * b_sigma[2] ;
b_SIGMA[3,1] = b_rho[2] * b_sigma[1] * b_sigma[3];
b_SIGMA[1,3] = b_rho[2] * b_sigma[1] * b_sigma[3];
b_SIGMA[2,3] = b_rho[3] * b_sigma[2] * b_sigma[3];
b_SIGMA[3,2] = b_rho[3] * b_sigma[2] * b_sigma[3];
}
然而,这对我来说似乎非常手动且效率低下。是否有适当或推荐的方法来构建此类方差结构?
高度相关的说明 PROC MIXED in SAS 提供了广泛的 "out the box" 方差结构,例如非结构化、复合对称、自回归等。STAN 中是否有等效项,或者我是否需要手动每次构建它们?
注意:由于这个问题更具理论性,我认为数据 + 一个完整的示例是没有用的。我很乐意提供数据 + 完整的工作示例,但如果人们想玩弄它或不这么认为的话。
您的构造不能保证产生正定矩阵。有一个 cov_matrix
类型和一个 cholesky_cov_matrix
类型可以保证正定性。后者与 multi_normal_cholesky
参数化一起使用。我们通常推荐对相关矩阵进行缩放,有并行类型。
Stan 中没有现成的方差结构。但是 RStanArm 中有几个,这可能是您正在寻找的更多内容。它是一种比 Stan 本身更高级的语言,可以让您指定自回归和很快的空间模型以及各种层次结构。并且它会自动使用 QR 分解进行预处理。