【数模】主成分分析PCA

  • 主成分分析(Principal Component Analysis,PCA),是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。
  • 使用场景:一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,可考虑使用主成分分析的方法来对数据进行简化。

一、主成分分析的简要介绍

1.1 降维

  • 主成分分析:把原来多个变量划为少数几个综合指标的一种统计分析方法 → 降维
  • 降维的优点:
    • 使得数据集更易使用;
    • 降低算法的计算开销;
    • 去除噪声;
    • 使得结果容易理解。

1.2 PCA详细证明过程

  • 参考视频(需要基础:多元统计和线性代数)

二、PCA的计算步骤

假设有n个样本,p个指标,则可构成大小为n×p的样本矩阵x:在这里插入图片描述

2.1 标准化处理

在这里插入图片描述

2.2 计算标准化样本的协方差矩阵

在这里插入图片描述

( 2.1和2.2合并:直接计算x矩阵的样本相关系数矩阵 )

在这里插入图片描述

2.3 计算R的特征值和特征向量

  • 软件会算好,不必自己算,Matlab中计算特征值和特征向量的函数:eig(R)函数
  • R一定是半正定矩阵 → 则一定非负(线代知识)
    在这里插入图片描述

2.4 计算主成分贡献率以及累计贡献率

在这里插入图片描述

2.5 写出主成分

  • 一般取累计贡献率超过80%的特征值所对应的第一、第二、… 、第m(m≤p)个主成分。第i个主成分:F=a1iX1+ a2iX2+…十apiXp(i=1,2,…,m)

2.6 根据系数(api)分析主成分代表的意义

  • 对于某个主成分而言,指标前面的系数越大,代表该指标对于该主成分的影响越大

2.7 利用主成分的结果进行后续的分析

  1. 主成分得分:不能评价类模型!
  2. 主成分可用于聚类分析→方便画图
  3. 主成分可用于回归分析

三、主成分分析的应用例题1

3.1 题目

  • 在制定服装标准的过程中,对128名成年男子的身材进行了测量,每人测得的指标中含有这样六项:身高(x1)、坐高(x2) 、胸围(x3) 、手臂长(x4) 、肋围(x5)和腰围(x6) 。所得样本相关系数矩阵(对称矩阵)列于下表。
  • 注意:本题给我们的数据直接就是样本相关系数矩阵,一般建模时,得到的数据是最原始的数据(每一列是指标,每一行是样本)。在这里插入图片描述

3.2 计算关键变量

  • 经过计算,相关系数矩阵的特征值、相应的特征向量以及贡献率列于下表:在这里插入图片描述
  • 从表中可以看到前三个主成分的累计贡献率达85.9%,因此可以考虑只取前面三个主成分,它们能够很好地概括原始变量。

3.3 写出主成分并简要分析

在这里插入图片描述

  • 第一主成分F1对所有(标准化)原始变量都有近似相等的正载荷,故称第一主成分为(身材)大小成分。
  • 第二主成分F2在X3,X5,X6上有中等程度的正载荷,而在X1,X2,X4上有中等程度的负载荷,称第二主成分为形状成分(或胖瘦成分)。
  • 第三主成分F3在X2上有大的正载荷,在X4上有大的负载荷,而在其余变量上的载荷都较小,可称第三主成分为臂长成分。
  • 注:由于第三主成分的贡献率不高(7.65%)且实际意义也不太重要,因此我们也可以考虑只取前两个主成分进行分析。

3.4 主成分分析的说明

  • 在主成分分析中,我们首先应保证所提取的前几个主成分的累计贡献率达到一个较高的水平,其次对这些被提取的主成分必须都能够给出符合实际背景和意义的解释。
  • 主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。 因此,提取的主成分个数m通常应明显小于原始变量个数p(除非p本身较小),否则维数降低的“利”可能抵不过主成分含义不如原始变量清楚的“弊”。
  • 如果原始变量之间具有较高的相关性,则前面少数几个主成分的累计贡献率通常就能达到一个较高水平,也就是说,此时的累计贡献率通常较易得到满足。
  • 主成分分析的困难之处主要在于要能够给出主成分的较好解释,所提取的主成分中如有一个主成分解释不了,整个主成分分析也就失败了。
  • 主成分分析是变量降维的一种重要、常用的方法,简单的说,该方法要应用得成功,一是靠原始变量的合理选取,二是靠“运气”。
    ——参考教材:《应用多元统计分析》王学民

四、主成分分析的应用例题2

4.1 题目

在这里插入图片描述

4.2 计算关键变量

在这里插入图片描述

4.3 对主成分的简要分析

在这里插入图片描述
由上表可知,前两个主成分的累计贡献率已高达93.7%,第一主成分F1在所有变量上有几乎相等的正载荷,可称为在径赛项目上的强弱成分。第二主成分F2在各个指标上的载荷基本上逐个递减,反映了速度与耐力成绩的对比

4.4 Matlab代码

  • PCA.m(更加详细的代码注释可见源代码)
%% 第一步:对数据x标准化为X
X=zscore(x);%% 第二步:计算样本协方差矩阵
R = cov(X);
%% 注意:以上两步可合并为下面一步:直接计算样本相关系数矩阵
R = corrcoef(x);%% 第三步:计算R的特征值和特征向量
[V,D] = eig(R); % V 特征向量矩阵 D 特征值构成的对角矩阵%% 第四步:计算主成分贡献率和累计贡献率
lambda = diag(D); % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)
lambda = lambda(end:-1:1); % 因为lambda向量是从小大到排序的,我们将其调个头
% 计算贡献率
contribution_rate = lambda / sum(lambda);
% 计算累计贡献率 cumsum是求累加值的函数
cum_contribution_rate = cumsum(lambda)/ sum(lambda);
% 注意:这里的特征向量要和特征值一一对应,之前特征值相当于颠倒过来了,因此特征向量
的各列需要颠倒过来
% rot90函数可以使一个矩阵逆时针旋转90度,然后再转置,就可以实现将矩阵的列颠倒的效果
V=rot90(V)';
对相关系数R进行可视化
  • ①将R的数据复制到Excel表中,并设定行高为50在这里插入图片描述

  • ③色阶修改在这里插入图片描述

  • ④管理规则(颜色越深代表相关性越强)在这里插入图片描述

4.5 利用Matlab进行主成分分析

在这里插入图片描述

4.6 对结果的解释

在这里插入图片描述

从上表可以看出,前两个和前三个主成分的累计贡献率分别达到80.6%和87.8%,第一主成分F1在所有变量(除在x2上的载荷稍偏小外)上都有近似相等的正载荷,反映了综合消费性支出的水平,因此第一主成分可称为综合消费性支出成分。第二主成分F2在变量x2上有很高的正载荷,在变量x4上有中等的正载荷,而在其余变量上有负载荷或很小的正载荷。可以认为这个主成分度量了受地区气候影响的消费性支出(主要是衣着 ,其次是医疗保健 )在所有消费性支出中占的比重(也可理解为一种消费倾向),第二主成分可称为消费倾向成分。第三主成分很难给出明显的解释,因此我们只取前面两个主成分。


五、主成分分析的滥用:主成分得分

  • ①王学民老师在这里插入图片描述

  • ②清风老师的补充

    • 主成分是降维算法,既然已经有数据了,为什么不把这些数据的信息全部用上呢?主成分分析是会损失原始数据的信息的。
    • 指标可能有各种类型(极大、极小、区间等),主成分只有标准化的过程,并没有正向化的过程。
  • 滥用的例子:在这里插入图片描述


六、主成分分析用于聚类

  • Matlab生成结果复制进spss中
    在这里插入图片描述

  • 查看能大概分成几类:如下为3类在这里插入图片描述

    • 主成分和之前聚类模型对比生成的聚类结果:在这里插入图片描述
  • 生成聚类效果图在这里插入图片描述
    在这里插入图片描述

  • 聚类效果图:主成分聚类最大的意义就是可视化最后的聚类效果,毕竟使用主成分是会降低部分信息的。(只有在指标个数特别多,且指标之间存在很强的相关性时才用主成分聚类。)在这里插入图片描述


七、主成分回归

  • 主成分回归可用来解决多重共线性的问题。

7.1 例题:探究棉花单产和五个指标之间的关系在这里插入图片描述

7.2 主成分的解释

在这里插入图片描述

  • 从表中可以看出,前两个主成分的累计贡献率为97.74%,第一主成分F1在所有变量(除在x3上的载荷稍偏小外)上都有近似相等的正载荷,反映了在种植投入上较为综合的水平,因此第一主成分可称为综合投入成分。第二主成分F2在变量x3(农药)上有很高的负载荷,在变量x2上有较低的负载荷,而在其余变量上均为正载荷。可以认为这个主成分度量了受土壤环境影响的投入(主要是农药 ,其次是机械费用 )在所有投入中占的比重。

7.3 在Stata中回归结果

  • Stata回归代码:reg Y F1 F2
  • Stata异方差检验代码:estat imtest,white
  • 最重要解释回归系数,因为都是显著的
    在这里插入图片描述

八、思考

  • 问题1:之前学过逐步回归,逐步回归也可以用来解决多重共线性问题,该用逐步回归还是今天学习的主成分分析呢?
    • 如果能够很好的解释清楚主成分代表的含义,那么建议在正文中既用主成分分析,又用逐步回归(多分析点没啥坏处,只要你能保证你不分析错就行);如果解释不清楚,还是用逐步回归。
  • 问题2:主成分回归后,需要将原来的变量带回到回归方程吗?
    • 没必要。因为要是代回去了,和普通的回归没什么区别。主成分的核心作用就是降维,代回去了维度也没降。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jupyter文档转换成markdown

背景 上一篇文章**《如何优雅地用python生成模拟数据》**我就使用jupyter写的,这个真的是万能的,可以插入markdown格式的内容,也可写代码,关键是像ipython一样,可以分步执行。 我可以这样自由的写我的博客内容&#x…

linux 安装go 1.18版本

首先去官网找到对应的版本 直接下载下来(如果服务器可以直接访问到go 官网也可以wget直接下载到服务器) 然后把该包上传到linux 的/usr/local 目录下 然后直接解压安装该包: sudo tar -C /usr/local -zxvf go1.18.10.linux-amd64.tar.gz 然…

设计模式行为型——观察者模式

目录 什么是观察者模式 观察者模式的实现 观察者模式角色 观察者模式类图 观察者模式举例 观察者模式代码实现 观察者模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式…

【工程优化问题】基于多种智能优化算法的压力容器设计问题研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

ES6学习-Class类

class constructor 构造方法 this 代表实例对象 方法之间不需要逗号分隔,加了会报错。 typeof Point // "function" Point Point.prototype.constructor // true类的数据类型就是函数,类本身就指向构造函数。 类的所有方法都定义在类的pr…

VMware16.2.5版本虚拟机克隆服务步骤(图解版)

目录 一、VMware16.2.5版本虚拟机克隆服务具体步骤二、VMware16.2.5版本虚拟机克隆服务后如何配置静态ip 一、VMware16.2.5版本虚拟机克隆服务具体步骤 1.1、先停止需要克隆的服务,选中需要克隆的服务——>鼠标右键选择【电源】——>【关闭客户机】&#xff…

【Linux升级之路】5_基础IO

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux升级之路】 ✒️✒️本篇内容:文件操作,文件管理,重定向,简易shell添加重定向功能,文件属…

骑士牛(BFS)

题面 john用他的一头母牛和Don先生交换了一头“骑士牛”。这头牛有一个独特的能力——在牧场中能像中国象棋中的马一样跑跳(会中国象棋吗?不会?注意:本题不考虑马被“蹩脚”的情况)。 当然,这头牛不能跳到岩…

python接口自动化之正则用例参数化

前言 ​ 我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据。 ​ 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(Regular Expression,在代码中常简写…

【搜索框的匹配功能】

功能需求: 1. 输入关键字的同时,以下拉列表的形式显示匹配的内容; 2. 点击下拉列表的选项,跳转到对应的新的页面 注意:这里读取data.txt(检索的文件对象),会存在跨域的问题&#x…

ImportError: No module named pkg_resources

ImportError: No module named pkg_resources 当使用 pip 命令时,如果出现 ImportError: No module named pkg_resources 错误,通常表示你的 Python 环境中缺少了 setuptools 模块或该模块损坏。 解决此问题的一种方法是重新安装或升级 setuptools 模块…

瞅一眼nginx

目录 🦬什么是nginx? 🦬nginx配置官方yum源: 🦬nginx优点 🦬nginx 缺点 🦬查看nginx默认模块 🐌nginx新版本的配置文件: 🐌nginx目录索引 🐌nginx状态…

Echarts图表Java后端生成Base64图片格式,POI写入Base64图片到Word中

Echarts图表Java后端生成请看上篇,此篇为Base64图片插入Word文档中Java后台生成ECharts图片,并以Base64字符串返回_青冘的博客-CSDN博客 try {XWPFParagraph xwpfParagraphimage doc.createParagraph(); // 创建图片段落xwpfParagraphimage.setAlignment(Paragraph…

【C++】开源:ceres和g2o非线性优化库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍ceres和g2o非线性优化库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…

IT 基础架构自动化

什么是 IT 基础架构自动化 IT 基础架构自动化是通过使用技术来控制和管理构成 IT 基础架构的软件、硬件、存储和其他网络组件来减少人为干预的过程,目标是构建高效、可靠的 IT 环境。 为什么要自动化 IT 基础架构 为客户和员工提供无缝的数字体验已成为企业的当务…

【网络安全】等保测评系列预热

【网络安全】等保测评系列预热 前言1. 什么是等级保护?2. 为什么要做等保?3. 路人甲疑问? 一、等保测试1. 渗透测试流程1.1 明确目标1.2 信息搜集1.3 漏洞探索1.4 漏洞验证1.5 信息分析1.6 获取所需1.7 信息整理1.8 形成报告 2. 等保概述2.1 …

Nginx代理接口访问返回404

Nginx代理接口访问返回404 一、背景 因为不同业务系统间有接口调用,存在跨域问题,为了解决同源策略,需要将接口通过nginx去转发,但是配置完后通过postman请求一直存在访问404的问题。 访问地址:https://a.test.com/n…

卫星照片(dfs)

题面 农夫约翰总是想要一个农场的地图,所以他拍摄了一张 N 行 M 列的卫星照片。一部分的照片看起来像这样: .................. ..#####.......##.. ..#####......##... .................. #.......###.....#. #.....#####.......他认为每个联通块都是一…

【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)

【关键字】 视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】 上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid0101591351254…