gpt4 book ai didi

r - 如何从事实创建因素?

转载 作者:行者123 更新时间:2023-12-02 10:57:11 25 4
gpt4 key购买 nike

使用事实进行因子分析时,通常的结果是一些载荷表以及一些其他信息。有没有直接的方法来使用这些载荷来创建因子的矩阵/数据框?例如稍后在回归分析中使用它们。

编辑:这样做的目的是获取后续建模的变量。我只知道因子得分 - 但欢迎提出其他术语的建议/指示:)

EDIT2:Joris Meys 的答案基本上就是我所要求的。尽管它使我的问题朝着可能更适合 statsoverflow 的方向发展,但我现在将其保留在这里,因为正确的人群正在讨论解决方案:

基于回归的分数有什么好处?产品(ML)的结果与因素高度相关......老实说,我想知道为什么在我的情况下差异那么大?

 fa$scores # the correct solution
fac <- m1 %*% loadings(fa) # the answer on your question
diag(cor(fac,fa$scores))
#returns:
Factor1 Factor2 Factor3
0.8309343 0.8272019 0.8070837

最佳答案

您询问如何使用载荷来构建分数。您的解决方案虽然正确,但不这样做。它使用回归方法(或者您也可以使用 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

这些显然是不同的值。

编辑:这与汤姆森回归分数基于缩放变量并考虑相关矩阵这一事实有关。如果您手动计算分数,您会这样做:

> 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

关于r - 如何从事实创建因素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com