16种常用的数据分析方法-主成分分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16种常用的数据分析方法-主成分分析相关的知识,希望对你有一定的参考价值。

参考技术A

主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。


通过降维技术把多个变量化为少数几个主成分(综合变量)的统计分析方法。这些主成分能够反映原始变量的绝大部分信息,它们通常表示为原始变量的某种线性组合。 


主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。


主成分分析由卡尔•皮尔逊于1901年发明,用于分析数据及建立数理模型。其方法主要是通过对协方差矩阵进行特征分解,以得出数据的主成分(即特征向量)与它们的权值(即特征值)。


主成分的目的: 


(1)变量的降维 
(2)主成分的解释(在主成分有意义的情况下)


主成分分析法从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升了模型训练速度。



如上图所示,我们将样本到红色向量的距离称作是投影误差(Projection Error)。以二维投影到一维为例,PCA 就是要找寻一条直线,使得各个特征的投影误差足够小,这样才能尽可能的保留原特征具有的信息。因为PCA仅保留了特征的主成分,所以PCA是一种有损的压缩方式.


PCA分析的一般步骤


1.根据研究问题选取初始分析变量


2.根据初始变量特性判断由协方差阵求主成分还是由相关矩阵求主成分;


3.求协方差阵或相关阵的特征值与相应标准特征向量;


4.判断是否存在明显的多重共线性,若存在,则回到第(1)步;


5.得到主成分的表达式并确定主成分个数,选取主成分;


6.结合主成分对研究问题进行分析并深入研究。


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


主成分分析法优缺点


优点

↘可消除评估指标之间的相关影响。因为主成分分析法在对原始数据指标变量进行变换后形成了彼此相互独立的主成分,而且实践证明指标间相关程度越高,主成分分析效果越好。


↘可减少指标选择的工作量,对于其他评估方法,由于难以消除评估指标间的相关影响,所以选择指标时要花费不少精力,而主成分分析法由于可以消除这种相关影响,所以在指标选择上相对容易些。


↘主成分分析中各主成分是按方差大小依次排列顺序的,在分析问题时,可以舍弃一部分主成分,只取前面方差较大的几个主成分来代表原变量,从而减少了计算工作量。用主成分分析法作综合评估时,由于选择的原则是累计贡献率≥85%,不至于因为节省了工作量却把关键指标漏掉而影响评估结果。


缺点

↘在主成分分析中,我们首先应保证所提取的前几个主成分的累计贡献率达到一个较高的水平(即变量降维后的信息量须保持在一个较高水平上),其次对这些被提取的主成分必须都能够给出符合实际背景和意义的解释(否则主成分将空有信息量而无实际含义)。


↘主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。因此,提取的主成分个数m通常应明显小于原始变量个数p(除非p本身较小),否则维数降低的“利”可能抵不过主成分含义不如原始变量清楚的“弊”。


↘当主成分的因子负荷的符号有正有负时,综合评价函数意义就不明确。


主成分分析案例


某公司经理拟招聘一名员工,要求其具有较高的工作积极性、自主性、热情和责任感。为此,该经理专门设计了一个测试问卷,配有25项相关问题,拟从315位应聘者中寻找出最合适的候选人。


在这25项相关问题中:


↘Qu3-Qu8、Qu12、Qu13测量的是工作积极性


↘Qu2、Qu14-Qu19测量工作自主性


↘Qu20-Qu25测量的是工作热情


↘Qu1、Qu9-Qu11测量工作责任感


每一个问题都有非常同意“Agree”、同意 “Agree Some”、不确定“Undecided”、不同意 “Disagree Some”和 非常不同意 “Disagree”五个等级。


该经理想根据这25项问题判断应聘者在这四个方面的能力,现收集了应聘者的问卷信息,经汇总整理后部分数据如下:



分析者希望将多个变量归纳为某几项信息进行分析,即降低数据结果的维度。针对这种情况,可以进行主成分提取,但需要先满足2项假设:


↘假设1:观测变量是连续变量或有序分类变量,如本研究中的测量变量都是有序分类变量。


↘假设2:变量之间存在线性相关关系。


SPSS操作

SPSS操作


(1) 在主页面点击Analyze→Dimension Reduction →Factor



(2) 将变量Qu1-Qu25放入Variables栏



(3) 点击Deive,点选Statistics栏的Initial solution选项,并点选Correlation Matrix栏的Coefficients、KMO and Bartlett’s test of sphericity、Reproduced和Anti_image选项



(4) 点击Continue→Extraction,点击Display栏中的Scree plot选项



(5) 点击Continue→Rotation,点选Method栏的Varimax选项,并点选Display栏的Rotated solution和Loading plot(s)选项



(6) 点击Continue→Scores,点击Save as variables,激活Method栏后点击Regression选项



(7) 点击Continue→Options,点击 Sorted by size和Suppress small coefficients选项,在Absolute value below栏内输入“.3”点击Continue→OK




经上述操作,SPSS输出相关矩阵表如下:



该表主要用于判断各变量之间的线性相关关系,从而决定变量的取舍,即如果某一个变量与同一分组中其他变量之间的关联性不强,我们就认为该变量与其他变量测量的内容不同,在主成分提取中不应该纳入该变量。一般来说,如果相关系数大于等于0.3,我们就认为变量之间存在较好的线性相关性。


从本研究的结果来看,在分别对应聘者工作积极性(Q3-Q8,Q12,Q13)、工作自主性 (Q2,Q14-19)、工作热情(Q20-25)和工作责任感(Q1,Q9-11)的测量中,每组变量之间的相关系数均大于0.3,说明各组变量之间具有线性相关关系,提示满足假设2。


KMO检验对数据结构的总体分析


KMO检验主要用于主成分提取的数据情况。KMO检验系数分布在0到1之间,如果系数值大于0.6,则认为样本符合数据结构合理的要求。


部分学者认为,只有当KMO检验系数值大于0.8时,主成分分析的结果才具有较好的实用性,具体系数对应关系如下:



SPSS输出本研究结果如下:



本研究的KMO检验系数为0.833,根据系数对应关系表,我们认为本研究数据结构很好(meritorious),具有相关关系,满足假设2。



KMO检验对各变量的单独分析



SPSS输出各变量的KMO检验结果如下:



整理后各题KMO值:



KMO检验对单个变量的分析结果也在0到1之间分布,如果系数大于0.5,则认为单个变量满足要求;如果系数大于0.8,则认为单个变量结果很好。


分析结论中,任一变量的KMO检验结果均大于0.7,即各变量结果一般,但满足假设2。


Bartlett\'s检验

Bartlett\'s检

Bartlett\'s检验的零假设是研究数据之间的相关矩阵是一个完美矩阵,即所有对角线上的系数为1,非对角线上的系数均为0。


在完美矩阵情况下,各变量之间没有相关关系,即不能将多个变量简化为少数的成分,没有进行主成分提取的必要。因此,我们希望拒绝Bartlett\'s检验的零假设。


SPSS输出结果如下:



Bartlett\'s检验的P值小于0.001,拒绝零假设,即认为研究数据可以进行主成分提取,满足假设2。


结果解释


对主成分结果的分析主要从公因子方差(communalities)、提取主成分和强制提取主成分三个方面进行。


公因子方差结果


SPSS输出公因子方差结果如下:



研究中有多少个变量数据结果就会输出多少个成分,本研究中共有25个变量,就会对应产生25个成分。


“Extraction”栏提示当只保留选中的成分时,变量变异被解释的程度。


提取主成分


研究中有多少个变量,主成分提取就会产生多少个主成分。我们通过选取主成分对数据进行降维,但同时也要注意尽可能多地包含对数据变异的解释。


一般来说,结果输出的第一主成分包含最多的数据变异,第二主成分次之,之后的主成分包含的变异程度依次递减。SPSS输出结果如下:



本研究中共有25个变量,那总特征值(eigenvalues of variance)是25,即每个变量自身的特征值为1。


Total栏提示的是各主成分对数据变异的解释程度。


以第一主成分为例,其特征值为6.730,占总体变异的6.730/25×100 = 26.919% (% of Variance栏)。同理,第二主成分的特征值为3.342,占总体变异的13.369%,以此类推。


一般来说,如果某一项主成分的特征值小于1,那么我们就认为该主成分对数据变异的解释程度比单个变量小,应该剔除。本研究结果如下:



第五主成分的特征值为1.049,大于1;而第六主成分的特征值为0.951,小于1,即应该保留前五位的主成分,剔除剩余部分。



结论


本研究采用主成分分析,通过25项问题调查315位应聘者的工作能力。


研究变量之间存在线性相关关系(每组变量之间的相关系数均大于0.3),数据结构合理(KMO检验系数为0.833,单个变量的KMO检验系数均大于0.7,Bartlett\'s检验结果为P<0.001),提示研究数据可以进行主成分提取。< span="">


主成分提取结果:研究提取前四位主成分。提取后的主成分累计解释59.9%的数据变异,分别反映应聘者的工作积极性、工作自主性、工作热情和工作责任感(如下图)





统计学方法:主成分分析(PCA)实战

参考技术A 本文重点讨论对降维中常用的统计分析方法之一:主成分分析法。对影响31个城市综合评价的8个指标,用主成分分析法确定8个指标的权重,并使用SPASS和Python两种实战方式进行操作。

主成分分析(Principal components analysis)的思路主要是将原始多个变量通过线性组合的(矩阵旋转)方式转化为几个线无关的变量,且新生成的变量包含了原始变量的绝大部分信息,从而达到降维的目的。但因为新生成成分中所有原变量都占有一定比例,不同比例之间没有一个统一衡量的标准,所以这种方式在解释性方面相对较差。

实际使用的时候,如果变量间的数据波动量比较大,需要进行数据的归一化处理。但在标准化的过程中会抹杀一部分原本刻画变量之间离散程度差异的信息。所以标准化是视实际使用场景而定。

主成分分析不要求数据呈正态分布,主要是使用了线性变换的技术,因为其应用范围较广,通过对原始变量进行综合与简化,可以客观地确定各个指标的权重,避免主观判断的随意性。但是从主成分的思路出发,其主要适用于变量间相关性较强的数据,如果原始数据相关性弱,则起不到很好的降维作用,且降维后存在一定的数据丢失。

从食品,衣着,居住,家庭设备,交通通讯,文教娱乐,医疗保健,其他8个指标对全国31个主要城市统计
注:数据不具实际含义,仅用于分析过程学习。

注Bartlett球形度检验:检验是否适合主成分析。其原假设是变量间两两相互独立。KMO判断适合主成分析的程度。

查看各个主成分的特征根,方差,方差占比。

主要查看各个维度在成分上的载荷

根据上一步的计算的权重计算主每个城市得分:
Indicator = ∑Di*Wi (D表示原始指标数值,W表示当前维度的权重)

我们采用机器学习库Scikit-learn进行PCA操作,基于协方差进行矩阵变换。

从3.1和3.2结果中可以看到排名中有些城市在两种方式上的结果略微有些差异,这个是SPASS和Scikit-learn实现上存在一定的差异,本文的重点在于讨论主成分分析在两种方式上的实现。

如果问题,欢迎回复交流。如有需要源数据的,可以回复获取。

特别声明,本文的数据来自于随机制造,不构成任何效力,仅用于技术学习使用。

以上是关于16种常用的数据分析方法-主成分分析的主要内容,如果未能解决你的问题,请参考以下文章

统计学方法:主成分分析(PCA)实战

特征工程-主成分分析PCA

主成分分析(PCA)

【R语言 第3篇】用R进行主成分分析

PCA主成分分析_R语言实战

主成分分析(PCA)原理