您的相关矩阵应该是对称的。这意味着,如果你把对角线以下的所有东西都放在对角线之上,那么它与对角线以上所有东西的镜像相同。这必须是相关矩阵的情况,因为 xi 和 xj 的相关性应该与 xj 和 xi 的相关性相同。
我将制作一个 11x11 矩阵,因为我不想输入您的 50x50 矩阵。高相关性部分看起来像这样。
1 .8 .8 .8 .8 .8 .8 .8
.8 1 .8 .8 .8 .8 .8 .8
.8 .8 1 .8 .8 .8 .8 .8
.8 .8 .8 1 .8 .8 .8 .8
.8 .8 .8 .8 1 .8 .8 .8
.8 .8 .8 .8 .8 1 .8 .8
.8 .8 .8 .8 .8 .8 1 .8
.8 .8 .8 .8 .8 .8 .8 1
这是您的前 8 个变量的矩阵。然后再添加 3 个与您拥有的 8 个以及彼此之间相关性较低的 3 个。
1 .8 .8 .8 .8 .8 .8 .8 .2 .2 .2
.8 1 .8 .8 .8 .8 .8 .8 .2 .2 .2
.8 .8 1 .8 .8 .8 .8 .8 .2 .2 .2
.8 .8 .8 1 .8 .8 .8 .8 .2 .2 .2
.8 .8 .8 .8 1 .8 .8 .8 .2 .2 .2
.8 .8 .8 .8 .8 1 .8 .8 .2 .2 .2
.8 .8 .8 .8 .8 .8 1 .8 .2 .2 .2
.8 .8 .8 .8 .8 .8 .8 1 .2 .2 .2
.2 .2 .2 .2 .2 .2 .2 .2 1 .2 .2
.2 .2 .2 .2 .2 .2 .2 .2 .2 1 .2
.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 1
该矩阵可分为 4 个部分。仅高度相关变量 x1 到 x8 之间具有相关性的部分,即左上部分。仅具有低相关变量 x9 到 x11 之间相关性的部分,右下角。最后右上和左下是三与八的相关性。这两个必须相互转置。
在 R 中有很多方法可以构建这个矩阵。
cormat=matrix(.8,nrow=11,ncol=11)
cormat[,9:11]=.2 #set the right columns
cormat[9:11,]=.2 #set the bottom rows
diag(cormat)=1 #set the diagonal
如果您担心矩阵不是正定的,只需检查特征值是否都是正的
eigen(cormat)$values