Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >主成分分析(PCA)原理及R语言实现及分析实例

主成分分析(PCA)原理及R语言实现及分析实例

原创
作者头像
拓端
修改于 2020-09-27 02:46:48
修改于 2020-09-27 02:46:48
1.7K0
举报
文章被收录于专栏:拓端tecdat拓端tecdat

 原文链接:http://tecdat.cn/?p=8491

主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。例如,使用PCA可将30个相关(很可能冗余)的环境变量转化为5个无关的成分变量,并且尽可能地保留原始数据集的信息。

主成分分析模型,变量(X1到X5)映射为主成分(PC1,PC2)

  PCA分析的一般步骤如下:

  1. 数据预处理。PCA根据变量间的相关性来推导结果。用户可以输入原始数据矩阵或者相关系数矩阵到principal()和fa()函数中进行计算,在计算前请确保数据中没有缺失值。
  2. 判断要选择的主成分数目(这里不涉及因子分析)。
  3. 选择主成分(这里不涉及旋转)。
  4. 解释结果。
  5. 计算主成分得分。

  PCA的目标是用一组较少的不相关变量代替大量相关变量,同时尽可能保留初始变量的信息,这些推导所得的变量称为主成分,它们是观测变量的线性组合。如第一主成分为:

  它是k个观测变量的加权组合,对初始变量集的方差解释性最大。第二主成分也是初始变量的线性组合,对方差的解释性排第二,同时与第一主成分正交(不相关)。后面每一个主成分都最大化它对方差的解释程度,同时与之前所有的主成分都正交.我们都希望能用较少的主成分来解释全部变量。

数据集USJudgeRatings包含了律师对美国高等法院法官的评分。数据框包含43个样本,12个变量:

那么问题来了:是否能够用较少的变量来总结这12个变量评估的信息呢?如果可以,需要多少个?如何对它们进行定义呢?

首先判断主成分的数目,这里使用Cattell碎石检验,表示了特征值与主成数目的关系。一般的原则是:要保留的主成分的个数的特征值要大于1且大于平行分析的特征值。我们直接作图:

评价美国法官评分中要保留的主成分个数。碎石图(直线与x符号)、特征值大于1准则(水平线)和100次模拟的平行分析(虚线)都表明保留一个主成分即可

可以看出只有左上交Component Number为1的特征值是大于1且大于平行分析的特征值的。所以选择一个主成分即可保留数据集的大部分信息。下一步是使用principal()函数挑选出相应的主成分。

  可以看出第一主成分(PC1)基本与每个变量都高度相关(除了CONT),也就是说,它是一个可用来进行一般性评价的维度。   h2栏指成分公因子方差——主成分对每个变量的方差解释度。u2栏指成分唯一性——方差无法被主成分解释的比例(1-h2)。   SS loadings行包含了与主成分相关联的特征值,指的是与特定主成分相关联的标准化后的方差值(本例中,第一主成分的值为10)。最后,Proportion Var行表示的是每个主成分对整个数据集的解释程度。此处可以看到,第一主成分解释了12个变量84%的程度。

PC1$scores

  主成分得分

由于变量CONT与PC1的相关性太低,即PC1无法代表CONT,所以我们增加一个主成分PC2来代表CONT,结合上期的推送,作图如下:

可以看出,PC1(84.4%)和PC2(9.2%)共可以解释这12个变量的93.6的程度,除了CONT外的其他的11个变量与PC1都有较好的相关性,所以PC1与这11个变量基本斜交,而CONT不能被PC1表示,所以基本与PC1正交垂直,而PC2与CONT基本平行,表示其基本可以表示CONT。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言实现主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更小 的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。 1.R中的主成分和因子分析 R的基础安装包中提供了PCA和EFA的函数,分别为princomp ()和factanal() psych包中有用的因子分析函数 函数描述 principal()含多种可选的方差放置方法的主成分分析fa()可用主轴、最小残差、加权最
机器学习AI算法工程
2018/03/14
2.5K0
R语言实现主成分和因子分析
主成分分析
主成分分析(Principal Component Analysis,PCA),是考察多个变量间相关性的一种多元统计方法,基本思想[1]就是在保留原始变量尽可能多的信息的前提下达到降维的目的,从而简化问题的复杂性并抓住问题的主要矛盾。最后筛选出的几个替代原始数据的变量被称为主成分,它们是原始变量的线性组合,关系图如下:
庄闪闪
2021/04/09
1.1K0
R语言主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更小 的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。 1.R中的主成分和因子分析 R的基础安装包中提供了PCA和EFA的函数,分别为princomp ()和factanal() psych包中有用的因子分析函数 函数描述 principal()含多种可选的方差放置方法的主成分分析fa()可用主轴、最小残差、加权
机器学习AI算法工程
2018/03/13
2.7K0
R语言主成分和因子分析
R in action读书笔记(19)第十四章 主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显式的变量间的关系。
Ai学习的老章
2019/04/10
1.1K0
R in action读书笔记(19)第十四章 主成分和因子分析
R语言 主成分分析PCA(绘图+原理)
PCA 是一种较为常用的降维技术,PCA 的思想是将n维特征映射到k维上,这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征。在 PCA 中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。其中,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选取的是与第一个坐标轴正交且具有最大方差的方向,依次类推,我们可以取到这样的k个坐标轴。
拴小林
2021/05/31
14.2K0
R语言 主成分分析PCA(绘图+原理)
一文看懂主成分分析
主成分分析法是数据挖掘中常用的一种降维算法,是Pearson在1901年提出的,再后来由hotelling在1933年加以发展提出的一种多变量的统计方法,其最主要的用途在于“降维”,通过析取主成分显出的最大的个别差异,也可以用来削减回归分析和聚类分析中变量的数目,与因子分析类似。
生信技能树
2018/07/27
27.5K0
一文看懂主成分分析
R语言从入门到精通:Day14(PCA & tSNE)
主成分分析(Principle component analysis, PCA)前面我们已经用两期教程跟大家讲过理论和实际绘图(在线主成分分析Clustvis和主成分分析绘图)。今天,我们就从PCA的数理统计层面入手,去讲讲完整的PCA应该怎么操作。
用户6317549
2019/11/11
1.3K0
R语言从入门到精通:Day14(PCA & tSNE)
主成分分析①
principal() 含多种可选的方差旋转方法的主成分分析 fa() 可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析 fa.parallel() 含平行分析的碎石图 factor.plot() 绘制因子分析或主成分分析的结果 fa.diagram() 绘制因子分析或主成分的载荷矩阵 scree() 因子分析和主成分分析的碎石图
用户1359560
2018/08/27
8891
数据咖课堂:R语言十八讲(十八)—R实现主成分分析
之前我们在十七讲,将主成分分析的原理和计算过程了解了一遍,今天我们用工具R来实现这一模型.由于R软件中有多个函数可以处理这件事情,所以我们选用两个主要的来实现,一个是R自带的函数princomp和fa
小莹莹
2018/04/25
1.7K0
数据咖课堂:R语言十八讲(十八)—R实现主成分分析
R语言主成分分析
在医学研究中,为了客观、全面地分析问题,常要记录多个观察指标并考虑众多的影响因素,这样的数据虽然可以提供丰富的信息,但同时也使得数据的分析工作更趋复杂化。
医学和生信笔记
2023/02/14
6110
R语言主成分分析
R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类)
R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是在处理观测数目小于变量数目时无法发挥作用,例如基
CDA数据分析师
2018/02/08
8.9K0
R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类)
主成分分析(PCA)在R 及 Python中的实战指南
大数据文摘作品,转载要求见文末 编译团队|李小帅,姚佳灵 有太多不如没有!如果一个数据集有太多变量,会怎么样?这里有些可能的情况你也许会碰上—— 1.你发现大部分变量是相关的。2.你失去耐心,决定在整个数据集上建模。这个模型返回很差的精度,于是你的感觉很糟糕。3.你变得优柔寡断,不知道该做什么。4.你开始思考一些策略方法来找出几个重要变量。 相信我,处理这样的情形不是像听上去那样难。统计技术,比如,因子分析,主成分分析有助于解决这样的困难。在本文中,我详细地解释了主成分分析的概念。我一直保持说明简要而详实。
大数据文摘
2018/05/22
3K0
多元统计分析:主成分分析
长途电话通话时长 决定, 这5个指标是总量指标,说明一个城市的电信业务规模和电信通信业务发展水平
yiyun
2022/04/01
1.5K0
多元统计分析:主成分分析
【机器学习】--主成分分析PCA降维从初识到应用
主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
LhWorld哥陪你聊算法
2018/09/13
1.7K0
【机器学习】--主成分分析PCA降维从初识到应用
R语言PCA分析_r语言可视化代码
如果不对数据进行scale处理,本身数值大的基因对主成分的贡献会大。如果关注的是变量的相对大小对样品分类的贡献,则应SCALE,以防数值高的变量导入的大方差引入的偏见。但是定标(scale)可能会有一些负面效果,因为定标后变量之间的权重就是变得相同。如果我们的变量中有噪音的话,我们就在无形中把噪音和信息的权重变得相同,但PCA本身无法区分信号和噪音。在这样的情形下,我们就不必做定标。
全栈程序员站长
2022/11/07
2.9K0
R语言PCA分析_r语言可视化代码
R语言中的主成分方法:PCA分析和可视化实用指南
主成分分析(PCA)允许我们总结和可视化包含多个相互关联的定量变量描述的个体/观察的数据集中的信息。每个变量都可以被视为不同的维度。如果你的数据集中有3个以上的变量,那么可视化多维超空间可能会非常困难。
简说基因
2025/03/13
5521
R语言中的主成分方法:PCA分析和可视化实用指南
PCA主成分析原理、理解和代码实现
请注意,本文编写于 381 天前,最后修改于 67 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1K0
PCA主成分析原理、理解和代码实现
【数据分析 R语言实战】学习笔记 第十章(上) 主成分分析与R实现
主成分分析试图在保证数据信息丢失最少的原则下,将多变量的截面数据集进行最佳综合简化,简单地说就是根据多个指标之间的联系,选出它们的某种线性组合,从而化为少数几个综合指标。
Ai学习的老章
2019/04/10
4.5K0
【数据分析 R语言实战】学习笔记 第十章(上)  主成分分析与R实现
【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享|附代码数据
最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出。 降维技术之一是主成分分析 (PCA) 算法,该算法将可能相关变量的一组观察值转换为一组线性不相关变量。在本文中,我们将讨论如何通过使用 R编程语言使用主成分分析来减少数据维度分析葡萄酒数据
拓端
2022/12/23
1.3K0
R语言进阶之主成分分析
‍今天我们将要学习R语言进阶中最重要的统计内容---主成分分析,它在我们的研究中几乎是无处不在,应用最广的就是将主成分放入回归模型进行拟合,用于矫正相关的混杂因素。
生信与临床
2020/08/05
1.5K0
推荐阅读
相关推荐
R语言实现主成分和因子分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档