楼主: gnehsijux
15140 10

[问答] spss、R做出来的主成分分析因子载荷和得分结果不同 [推广有奖]

  • 0关注
  • 1粉丝

初中生

14%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
135 点
帖子
7
精华
0
在线时间
14 小时
注册时间
2015-8-29
最后登录
2018-4-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
同样一组数据,我用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



二维码

扫码加我 拉你入群

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

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

关键词:主成分分析 结果不同 因子载荷 SPSS 主成分 主成分分析 SPSS matlab 因子载荷

沙发
ryoeng 在职认证  发表于 2015-8-30 16:26:08 |只看作者 |坛友微信交流群
提示: 作者被禁止或删除 内容自动屏蔽

使用道具

藤椅
gnehsijux 发表于 2015-8-30 17:15:57 |只看作者 |坛友微信交流群
ryoeng 发表于 2015-8-30 16:26
楼主还会 Matlab 和 SPSS 嚄!致敬~
只懂得皮毛,照猫画虎。
请指教啊。

使用道具

板凳
ajlisa 发表于 2015-12-8 19:38:38 |只看作者 |坛友微信交流群
我也遇到了R语言和SPSS做出的载荷为相反数,请问楼主后来弄明白了吗

使用道具

报纸
tim0532 发表于 2016-3-21 13:43:44 |只看作者 |坛友微信交流群
不知道为什么会这样?我用spss和r做的结果不一样

使用道具

地板
CXYIBCAS 发表于 2016-12-13 09:49:40 |只看作者 |坛友微信交流群
其实仔细看结果,R princomp,matlab,SPSS的PCA结果是一样的。rda的算法不同啊。

使用道具

7
i莉莉酱 学生认证  发表于 2018-1-20 01:21:02 |只看作者 |坛友微信交流群
你好,为什么要做这一步呢mydata=scale(mydata)

使用道具

8
高0316 发表于 2018-3-15 21:47:47 |只看作者 |坛友微信交流群
请问楼主问题解决了吗?我得到的结果也不同

使用道具

9
jinsha112 在职认证  发表于 2018-10-16 14:46:17 |只看作者 |坛友微信交流群
你好,请问你后来弄明白了吗

使用道具

10
JosephNatsu 发表于 2019-6-8 15:32:23 |只看作者 |坛友微信交流群
princomp函数输出的载荷并不是我们所说的载荷,它输出来的其实是主成分对应特征值的特征向量

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 08:23