spss、R做出来的主成分分析因子载荷和得分结果不同
同样一组数据,我用spss、matlab、R中的princomp函数和vegan程序包中的rda函数多种计算方法做主成分分析,结果竟然不一样。我仔细看了下,特征值和贡献率都一样,问题出在因子载荷和得分系数上。我会给出原始数据,希望高手用自己熟悉的软件帮忙计算下啊,如果能同时用多个软件计算就更好了。实在感激不尽。
首先看因子载荷。以spss结果为准,princomp函数的PC2值刚好与spss结果为相反数;matlab的PC1结果与SPSS结果为相反数,rda函数与spss结果接近,数值有所差异。
因子载荷图
R princomp
R rda
matlab
SPSS
Comp.1
Comp.2
PC1
PC2
氯
0.65
-0.01
-1.01
0.02
0.65
0.01
-0.65
0.01
硫化氢
-0.39
-0.49
0.62
0.68
-0.39
0.49
0.39
0.49
二氧化碳
-0.28
0.22
0.44
-0.30
-0.28
-0.22
0.28
-0.22
碳4
0.39
-0.47
-0.61
0.65
0.39
0.47
-0.39
0.47
环氧氯丙烷
-0.45
-0.22
0.70
0.31
-0.45
0.22
0.45
0.22
环己烷
0.06
-0.67
-0.10
0.93
0.06
0.67
-0.06
0.67
其次看得分值。得分值的情况与因子载荷一样。由于得分值不同,最后计算的总分值也就不同了。
得分
R princomp
R rda
matlab
SPSS
Comp.1
Comp.2
PC1
PC2
PC1
PC2
PC1
PC2
1
-0.07
1.24
0.04
-0.84
-0.06
-1.16
0.07
-1.18
2
-0.36
2.86
0.21
-1.92
-0.34
-2.67
0.34
-2.66
3
-1.80
-1.58
1.07
1.06
-1.69
1.48
1.69
1.49
4
-2.32
-0.61
1.38
0.41
-2.17
0.57
2.19
0.56
5
2.81
-1.06
-1.68
0.71
2.63
1.00
-2.65
0.99
6
0.53
0.08
-0.31
-0.05
0.49
-0.08
-0.5
-0.06
7
0.07
-0.79
-0.04
0.53
0.06
0.74
-0.06
0.75
8
1.14
-0.14
-0.68
0.09
1.07
0.13
-1.08
0.11
但是我不清楚问题出在哪里啊。
以下是每个方法的过程,请诸位看看:
R princomp函数:
mydata
mydata=scale(mydata)
mydata.pr
mydata.pr$loadings[,1:2]
mydata.pr$scores[,1:2]
R rda函数:
rawdata
mydata.pca=rda(rawdata,scale=T)
summary(mydata.pca)
matlab:data为原始数据
sddata=zscore(data);%将数据进行标准化
[coeff,score,latent,tsquare,explained]=pca(sddata)
spss略。
原始数据很简单:
氯
硫化氢
二氧化碳
碳4
环氧氯丙烷
环己烷
site 1
0.056
0.084
0.031
0.038
0.008
0.022
site 2
0.049
0.055
0.1
0.11
0.022
0.007
site 3
0.038
0.13
0.079
0.17
0.058
0.043
site 4
0.034
0.095
0.058
0.16
0.2
0.029
site 5
0.084
0.066
0.029
0.32
0.012
0.041
site 6
0.064
0.072
0.1
0.21
0.028
0.038
site 7
0.048
0.089
0.062
0.26
0.038
0.036
site 8
0.069
0.087
0.027
0.25
0.045
0.021
其实仔细看结果,R princomp,matlab,SPSS的PCA结果是一样的。rda的算法不同啊。
喜欢 (6)or分享 (0)