当前位置:   article > 正文

R 语言 因子分析_r语言 因子分析

r语言 因子分析
  1. #因子分析
  2. options(digits=2)
  3. covariances <- ability.cov$cov
  4. #将协方差矩阵转化为相关系数矩阵
  5. correlations <- cov2cor(covariances)
  6. #第一步:判断需提取的公共因子数
  7. library(psych)
  8. covariances <- ability.cov$cov
  9. correlations <- cov2cor(covariances)
  10. fa.parallel(correlations, n.obs=112, fa="both", n.iter=100,
  11. main="Scree plots with parallel analysis")
  12. fa(correlations, nfactors=2, rotate="none", fm="pa")
  13. #因子旋转(正交旋转:使用正交旋转将人为地强制两个因子不相关)
  14. fa.varimax <- fa(correlations, nfactors=2, rotate="varimax", fm="pa")
  15. fa.varimax
  16. #因子旋转(正交旋转:使用斜交旋转将人为地强制两个因子不相关)
  17. fa.promax <- fa(correlations, nfactors=1, rotate="promax", fm="pa")
  18. fa.promax
  19. #因子结构矩阵
  20. fsm <- function(oblique) {
  21. if (class(oblique)[2]=="fa" & is.null(oblique$Phi)) {
  22. warning("Object doesn't look like oblique EFA")
  23. } else {
  24. P <- unclass(oblique$loading)
  25. F <- P %*% oblique$Phi
  26. colnames(F) <- c("PA1", "PA2")
  27. return(F)
  28. }
  29. }
  30. fsm(fa.varimax)

现在你可以看到变量与因子间的相关系数。将它们与正交旋转所得因子载荷阵相比,你会发
现该载荷阵列的噪音比较大,这是因为之前你允许潜在因子相关。虽然斜交方法更为复杂,但模
型将更符合真实数据。
使用factor.plot()或fa.diagram()函数,你可以绘制正交或者斜交结果的图形。来看

以下代码:

factor.plot(fa.promax, labels=rownames(fa.promax$loadings))

相比PCA,EFA并不那么关注计算因子得分。在fa()函数中添加score = TRUE选项(原始
数据可得时)便可很轻松地获得因子得分。另外还可以得到得分系数(标准化的回归权重),它
在返回对象的weights元素中。
对于ability.cov数据集,通过二因子斜交旋转法便可获得用来计算因子得分的权重:

  1. fa.promax$weights
  2. [,1] [,2]
  3. general 0.080 0.210
  4. picture 0.021 0.090
  5. blocks 0.044 0.695
  6. maze 0.027 0.035
  7. reading 0.739 0.044
  8. vocab 0.176 0.039

与可精确计算的主成分得分不同,因子得分只是估计得到的。它的估计方法有多种,fa()

函数使用的是回归方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/94218
推荐阅读
相关标签
  

闽ICP备14008679号