应用统计学与R语言实现学习笔记(十二)——主成分分析
Chapter 12 Priciple Component Analysis
本篇是第十二章,内容是主成分分析。
1 主成分分析基本思想
依旧从问题开始本篇的介绍。地理学和生态学研究里经常遇到的问题就是,影响变量非常之多,而且地球表层地理生态环境现象无法使用控制变量的方式进行实验。同时影响变量非常多,经常出现变量冗余、冗杂的现象,同时多元分布数据本身对人类的认知就是一种挑战。这里举个栗子:比如在研究城市经济发展的时候,我们会考虑到的因素会包括第一产业、第二产业、第三产业占比,城市人口,城市地理位置,城市气候适宜度,政策扶持等等很多因子,但是这里有很多因子存在共线性的情况,也就是变量冗余冗杂。用矛盾论的话说,要抓住主要矛盾,那么如何在多元分布数据中分离出主要的因子,这就是本篇的主角主成分分析(Priciple Component Analysis,PCA)。
所以它的基本思想是。
在社会经济的研究中,为了全面系统的分析和研究问题,必须考虑许多经济指标,这些指标能从不同的侧面反映我们所研究的对象的特征,但在某种程度上存在信息的重叠,具有一定的相关性。这种信息的重叠有时甚至会抹杀事物的真正特征与内在规律。
主成分分析是利用降维的思想, 在力求数据信息丢失最少的原则下,对高维的变量空间降维,即在众多变量中找出少数几个综合指标(原始变量的线性组合),并且这几个综合指标将尽可能多地保留原来指标变异方面的信息,且这些综合指标互不相关。这些综合指标就称为主成分。主成分的数目少于原始变量的数目。
在一个低维空间识辨系统要比在一个高维空间容易得多。因此,更容易抓住主要矛盾,揭示事物内部变量之间的规律性,使问题得到简化,提高分析效率。指标间具有相关性是做主成分分析的前提。
主成分分析是一种数学变换方法,它把给定的一组变量通过线性变换转换为一组不相关的变量。在这种变换中,保持变量的总方差不变,同时,使第一主成分具有最大方差,第二主成分具有次大方差,依此类推。
主成分与原始变量间的关系
(1)每一个主成分是原始变量的线性组合。
(2)主成分的数目少于原始变量的数目。
(3)主成分保留了原始变量的大多数变异信息。
(4)各主成分间互不相关。
2 几何解释与数学模型
2.1 几何解释
假定只有二维,即只有两个变量,由横坐标和纵坐标所代表;每个观测值都有相应于这两个坐标轴的坐标值。如果这些数据形成一个椭圆形状的点阵(这在二维正态的假定下是可能的)该椭圆有一个长轴和一个短轴。在短轴方向上数据变化较少。在极端的情况,短轴如退化成一点,长轴的方向可以完全解释这些点的变化,由二维到一维的降维就自然完成了。
由图可以看出这些样本点无论是沿着
当坐标轴和椭圆的长短轴平行,那么代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。但是,坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换,使得新变量和椭圆的长短轴平行。如果长轴变量代表了数据包含的大部分信息,就用该变量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆的长短轴相差得越大,降维也越有道理。
2.2 数学模型
如果我们将xl轴和x2轴先平移,再同时按逆时针方向旋转
旋转变换的目的是为了使得n个样品点在
多维情形
多维变量的情况和二维类似。正如二维椭圆有两个主轴,三维椭球有三个主轴一样,有几个变量,就有几个主轴。和二维情况类似,高维椭球的主轴也是互相垂直的。首先把高维椭球的主轴找出来,再用代表大多数数据信息的最长的几个轴作为新变量。这些互相正交的新变量是原先变量的线性组合,叫做主成分(principal component)。
假设我们所讨论的实际问题中,有p个指标,我们把这p个指标看作p个随机变量,记为
这种由讨论多个指标降为少数几个综合指标的过程在数学上就叫做降维。主成分分析通常的做法是,寻求原指标的线性组合Fi。
满足条件
每个主成分的系数平方和为1。即
主成分之间相互独立,即无重叠的信息。即
主成分的方差依次递减,重要性依次递减,即
3 主成分的推导
两个线性代数的结论
1、若A是p阶实对称矩阵,则一定可以找到正交阵U,使
$$ U^{-1}AU=
则实对称阵A属于不同特征根所对应的特征向量是正交的,即有
第一主成分
设X的协方差阵为
由于
其中
设有p维正交向量
当且仅当
第二主成分
在约束条件
的方差次大
类推
写成矩阵形式:
4 主成分的性质
1、均值
2、方差为所有特征根之和
说明主成分分析把p个随机变量的总方差分解成为p个不相关的随机变量的方差之和。协方差矩阵
3、精度分析
1)贡献率:第i个主成分的方差在全部方差中所占比重
2)累积贡献率:前k个主成分共有多大的综合能力,用这个k个主成分的方差和在全部方差中所占比重
来描述,称为累积贡献率。
我们进行主成分分析的目的之一是希望用尽可能少的主成分
4、载荷矩阵
原始变量与主成分之间的相关系数
可见,
原始变量被主成分的提取率
主成分的贡献率和累计贡献率度量了
这可以用
则
如果我们仅仅提出了m个主成分,则第i原始变量信息的被提取率为:
公共成分
定义:如果一个主成分仅仅对某一个原始变量有作用,则称为特殊成分。如果一个主成分对所有的原始变量都起作用,则称为公共成分。
5 主成分分析的步骤
第一步:由X的协方差阵或相关系数阵Σ,求出其特征根,即解方程,可得特征根。
第二步:求出特征根所对应的特征向量
第三步:计算累积贡献率,给出恰当的主成分个数。
第四步:计算所选出的k个主成分的得分。将原始数据的中心化值:
代入前k个主成分的表达式,分别计算出各单位k个主成分的得分,并按得分值的大小排队。
基于协方差矩阵
在实际问题中, X的协方差通常是未知的,样品有
基于相关系数矩阵
如果变量有不同的量纲, 变量水平差异很大,应该基于相关系数矩阵进行主成分分析。不同的是计算得分时应采用标准化后的数据。
6 主成分的应用与回归
1、主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替高维的x空间所损失的信息很少。即使只有一个主成分
2、多维数据的一种图形表示方法。多元统计研究的问题大都多于3个变量,要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布情况,由图形可直观地看出各样品在主分量中的地位。
3、用主成分分析法构造回归模型。即把各主成分作为新自变量代替原来的自变量做回归分析。
主成分回归方法
原始数据观测矩阵
主成分系数矩阵
主成分得分矩阵
主成分分析的一些注意事项
主成分分析依赖于原始变量,也只能反映原始变量的信息。所以原始变量的选择很重要。
如果原始变量本质上独立,那么降维就可能失败,这是因为很难把很多独立变量用少数综合的变量概括。数据越相关,降维效果就越好。
分析结果并不一定会有清楚的解释。这与问题的性质,选取的原始变量以及数据的质量等都有关系。
基于相关系数矩阵还是基于协方差矩阵做主成分分析?
有时基于相关系数矩阵和基于协方差矩阵求出的主成分会有很大不同,且两者之间不存在简单的线性关系。
一般而言,当分析中所选择的经济变量具有不同的量纲,变量水平差异很大,应考虑将数据标准化,选择基于相关系数矩阵的主成分分析。对同度量或是取值范围在同量级的数据,选择基于协方差矩阵的主成分分析。
选择几个主成分?
主成分分析的目的是简化变量,一般情况下主成分的个数应该小于原始变量的个数。关于保留几个主成分,应该权衡主成分个数和保留的信息。
如何解释主成分所包含的经济意义?
主成分分析不要求数据来自于正态总体。一般认为当原始数据大部分变量的相关系数都小于0.3时,运用主成分分析的效果不显著。
7 主成分分析的R语言实现
主成分分析的函数本篇介绍的主要有两个。
一个是princomp,一个是psych里的principal。
princomp(x,cor=FALSE,scores=TRUE)
x为主成分分析数据集,cor=TRUE和FALSE分别代表是基于相关系数矩阵计算还是协方差矩阵计算。scores则代表是否存储主成分得分。
principal(x,nfactors=2,rotate="varimax",scores=T,covar=F)
x为主成分分析数据集,nfactors为主成分个数,rotate表示旋转方式(一般选方差最大,保证互不相关),scores则代表是否存储主成分得分,covar=TRUE和FALSE分别代表是基于协方差矩阵计算还是相关系数矩阵计算。
这回用的数据是2006年城市统计年鉴285个地级市的经济人口数据,探究gdp与人口之间的关系。
先做一个相关系数可视化。发现人口因子之间相互影响因子很高。
于是先对人口的几个因子进行降维和主成分分析,中途发现第三产业从业人数(third)加入会使得系数矩阵不正定,后面就删除了第三产业从业人数(third)。
分别用不同方式进行主成分分析结果。
princomp结果(基于协方差矩阵)
碎石图
结果
主成分得分图
princomp结果(基于相关系数矩阵)
碎石图
结果
主成分得分图
principal结果
碎石图
因子关系图
主成分得分图
碎石图表示的是曲线与纵坐标1交点的横坐标即为主成分个数,而主成分得分荷图是将原始数据的坐标映射在主成分分析的坐标上,事实上可以根据主成分得分在不同象限对原始数据进行分类,在本篇的样例数据里其实就是可以通过人口生成的几个主成分对中国地级市进行分类,可以区分出是在第一主成分得分高,第二主成分得分低的城市,亦或是其他排列组合的分类结果。关于这种可视化图具体如何解释。可以参照如下的文章。