主成分分析
主成分分析( Principal component analysis, PCA ), 是将一个可能存在相关性的变量集,通过适当的正交变换( Orthogonal transformation ), 变成线性无关的新变量,称这些新变量为主成分( Principal components ). 主成分的个数不超过原始变量个数。正交变换要满足:使第一主成分具有最大的方差,即,它代表最大的原始数据变异度。之后的主成分与前面的主成分正交,且具有最大方差。
主成分经常使用在探索性数据分析。通常,在对数据矩阵作中心化后,使用数据矩阵的协方差阵的特征值分解( Eigenvalue decomposition )或数据矩阵的奇异值分解( Singular value decomposition )来求主成分。
主成分的求法
特征值分解
总体的主成分
- 主成分的定义
设
(1)
(2) 当
(3)
从代数学观点看,主成分就是
- 主成分的求法
设协方差阵
设
(1)
(2)
(3)
- 主成分的性质
性质1
性质2
性质3
称
样本的主成分
考虑
奇异值分解
奇异值分解
在线性代数中,奇异值分解( * singular value decomposition, SVD* )是一种对实矩阵的分解形式。它是对于实方阵的特征值分解推广到任意矩阵的分解。奇异值分解经常应用于信号处理和统计学。
假设
这里,
不妨设
不难看出,
样本主成分
设矩阵
左奇异向量
故而,可以用
主成分个数的选择
主成分是一种重要的降维技术,即,用远少于原始变量个数的主成分代替原始变量,但这也不可避免的带来了信息损失的问题。如何在用较少的主成分且信息损失也较少之间达到平衡,这是主成分个数选择的问题。这里,介绍两个常见的标准:
按累积贡献率达到一定程度来确定主成分的个数;
取大于平均特征值或平均奇异值的主成分个数。
第一个标准容易取太多的主成分,而第二个标准容易取太少的主成分,故最好是将这两个标准结合起来使用。
实例:美国法官评分的主成分分析
数据集 USJudgeRatings 包含了律师对美国高等法院法官的评分。该数据框包含43个观测,12个变量。下表列出了全部变量:
从实用的角度来看,你是否能够用较少的变量来总结这11个变量(从INTG 到 RTEN )评估的信息呢?如果可以,需要多少个?如何对它们进行定义呢?因为我们的目标是简化数据,所以可使用主成分。数据保持初始得分的格式,没有缺失值。因此,下一步的决策便是判断需要多少个主成分。
最常见的是基于特征值的方法。每个主成分都与相关系数矩阵的特征值相关联,第一主成分与最大的特征值相关联,第二主成分与第二大的特征值相关联,依此类推。Kaiser-Harris 准则建议保留特征值大于1的主成分,特征值小于1的成分所解释的方差比包含在单个变量中的方差更少。 Cattell 碎石检验则绘制了特征值与主成分数的图形。这类图形可以清晰地展示图形弯曲状况,在图形变化最大处之上的主成分都可保留。最后,你还可以进行模拟,依据与初始矩阵相同大小的随机数据矩阵来判断要提取的特征值。若基于真实数据的某个特征值大于一组随机数据矩阵相应的平均特征值,那么该主成分可以保留,该方法称为平行分析”。
利用 fa.parallel() 函数,你可以同时对三种特征值判别准则进行评价。对于11种评分(删去了 CONT 变量),需要事先安装 psych 包,代码如下:
library(psych)
fa.parallel(USJudgeRatings[, -1], fa = "PC", n.iter = 100,
show.legend = FALSE,
main = "Scree plot with parallel analysis")
评价美国法官评分中要保留的主成分个数。碎石图(直线与x符号)、特征值大于1准则(水平线)和100次模拟的平行分析(虚线)都表明保留一个主成分即可。三种准则表明选择一个主成分即可保留数据集的大部分信息。下一步使用 principal() 函数得到第一主成分。
library(psych)
pc <- principal(USJudgeRatings[, -1], nfactors = 1)
pc
此处,你输入的是没有 CONT 变量的原始数据,并指定获取一个未旋转的主成分。由于 PCA 只对相关系数矩阵进行分析,在获取主成分前,原始数据将会被自动转换为相关系数矩阵 。 PC1 栏包含了成分载荷,指观测变量与主成分的相关系数。如果提取不止一个主成分,那么
还将会有 PC2、 PC3 等栏。成分载荷( component loadings )可用来解释主成分的含义。此处可以看到,第一主成分( PC1 )与每个变量都高度相关,也就是说,它是一个可用来进行一般性评价的维度。
h2 栏指成分公因子方差——主成分对每个变量的方差解释度。 u2 栏指成分唯一性——方差无法被主成分解释的比例( 1-h2 )。例如,体能( PHYS )80% 的方差都可用第一主成分来解释,20% 不能。相比而言, PHYS 是用第一主成分表示性最差的变量。SS loadings 行包含了与主成分相关联的特征值,指的是与特定主成分相关联的标准化后的方差值(本例中,第一主成分的值为10)。最后, Proportion Var 行表示的是每个主成分对整个数据集的解释程度。此处可以看到,第一主成分解释了11个变量92%的方差。
阅读更多精彩内容,请关注微信公众号”统计学习与大数据”!