应用R的factanal()的一个例子:
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)
factanal(m1, factors = 3) # varimax is the default
结果如下:
Call:
factanal(x = m1, factors = 3)
Uniquenesses:
v1 v2 v3 v4 v5 v6
0.005 0.101 0.005 0.224 0.084 0.005
Loadings:
Factor1 Factor2 Factor3
v1 0.944 0.182 0.267
v2 0.905 0.235 0.159
v3 0.236 0.210 0.946
v4 0.180 0.242 0.828
v5 0.242 0.881 0.286
v6 0.193 0.959 0.196
Factor1 Factor2 Factor3
SS loadings 1.893 1.886 1.797
Proportion Var 0.316 0.314 0.300
Cumulative Var 0.316 0.630 0.929
The degrees of freedom for the model is 0 and the fit was 0.4755
我关注的是因子累计贡献:
Cumulative Var 0.316 0.630 0.929
而用spss最大似然法(为了与R的factanal()函数算法对应)算出来的结果是:
总方差解释
因子 初始特征值
总计 方差百分比 累积 %
1 3.696 61.601 61.601
2 1.073 17.885 79.486
3 1.001 16.680 96.165
4 .161 2.683 98.849
5 .041 .683 99.531
6 .028 .469 100.000
提取方法:最大似然法。
用sas算出来的结果是:
[td]
| 相关矩阵的特征值: 总计 = 6 平均值 = 1 |
| | 特征值 | 差值 | 比例 | 累积 |
| 1 | 3.69603077 | 2.62291629 | 0.6160 | 0.6160 |
| 2 | 1.07311448 | 0.07234039 | 0.1789 | 0.7949 |
| 3 | 1.00077409 | 0.83977061 | 0.1668 | 0.9617 |
| 4 | 0.16100348 | 0.12004232 | 0.0268 | 0.9885 |
| 5 | 0.04096116 | 0.01284515 | 0.0068 | 0.9953 |
| 6 | 0.02811601 | | 0.0047 | 1.0000 |
可以看出,SPSS和SAS结果是相同的,而与R结果差异较大,请问是我哪里算错了吗?