本篇是第十二章,内容是主成分分析。 这篇博客的完整内容包含各种数学表达。能够见我CSDN和hexo搭的我的博客。 CSDN博客html
hexo的我的博客git
依旧从问题开始本篇的介绍。地理学和生态学研究里常常遇到的问题就是,影响变量很是之多,并且地球表层地理生态环境现象没法使用控制变量的方式进行实验。同时影响变量很是多,常常出现变量冗余、冗杂的现象,同时多元分布数据自己对人类的认知就是一种挑战。这里举个栗子:好比在研究城市经济发展的时候,咱们会考虑到的因素会包括第一产业、第二产业、第三产业占比,城市人口,城市地理位置,城市气候适宜度,政策扶持等等不少因子,可是这里有不少因子存在共线性的状况,也就是变量冗余冗杂。用矛盾论的话说,要抓住主要矛盾,那么如何在多元分布数据中分离出主要的因子,这就是本篇的主角主成分分析(Priciple Component Analysis,PCA)。github
因此它的基本思想是。hexo
在社会经济的研究中,为了全面系统的分析和研究问题,必须考虑许多经济指标,这些指标能从不一样的侧面反映咱们所研究的对象的特征,但在某种程度上存在信息的重叠,具备必定的相关性。这种信息的重叠有时甚至会抹杀事物的真正特征与内在规律。 主成分分析是利用降维的思想, 在力求数据信息丢失最少的原则下,对高维的变量空间降维,即在众多变量中找出少数几个综合指标(原始变量的线性组合),而且这几个综合指标将尽量多地保留原来指标变异方面的信息,且这些综合指标互不相关。这些综合指标就称为主成分。主成分的数目少于原始变量的数目。 在一个低维空间识辨系统要比在一个高维空间容易得多。所以,更容易抓住主要矛盾,揭示事物内部变量之间的规律性,使问题获得简化,提升分析效率。指标间具备相关性是作主成分分析的前提。 主成分分析是一种数学变换方法,它把给定的一组变量经过线性变换转换为一组不相关的变量。在这种变换中,保持变量的总方差不变,同时,使第一主成分具备最大方差,第二主成分具备次大方差,依此类推。 主成分与原始变量间的关系 (1)每个主成分是原始变量的线性组合。 (2)主成分的数目少于原始变量的数目。 (3)主成分保留了原始变量的大多数变异信息。 (4)各主成分间互不相关。函数
假定只有二维,即只有两个变量,由横坐标和纵坐标所表明;每一个观测值都有相应于这两个坐标轴的坐标值。若是这些数据造成一个椭圆形状的点阵(这在二维正态的假定下是可能的)该椭圆有一个长轴和一个短轴。在短轴方向上数据变化较少。在极端的状况,短轴如退化成一点,长轴的方向能够彻底解释这些点的变化,由二维到一维的降维就天然完成了。.net
由图能够看出这些样本点不管是沿着xl轴方向或x2轴方向都具备较大的离散性,其离散的程度能够分别用观测变量x1的方差和x2的方差定量地表示。显然,若是只考虑x1和x2中的任何一个,那么包含在原始数据中的经济信息将会有较大的损失。 当坐标轴和椭圆的长短轴平行,那么表明长轴的变量就描述了数据的主要变化,而表明短轴的变量就描述了数据的次要变化。可是,坐标轴一般并不和椭圆的长短轴平行。所以,须要寻找椭圆的长短轴,并进行变换,使得新变量和椭圆的长短轴平行。若是长轴变量表明了数据包含的大部分信息,就用该变量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆的长短轴相差得越大,降维也越有道理。code
若是咱们将xl轴和x2轴先平移,再同时按逆时针方向旋转θ角度,获得新坐标轴Fl和F2。Fl和F2是两个新变量。 旋转变换的目的是为了使得n个样品点在Fl轴方向上的离散程度最大,即Fl的方差最大。变量Fl表明了原始数据的绝大部分信息,在研究某经济问题时,即便不考虑变量F2也无损大局。通过上述旋转变换原始数据的大部分信息集中到Fl轴上,对数据中包含的信息起到了浓缩做用。 Fl, F2除了能够对包含在Xl, X2中的信息起着浓缩做用以外,还具备不相关的性质,这就使得在研究复杂的问题时避免了信息重叠所带来的虚假性。二维平面上的个点的方差大部分都归结在Fl轴上,而F2轴上的方差很小。 Fl和F2称为原始变量,x1和x2的综合变量。 简化了系统结构,抓住了主要矛盾。 多维情形 多维变量的状况和二维相似。正如二维椭圆有两个主轴,三维椭球有三个主轴同样,有几个变量,就有几个主轴。和二维状况相似,高维椭球的主轴也是互相垂直的。首先把高维椭球的主轴找出来,再用表明大多数数据信息的最长的几个轴做为新变量。这些互相正交的新变量是原先变量的线性组合,叫作主成分(principal component)。 假设咱们所讨论的实际问题中,有p个指标,咱们把这p个指标看做p个随机变量,主成分分析就是要把这个p指标的问题,转变为讨论p个指标的线性组合的问题,而这些新的指标按照保留主要信息量的原则充分反映原指标的信息,而且相互独立。 这种由讨论多个指标降为少数几个综合指标的过程在数学上就叫作降维。主成分分析一般的作法是,寻求原指标的线性组合Fi。 知足条件 每一个主成分的系数平方和为1。 主成分之间相互独立,即无重叠的信息。 主成分的方差依次递减,重要性依次递减,component
两个线性代数的结论 详见CSDN和hexo博客htm
一、均值 $E(U'x)=U'\mu$ 二、方差为全部特征根之和 三、精度分析 1)贡献率:第i个主成分的方差在所有方差中所占比重称为贡献率,体现这个主成分的综合能力的大小,即反映原来p个指标的信息的多少。 2)累积贡献率:前k个主成分共有多大的综合能力,用这个k个主成分的方差和在所有方差中所占比重来描述,称为累积贡献率。 咱们进行主成分分析的目的之一是但愿用尽量少的主成分代替原来的p个指标。到底应该选择多少个主成分,在实际工做中,所采用主成分个数的多少取决于可以反映原来变量85%以上的信息量为依据,即当累积贡献率≥85%时的主成分的个数就足够了。最多见的状况是主成分为2到3个。 四、载荷矩阵 原始变量被主成分的提取率 主成分的贡献率和累计贡献率度量了从原始变量中提取了多少信息。 公共成分 定义:若是一个主成分仅仅对某一个原始变量有做用,则称为特殊成分。若是一个主成分对全部的原始变量都起做用,则称为公共成分。对象
第一步:由X的协方差阵或相关系数阵Σ,求出其特征根,即解方程,可得特征根。 第二步:求出特征根所对应的特征向量, 第三步:计算累积贡献率,给出恰当的主成分个数。 第四步:计算所选出的k个主成分的得分。将原始数据的中心化值: 代入前k个主成分的表达式,分别计算出各单位k个主成分的得分,并按得分值的大小排队。
基于协方差矩阵
基于相关系数矩阵
若是变量有不一样的量纲, 变量水平差别很大,应该基于相关系数矩阵进行主成分分析。不一样的是计算得分时应采用标准化后的数据。
一、主成分分析能下降所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替高维的x空间所损失的信息不多。即便只有一个主成分Y1(即m=1)时,这个Y1还是使用所有X变量(p个)获得的。在所选的前m个主成分中,若是某个Xi的系数所有近似于零的话,就能够把这个Xi删除,这也是一种删除多余变量的方法。 二、多维数据的一种图形表示方法。多元统计研究的问题大都多于3个变量,要把研究的问题用图形表示出来是不可能的。然而,通过主成分分析后,咱们能够选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布状况,由图形可直观地看出各样品在主份量中的地位。 三、用主成分分析法构造回归模型。即把各主成分做为新自变量代替原来的自变量作回归分析。 主成分回归方法 主成分分析的一些注意事项 主成分分析依赖于原始变量,也只能反映原始变量的信息。因此原始变量的选择很重要。 若是原始变量本质上独立,那么降维就可能失败,这是由于很难把不少独立变量用少数综合的变量归纳。数据越相关,降维效果就越好。 分析结果并不必定会有清楚的解释。这与问题的性质,选取的原始变量以及数据的质量等都有关系。 基于相关系数矩阵仍是基于协方差矩阵作主成分分析? 有时基于相关系数矩阵和基于协方差矩阵求出的主成分会有很大不一样,且二者之间不存在简单的线性关系。 通常而言,当分析中所选择的经济变量具备不一样的量纲,变量水平差别很大,应考虑将数据标准化,选择基于相关系数矩阵的主成分分析。对同度量或是取值范围在同量级的数据,选择基于协方差矩阵的主成分分析。 选择几个主成分? 主成分分析的目的是简化变量,通常状况下主成分的个数应该小于原始变量的个数。关于保留几个主成分,应该权衡主成分个数和保留的信息。 如何解释主成分所包含的经济意义? 主成分分析不要求数据来自于正态整体。通常认为当原始数据大部分变量的相关系数都小于0.3时,运用主成分分析的效果不显著。
主成分分析的函数本篇介绍的主要有两个。 一个是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交点的横坐标即为主成分个数,而主成分得分荷图是将原始数据的坐标映射在主成分分析的坐标上,事实上能够根据主成分得分在不一样象限对原始数据进行分类,在本篇的样例数据里其实就是能够经过人口生成的几个主成分对中国地级市进行分类,能够区分出是在第一主成分得分高,第二主成分得分低的城市,亦或是其余排列组合的分类结果。关于这种可视化图具体如何解释。能够参照以下的文章。