我不久前也做过类似的事情。我粘贴了一些针对 3 个相关变量的代码,但它可以很容易地推广到更复杂的东西。
首先创建一个F矩阵:
cor_Matrix <- matrix(c (1.00, 0.90, 0.20 ,
0.90, 1.00, 0.40 ,
0.20, 0.40, 1.00),
nrow=3,ncol=3,byrow=TRUE)
这可以是任意相关矩阵。
library(psych)
fit<-principal(cor_Matrix, nfactors=3, rotate="none")
fit$loadings
loadings<-matrix(fit$loadings[1:3, 1:3],nrow=3,ncol=3,byrow=F)
loadings
#create three rannor variable
cases <- t(replicate(3, rnorm(3000)) ) #edited, changed to 3000 cases from 150 cases
multivar <- loadings %*% cases
T_multivar <- t(multivar)
var<-as.data.frame(T_multivar)
cor(var)
同样,这可以概括。上面列出的方法不会创建多变量数据集。