#*基于不同因子载荷矩阵的估计方法,不同因子得分的估计方法下的因子分析,进行综合评价*# #*作者:独闯阳光道# #*邮箱: weili (欢迎交流经验) #*博客地址:: *# #*版本:w0.2*# #*时间:2015-3-28*# rm(list=ls(all=t)) #清除环境变量 test-data.frame( x1=c(148, 139, 160, 149, 159, 142, 153, 150, 151, 139, 140, 161, 158, 140, 137, 152, 149, 145, 160, 156, 151, 147, 157, 147, 157, 151, 144, 141, 139, 148), x2=c(41, 34, 49, 36, 45, 31, 43, 43, 42, 31, 29, 47, 49, 33, 31, 35, 47, 35, 47, 44, 42, 38, 39, 30, 48, 36, 36, 30, 32, 38), x3=c(72, 71, 77, 67, 80, 66, 76, 77, 77, 68, 64, 78, 78, 67, 66, 73, 82, 70, 74, 78, 73, 73, 68, 65, 80, 74, 68, 67, 68, 70), x4=c(78, 76, 86, 79, 86, 76, 83, 79, 80, 74, 74, 84, 83, 77, 73, 79, 79, 77, 87, 85, 82, 78, 80, 75, 88, 80, 76, 76, 73, 78) )#载入数据. library(psych) #利用psych包中的函数进行主成分分析 test-scale(test) #对原始数据无量纲化处理(标准化) kmo(qysj1) #kmo检验通过. cortest.bartlett(test) #球形检验亦通过,故适合做因子分析 ##平行分析 fa.parallel(test,fa="fa",n.iter=100,main="基于平行分析的碎石图") #确定主因子个数nfactor load.method-c( pa , minres , wls , gls , ml ) #5种构造因子分析的方法,这里一共20种组合 score.method-c( regression , bartlett , th rstone , tenberge ) #4种估计因子得分的方法 ##2个for循环,将每种组合得到的结果放入all.pj中,得到所有评价 k-1;all.pj-list for(scores in score.method[1:4]){ for(fms in load.method){ pc-fa(test,nfactor=1,score=scores,fm=fms,rotate= varimax ) score-as.vector(pc$score) #计算主因子得分 all.pj[[k-data.frame(sample=paste( 样本 ,order(score,decreasing=t),sep= ),paiming=paste("第",1:dim(test)[1],"名",sep=""),defen=sort (score,decreasing=t)) ;