matlab主成分分析散点图_matlab、R软件等做主成分分析结果不同?为什么?

博主对比了使用SPSS、MATLAB、R(princomp)和R(vegan::rda)对同一数据集进行主成分分析的结果,发现因子载荷和得分系数存在差异。尽管特征值和贡献率相同,但各软件计算出的因子载荷和得分值不一致,导致总分值不同。文章附带了原始数据和各软件的具体计算过程,希望得到专家的帮助以找出造成差异的原因。
摘要由CSDN通过智能技术生成

同样一组数据,我用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.010.020.650.01-0.650.01

硫化氢-0.39-0.490.620.68-0.390.490.390.49

二氧化碳-0.280.220.44-0.30-0.28-0.220.28-0.22

碳40.39-0.47-0.610.650.390.47-0.390.47

环氧氯丙烷-0.45-0.220.700.31-0.450.220.450.22

环己烷0.06-0.67-0.100.930.060.67-0.060.67其次看得分值。得分值的情况与因子载荷一样。由于得分值不同,最后计算的总分值也就不同了。

得分R princompR rdamatlabSPSS

Comp.1Comp.2PC1PC2PC1PC2PC1PC2

1-0.071.240.04-0.84-0.06-1.160.07-1.18

2-0.362.860.21-1.92-0.34-2.670.34-2.66

3-1.80-1.581.071.06-1.691.481.691.49

4-2.32-0.611.380.41-2.170.572.190.56

52.81-1.06-1.680.712.631.00-2.650.99

60.530.08-0.31-0.050.49-0.08-0.5-0.06

70.07-0.79-0.040.530.060.74-0.060.75

81.14-0.14-0.680.091.070.13-1.080.11

但是我不清楚问题出在哪里啊。

以下是每个方法的过程,请诸位看看:

R princomp函数:

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 10.0560.0840.0310.0380.0080.022

site 20.0490.0550.10.110.0220.007

site 30.0380.130.0790.170.0580.043

site 40.0340.0950.0580.160.20.029

site 50.0840.0660.0290.320.0120.041

site 60.0640.0720.10.210.0280.038

site 70.0480.0890.0620.260.0380.036

site 80.0690.0870.0270.250.0450.021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值