主成分分析(Principal Component Analysis,PCA)是一种统计方法。PCA以降维方式,在损失很少信息的前提下通过正交变换将一组可能存在相关性的变量(多个指标)转换为一组线性不相关的变量(少数几个综合指标)。转换生成的综合指标称之为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,这就使得主成分比原始变量具有某些更优越的代表性。在环境学领域,PCA分析能够从总体上反映各组样本之间的总体差异和组内样本之间的变异度大小。通常我们可以使用SPSS、SIMCA-P、PAST软件来实现数据的PCA分析,而SPSS菜单式的PCA分析重点在于通过对样本的多指标变量进行降维计算各样本的主成分综合得分,据此反映某种综合指标的水平,定量地对其排序评价。

一、PCA基本原理

如果用X1,X2,…,Xp表示P门课程,C1,C2,…,Cp表示各门课程的权重,那么加权之和就是学生的综合能力S=C1X1+C2X2+…+CpXp,我们希望分配适当的权重能更好地区分学生的成绩。每个学生对应一个这样的综合成绩,记为S1,S2,…,Sn,n为学生人数。因此,我们需要找到合适的C1,C2,…,Cp,使得S1,S2,…,Sn能尽可能地分散。当然,必须加上某种限制,否则权重值可选择无穷大而没有意义,通常规定为

此外,不仅仅只有一种权衡学生综合能力的标准,即一个主成分不足以代表原来的P个变量,因此需要寻找第二个、第三乃至第四主成分,第二个主成分不应该再包含第一个主成分的信息,数学统计上的描述就是让这两个主成分的协方差为零,几何上就是这两个主成分的方向正交。具体确定两个主成分的方法如下:

设Zi表示第i个主成分,i=1,2,…,p,可设

其中对每一个i,均有

二、分析步骤

①原始数据标准化(消除量纲或数量级的影响,SPSS自动计算)

假设进行主成分分析的指标变量有m个,X1,X2,…,Xm,共有n个评价对象。第i个评价对象的第j个指标的取值为Xij,将各指标值Xij转换成标准化指标

​即

分别为第j个指标的样本均值和样本标准差;对应的,称

为标准化指标变量。

②建立变量之间的相关系数矩阵R

式中rii=1, rij=rji, rij是第i个指标与第j个指标的相关系数。

③计算相关系数矩阵R的特征值和特征向量

计算相关系数矩阵R的特征值λ1≥λ2≥…≥λm≥0,及对应的特征向量u1,u2,…,um,其中uj=(u1j,u2j,…,unj)T,由特征向量组成m个新的指标变量:

式中y1是第1主成分,y2是第二主成分,…,ym是第m主成分。

④写出主成分并计算综合得分

Ⅰ 计算特征值λj(j=1,2,…,m)的信息贡献率和累积贡献率。

信息贡献率:

累积贡献率:

当αp接近于1(αp=0.85,0.90,0.95)时,则选择前p个指标变量y1,y2,…,yp作为p个主成分,代替原来m个指标变量,从而可对p个主成分进行综合分析;

Ⅱ 计算综合得分

其中,bj为第j个主成分的信息贡献率。

三、实例分析

(1)目的

对6种不同施肥处理的农田土样及背景土(Background soil,BS)的土壤理化指标进行主成分分析,并计算7块样地土壤主要理化指标的主成分综合得分并进行综合排序,用于评价土壤质量。

(2)数据

不同处理样地的主要理化指标(m)有如下8个,土壤pH,容重(g/cm3),全盐量(g/kg),有机质(g/kg),总氮(mg/kg),有效氮(mg/kg),总磷(mg/kg),有效磷(mg/kg)。关注“环微分析”公众号,后台回复“PCA”即可获取示例数据。

(3)实操

①导入数据

使用Excel将样地环境的理化数据整理为下图形式,即第一列为各处理采样点,第一行为样品的理化指标;

之后将除第一行的数据粘贴到SPPS数据视图中,然后将第一行的变量标签粘贴到变量视图中,整理后数据如下图:

②选项操作

选择分析>降维>因子分析,打开“因子分析”对话框;

在原变量框中选中需要进行分析的变量,点击右边的箭头符号,将全部8个指标变量调入变量栏中;

提示:这里后续分析从相关矩阵出发求解,SPSS会对原始变量自动进行标准化,后续分析输出结果皆基于标准化后的变量进行,因此此处不必单独进行标准化操作。

Ⅰ 设置描述选项

单击“描述”选项,在“描述”对话框中“统计”栏保持默认“初始解”,输出结果中会显示主成分载荷的公因子方差(这一栏数据分析时用到);在“相关性矩阵”栏中勾选“系数”,则会给出原始变量的相关系数矩阵,继续勾选“KMO和巴特利特球形度检验”,单击继续按钮完成设置;

Ⅱ 设置提取选项框

“提取”对话框中,因子提取“方法”主要有7种,在“方法”栏中可以看到系统默认的提取方法是主成分,对此栏不作变动,即用“主成分”分析方法。“分析”栏中勾选“相关性矩阵”,此分析方式适用于各变量指标量纲不同或取值数量级相差较大(m,kg,t,%等),不可直接由其协方差矩阵进行主成分分析,应选择可将原始变量自动进行标准化的“相关矩阵”进行后续分析。而“协方差矩阵”一般只适用于被分析的各变量指标量纲相同且取值范围在同一数量级内,可直接基于原始变量从协方差矩阵出发求解。“提取”栏中,主成分分析选择“基于特征根”的主成分提取方法,由其决定主成分提取数目,系统默认特征值大于“1”,主成分得分的方差就是对应的特征值。一般默认特征值大于1,则所有方差大于1的主成分将被保留,其余舍弃。

主成分计算是利用迭代方法,系统默认的迭代次数是25次。但是,当数据量较大时,25次迭代是不够的,需要改为50次、100次乃至更多。对于本例而言,变量较少,25次迭代足够,故无需改动。设置完成以后,单击继续按钮完成设置;

Ⅲ 其他选项设置

对于主成分分析,“旋转”、“得分”项都保持不变;“选项”勾选“按大小排序”,则输出结果中的主成分将按照特征值从大到小的顺序依次排列,全部设置完成后,点击确定即可输出主成分分析结果;

③分析结果的解读

Ⅰ 相关性矩阵

相关性矩阵是变量两两之间相关系数大小的方阵,一般而言,相关系数较高的变量,大多会归入同一个主成分。同时,相关系数值也决定了PCA分析的适用性;

提示:PCA分析适用于变量之间存在较强相关性的数据,若原始数据相关性较弱,一般当原始数据大部分变量的相关系数都小于0.3时,PCA分析后不能得到很好的降维作用,所得各个主成分浓缩原始变量信息的能力相差不大。

Ⅱ KMO和Bartlett球形检验

KMO和巴特利特球形度检验结果表格中,若KMO值>0.6,说明数据适合做因子分析;巴特利特球形度检验的显著性P值<0.05,亦说明数据适合做因子分析。此外,若变量个数大于样本个数,输出结果中不会出现KMO检验表。(此示例未输出检验表,这里不做展示)因此我们可以通过相关性矩阵判断大部分指标之间具有一定相关性,可提取主成分分析;

Ⅲ 公因子方差

下表展示了变量的共同度,“提取”下面各变量共同度值皆>0.5,说明提取的主成分对于原始变量的解释程度比较高。本表在主成分分析中用处不大,此处列出来仅供参考。

④总方差解释

我们深入了解到PCA分析在数理统计学知识中通过推导选取k个特征向量组成新基进行投影降维,新基维数少于原来变量维数。选择新基的原则便是保留有更多原始信息,使原始变量向新基投影尽可能分散,投影后可以保留更多的信息,此时原始变量特征在前k个特征向量上作用程度最大,这种作用程度用特征值表示,而方差贡献率表示投影后信息的保留程度的变量,即:各特征值ki/k个特征值总和。

“总方差解释表”中在数值上初始特征根=主成分得分方差=相关系数矩阵的特征根,因此可以直接根据特征根计算每一个主成分的方差百分比(%)。由于全部特征根的总和等于变量数目m,即有

,故第一个特征根的方差百分比为λ1/m=3.829/8=47.866%,λ2/m=1.687/8=21.093%,其余以此类推。各方差贡献率相加之和等于累积方差贡献率,便可以算出方差百分比累计值。

在该表中,主成分得分的方差按顺序排列,在数值上等于相关系数矩阵的各个特征值λ。因为在前述“提取”选项中默认设置仅提取λ>1的主成分,这里仅提取λ>1的主成分。由下表可知,提取了三个主成分,方差累积贡献率为86.539%(一般要求>85%),三个特征值分别为3.829、1.687和1.406。上述说明这三个主成分基本包含了全部测量指标所具有的信息,所以决定用三个新变量代替原始8个变量;

⑤碎石图

碎石图可用来佐证主成分个数,即根据特征根数值趋势图的突变点决定主成分的数量。从特征根分布的折线图中可以看到,第4个λ值是一个明显的转折点,此点开始特征值大小趋势平缓,结合下面“成分矩阵”输出结果中所提取的主成分个数可以最终确定主成分个数为3;

⑥因子载荷矩阵

从成分矩阵表格中可以看到各指标变量在不同主成分上的载荷值,总氮、有机质、总磷、有效氮在第一主成分上载荷较大,亦即与第一主成分的相关系数较高;全盐量在第二主成分上的载荷绝对值较大,即负相关程度较高;容重在第三主成分的载荷较大,即相关程度较高。

根据数理统计相关知识,主成分分析的变换矩阵即主成分载荷矩阵U与因子载荷矩阵A及特征值的数学关系由式

,故可以由因子载荷矩阵和特征值来计算求得主成分载荷矩阵U。

在原始SPSS数据文件中,将因子载荷矩阵中的各个载荷值复制进去,如下图所示:

主成分载荷矩阵U的计算变量(Transform-Compute Variables)公式和过程分别如下图所示,点击转换>计算变量>分别输入目标变量(U1、U2、U3)>输入数学表达式”;

计算变量得到的三个特征向量U1、U2和U3如下图所示(U1、U2、U3合并即为主成分载荷矩阵);

所以可得到三个主成分Y1、Y2、Y3的表达式如下:

Y1=0.485X1+0.439X2+0.425X3+0.401X4+0.337X5-0.193X6+0.277X7-0.054X8

Y2=0.134X1-0.039X2-0.120X3+0.220X4+0.462X5+0.631X6-0.480X7-0.273X8

Y3=-0.156X1+0.234X2+0.260X3-.0303X4-0.234X5+0.192X6-0.375X7+0.727X8

由上述表达式可通过计算变量得到主成分Y1、Y2、Y3的值。需要注意在计算变量之前,需要对原始变量进行标准化处理,上述Y1、Y2、Y3表达式中的X1~X8应为各原始变量的标准化值,而不是原始值。(本操作须在SPSS原始数据文件中进行)

变量标准化操作:调用“分析-描述统计-描述”对话框,将各个原始变量移入变量框,并勾选“将标准化值另存为变量”,如下图所示:

得到各个原始变量的标准化值如下图:

ZpH即为X1,Z容重即为X2,…,Z有效磷即为X8,以此类推;

⑦主成分计算

调用计算变量模块转换>计算变量,输入目标变量(Y1、Y2、Y3)和数字表达式,如下三图所示:

按照上述步骤,求得主成分Y1、Y2和Y3;

​通过上述主成分得分,可以进行聚类分析或综合得分评价,聚类分析这里不详述,下面补充介绍综合得分的计算:

根据公式,综合得分为Y=W1*Y1+W2*Y2+W3*Y3,W1、W2和W3值等于方差贡献率。本例中,三个权重分别是0.47866、0.21093和0.17578,故Y= 0.47866*Y1+0.21093*Y2+0.17578*Y3;

提示:若需对权重进行归一化处理,则W1、W2和W3分别是47.866/86.538、21.093/86.538和17.578/86.538,则Y=(0.47866*Y1+0.21093*Y2+0.17578*Y3)/0.86538。

此处,以未归一化的权重为例,通过计算变量可以得到主成分综合评价得分Y,操作过程如下图所示:

最终得到综合评价得分Y值;

之后可用Origin 2019作图软件对各处理得分作图实现可视化,便于观察分析。

这篇推文对你有帮助吗?喜欢这篇文章吗?喜欢就不要错过呀,关注本知乎号查看更多的环境微生物生信分析相关文章。亦可以用微信扫描下方二维码关注“环微分析”微信公众号,小编在里面载入了更加完善的学习资料供广大生信分析研究者爱好者参考学习,也希望读者们发现错误后予以指出,小编愿与诸君共同进步!!!

学习环境微生物分析,关注“环微分析”公众号,持续更新,开源免费,敬请关注!

转载自原创文章:

基于SPSS的主成分分析(PCA)

最后,再次感谢你阅读本篇文章,真心希望对你有所帮助。感谢!

基于SPSS的主成分分析(PCA)相关推荐

  1. 基于spss的主成分分析法(Principal Component Analysis,PCA)

    主成分分析(Principal Component Analysis,PCA), 将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法. 在实际课题中,为了全面分析问题,往往提出很多与此 ...

  2. 基于特征向量的主成分分析(PCA)原理解释

    引子 首先看一下如何对一维向量的进行分解,我们知道,一个 nnn 维向量 aaa 可以由 nnn 个正交向量线性 vi,i=1,2,...,nv_i,i=1,2,...,nvi​,i=1,2,..., ...

  3. 普通玩家版基于SPSS的PCA攻略

    这是一篇精准打击PCA之基于SPSS实战 我请我自己写一个普通玩家版基于SPSS平台的PCA攻略,以防我这个笨蛋白痴下次又重新学过.. PCA是什么? 主成分分析法(PCA), 是一种常用的无监督学习 ...

  4. 主成分分析(PCA)和基于核函数的主成分分析(KPCA)入门

    文章目录 1 前言 2 PCA的原理 2.1 什么是投影 2.2 投影后的方差 2.3 转化为求特征值的问题 2.4 符号的表示 3 KPCA的原理 4 PCA和KPCA在Python中的使用 4.1 ...

  5. 基于主成分分析PCA的人脸识别

    经过本人复现分析,该篇博客代码不全且存在部分错误,思路仅供参考,望周知. 目录 主成分分析PCA 基于PCA的人脸识别算法 matlab代码 主成分分析PCA 主成分分析(Principal Comp ...

  6. 基于主成分分析(PCA)的人脸识别

    基于主成分分析(PCA)的人脸识别 (完整Matlab代码) (有GUI界面) 本设计会将彩色图片直接转化为黑白图像,自带数据库,图片重建效果好很多 自己的图片可能会差一些,效果如下图所示: ID:6 ...

  7. 【ML】主成分分析 PCA(Principal Component Analysis)原理 + 实践 (基于sklearn)

    [ML]主成分分析 PCA(Principal Component Analysis)原理 + 实践 (基于sklearn) 原理简介 实践 数据集 数据处理 使用KNN模型进行分类预测(为了和PCA ...

  8. 主成分分析(PCA)简介

    主成分分析(Principal Components Analysis, PCA)是一个简单的机器学习算法,可以通过基础的线性代数知识推导. 假设在Rn空间中我们有m个点{x(1),-,x(m)},我 ...

  9. 223.主成分分析PCA

    主成分分析 PCA 本节作者:刘华,中国科学技术大学 版本1.0.3,更新日期:2020年6月18日 什么是PCA(Principal Component Analysis) 相关背景 在许多领域的研 ...

最新文章

  1. 浅谈数据分析的魅力和能力要求!
  2. 物联网可应用于十大行业嘛?
  3. java 按行读取大文件文件内容_Java实现按行读取大文件
  4. DroidPilot V2.1 手写功能特别版
  5. 解决text-overflow: ellipsis;不生效的问题
  6. 63个优秀测试网站地址【个人总结】
  7. 注册域名需要资格吗_考教师资格证需要居住证吗?
  8. 删除临时表并且插入数据
  9. 【图嵌入】Graph Embedding 方法之 LINE 原理解读
  10. kruskal算法java_克鲁斯卡尔算法(Kruskal)的java实现
  11. 【渝粤教育】国家开放大学2018年春季 3780-21T燃气设备操作与维护 参考试题
  12. 基于XMPP实现的Openfire的配置安装+Android客户端的实现
  13. 三方应用集成_华为携手利尔达完成业界首个5G工业智能网关预商用集成验证
  14. 电脑使用故障排除150例
  15. 用 CAShapeLayer、毛玻璃镂空效果创建加载动画
  16. IDC是什么意思,中小企业如何选择IDC机房?
  17. windows 2003 系统中安装 火狐浏览器
  18. MySQL 2003报错解决方案
  19. 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入
  20. Postman导入数据批量测试

热门文章

  1. java招投标系统 招投标系统简介 招投标系统源码
  2. 2020年国内云服务器排名 哪家性价高一些?
  3. 常熟理工php实验三_常熟理工学院新闻网
  4. 在iPhone应用里直接打开app store 评论页面的方法
  5. 学习虚幻引擎UMG的基础
  6. 【元胞自动机】元胞自动机单车道交通流(时空图)【含Matlab源码 1681期】
  7. 教材征订管理系统c语言,基于C语言的图书管理系统的设计与实现范文.doc
  8. 施密特正交化单位化目的:AA(转置)=E 得到Q(转置)=Q(逆); 单位化,正交化目的; 相似矩阵理解; 为什么特征向量构成P; 余子式和代数余子式; 特征向量; 对角化; 标准化;
  9. Imageware NX V12.1最好的逆向工程软件之一,Surfacer的最新版本
  10. java servlet面试题_Java面试题总结系列 Servlet