你問過如何使用裝載來構造分數。你的解決方案雖然正確,但沒有這樣做。它使用的是迴歸方法(或者也可以使用Bartlett的方法),並且這使用了分數不相關的約束,以0爲中心並且方差爲1.因此這些因素與通過使用F = ML,其中F是因子矩陣,M是原始矩陣,L是加載矩陣。
從幫助文件的實例演示:
v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
m1 <- cbind(v1,v2,v3,v4,v5,v6)
fa <- factanal(m1, factors=3,scores="regression")
fa$scores # the correct solution
fac <- m1 %*% loadings(fa) # the answer on your question
這顯然是不同的值。
編輯:這與Thomson迴歸分數基於比例變量並將相關矩陣考慮在內的事實有關。如果你會計算手的得分,你會怎麼做:
> fac2 <- scale(m1) %*% solve(cor(m1)) %*% loadings(fa)
> all.equal(fa$scores,as.matrix(fac2))
[1] TRUE
欲瞭解更多信息,請參閱this review
,並說明爲什麼它是重要的:如果你計算分數的「天真」的方式,你的分數實際上是相關的。這就是你想擺脫的第一個地方:
> round(cor(fac),2)
Factor1 Factor2 Factor3
Factor1 1.00 0.79 0.81
Factor2 0.79 1.00 0.82
Factor3 0.81 0.82 1.00
> round(cor(fac2),2)
Factor1 Factor2 Factor3
Factor1 1 0 0
Factor2 0 1 0
Factor3 0 0 1
是的,這就是我所要求的。標準化迴歸創造的這些分數的唯一好處是什麼?計算ML矩陣可以提供高度相關的變量(請參閱我的問題的編輯)。 – 2010-11-10 23:36:39
@ ran2:不,這些分數有一些更多的數學背後,這是在factanal的幫助文件中的稀疏解釋。更詳細的概述可以在這篇論文中找到:http://www.psy.ed.ac.uk/people/iand/Bartholomew%20%282009%29%20Br%20J%20Math%20Stat%20Psychol%20factor%20scores %20Thomson%20Spearman%20Bartlett.pdf – 2010-11-11 03:04:00
acc。 Thx的教訓,男人! – 2010-11-11 08:41:43