本站分享:AI、大数据、数据分析师培训认证考试,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训

spss、R做出来的主成分分析因子载荷和得分结果不同

r语言 cdadata 11783℃

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<-read.table (“E:/rawdata.txt”,header=TRUE)

mydata=scale(mydata)

mydata.pr<-princomp(mydata,cor= TRUE)

mydata.pr$loadings[,1:2]

mydata.pr$scores[,1:2]

 

R rda函数:

rawdata<-read.table (“E:/rawdata.txt”,header=TRUE)

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的算法不同啊。

转载请注明:数据分析 » spss、R做出来的主成分分析因子载荷和得分结果不同

喜欢 (16)or分享 (0)