全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
16682 10
2015-08-29
同样一组数据,我用spss、matlab、R中的princomp函数和vegan程序包中的rda函数多种计算方法做主成分分析,结果竟然不一样。我仔细看了下,特征值和贡献率都一样,问题出在因子载荷和得分系数上。我会给出原始数据,希望高手用自己熟悉的软件帮忙计算下啊,如果能同时用多个软件计算就更好了。实在感激不尽。
首先看因子载荷。以spss结果为准,princomp函数的PC2值刚好与spss结果为相反数;matlab的PC1结果与SPSS结果为相反数,rda函数与spss结果接近,数值有所差异。

因子载荷图
R princompR rdamatlabSPSS
Comp.1Comp.2PC1PC2
   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 princompR rdamatlabSPSS
Comp.1Comp.2PC1PC2PC1PC2PC1PC2

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



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-8-30 16:26:08
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-30 17:15:57
ryoeng 发表于 2015-8-30 16:26
楼主还会 Matlab 和 SPSS 嚄!致敬~
只懂得皮毛,照猫画虎。
请指教啊。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-12-8 19:38:38
我也遇到了R语言和SPSS做出的载荷为相反数,请问楼主后来弄明白了吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-21 13:43:44
不知道为什么会这样?我用spss和r做的结果不一样
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-13 09:49:40
其实仔细看结果,R princomp,matlab,SPSS的PCA结果是一样的。rda的算法不同啊。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群