全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
7018 8
2015-08-30
悬赏 5 个论坛币 未解决
同样一组数据,我用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 12:41:45
算法不同,涉及到模型具体参数设置,有些与数据存储也有关系。
二维码

扫码加我 拉你入群

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

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

2015-8-30 12:44:21
lzsxy2009 发表于 2015-8-30 12:41
算法不同,涉及到模型具体参数设置,有些与数据存储也有关系。
问题是这几种结果完全背道而驰啊,除了SPSS和r软件中的rda函数结果算是比较接近的。肯定是哪儿出了问题,就是一个正负数的问题,还请多多指教。
原始数据很简单的。
二维码

扫码加我 拉你入群

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

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

2015-8-31 11:06:24
为什么都没有人回复?问题太简单了吗?大家都没有碰到这种问题?
我也是刚接触,只知道操作不明所以。还请高手多多指教啊
二维码

扫码加我 拉你入群

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

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

2015-8-31 22:07:00
我将这个问题凝练下:
为什么不同软件计算出来的因子载荷数值可能互为相反数?
二维码

扫码加我 拉你入群

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

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

2015-9-8 21:11:35
http://www.ilovematlab.cn/thread-203720-1-1.html
http://www.zybang.com/question/329e58313c20d595115355cfd1323141.html
http://www.zybang.com/question/6ce3a2ea57eda77ff3e48ee1ac4e8b47.html
https://bbs.pinggu.org/thread-828716-1-1.html
http://emuch.net/bbs/viewthread.php?tid=3664445
一些帖子,供参考
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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