1

我正在通过 psych 包进行因子分析。

cormat <- polychoric(na.omit(mself1))
##Warning message:
In cor.smooth(mat) : Matrix was not positive definite, smoothing was done
fa(cormat,nfactors=3,n.obs = 183 ,n.iter=1, rotate="oblimin",fm="ml")
## Error in if (dim(r)[1] == dim(r)[2]) { : argument is of length zero

我只是想知道为什么参数的长度为零,这意味着文件是空的,当我输入 cormat 时,Polychoric 矩阵就出来了。

我该如何解决这个问题,或者它有什么“不确定”?

谢谢!

4

1 回答 1

0

psych包将实际矩阵存储在您的 cormat 对象中的 $rho 中。在您的情况下,fa(cormat$rho)将解决该问题。Bill 还包括该fa.poly()函数,该函数将在对其进行因子分析之前从原始数据矩阵计算多变量相关性。

不过对你的结果要谨慎一点。您得到的矩阵是非 Gamian(即,具有负特征值),当它们被成对估计或您有较大的抽样误差时,可能会发生这种情况(请参阅 Garrido、Abad 和 Ponsosa,2013 年)。

于 2014-04-24T22:40:55.617 回答