我想了解 psych 包中的 principal() 函数如何计算 $score 元素。
我想尝试协方差矩阵而不是相关矩阵。
model <- principal(mtcars[8:11],nfactors=4, rotate='none', scores=T, cov=T)
基本上,PCA的分数应该是原始中心数据的线性组合,使用加载矩阵作为权重,所以我尝试了:
test <- scale(mtcars[8:11], center=T, scale=F) %*% model$loadings / model$scores
我知道该principal()
函数对负载使用某种缩放,但是,每列的比率仍然应该相同,而test
.
如果我使用相关矩阵,这将不是问题。例如:
model <- principal(mtcars[8:11],nfactors=4, rotate='none', scores=T, cov=F)
test <- scale(mtcars[8:11], center=T, scale=T) %*% model$loadings / model$scores
帮助文档使用了因子分析的术语,这让我更加困惑。希望有人可以在这里启发我。
先感谢您!