【数模】主成分分析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…

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…

瞅一眼nginx

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

【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…

元宇宙3D数字虚拟客服打造年轻化、数字化营销新品牌

融合了元宇宙、AI和云计算等技术的虚拟数字人,成为元宇宙数字内容交互的载体,将现实世界中的人与虚拟数字世界的场景、模型及产品链接起来,特别是为电力企业打造的电力元宇宙平台,带来营销宣传多重好处的同时,树立了数…

TOPIAM 社区版 1.0.0 发布,开源 IAM/IDaaS 企业身份管理平台

文章目录 产品概述系统架构功能列表管理端门户端 技术架构后续规划相关地址 ​Hi,亲爱的朋友们,今天是传统 24 节气中的立秋,秋天是禾谷成熟、收获的季节。经过长时间优化和迭代,TOPIAM 企业身份管控平台也迎来了当下的成长和收获…

现代C++中的从头开始深度学习:【5/8】卷积

一、说明 在上一个故事中,我们介绍了机器学习的一些最相关的编码方面,例如 functional 规划、矢量化和线性代数规划。 现在,让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…

第17章-Spring AOP经典应用场景

文章目录 一、日志处理二、事务控制三、参数校验四、自定义注解五、AOP 方法失效问题1. ApplicationContext2. AopContext3. 注入自身 六、附录1. 示例代码 AOP 提供了一种面向切面操作的扩展机制,通常这些操作是与业务无关的,在实际应用中,可…

Netty框架自带类DefaultEventExecutorGroup的作用,用来做业务的并发

一、DefaultEventExecutorGroup的用途 DefaultEventExecutorGroup 是 Netty 框架中的一个类,用于管理和调度事件处理器(EventExecutor)的组。在 Netty 中,事件处理是通过多线程来完成的,EventExecutor 是处理事件的基…