查看原文
其他

工具&方法丨还没理解主成分分析?理论与stata应用

数据Seminar 2021-06-04

The following article is from 计量经济学及Stata应用 Author 陈强

主成分分析(Principal Component Analysis,简记PCA)其实是一种古老的多元统计方法,早在1901年即由Karl Pearson提出。它的主要功能是将包含很多变量的高维数据 “降维”(dimension reduction),变成仅有少数几个变量的低维数据,并尽量使信息不损失或少损失。随着机器学习(Machine Learning)的兴起,主成分分析作为一种主要的无监督学习方法(unsupervised learning),其重要性日益凸显。在计量经济学的实证分析中,主成分分析也不时出现。
虽然市面上已有不少对于主成分分析的通俗解释,但似乎仍有不少人觉得主成分分析很玄奥。其实,主成分分析的思想并不难理解。但要彻底理解它,则需将其思想表述为数学问题,而求解所得结果,即为主成分。在这篇文章,我们就来直面主成分分析的数学问题。




主成分分析的数学问题


考虑  维随机向量 ,其维度  可能很大,故我们希望将其降维。是否可以将这  个变量作一个线性组合,比如:

使得其所包含随机向量  的信息量最大?但何为 “信息量” 呢?不妨来看一个二维的示意图(二维降为一维)。

在上图中,如何找到两个随机变量  与  的线性组合  ,使得其包含向量  的信息量最大?从几何上,不难直观地看出,上图中实线方向所对应的线性组合,其波动幅度最大,故信息量最大。在数学上,这意味着,该线性组合的方差  达到最大。

更一般地,对于  维随机向量 ,希望找到以下  个线性组合(即主成分,Principal Components):

其中,第一个主成分  包含的信息最多,第二个主成分  包含的信息第二多,以此类推;而且各主成分  之间均不相关(正交),即我们不希望这些主成分之间的信息有重合。
如果记随机向量  的协方差矩阵为  ,则主成分分析的数学问题可表述为:

其中,根据夹心估计量(sandwich estimator)的公式,将  写为
 (这是一维公式的推广,即 )。而约束条件
 意味着,将线性组合  的长度(向量内积)标准化为1;否则,只要增加  的长度,则方差  可无限增大,找不到最大值。




主成分的求解


由于上述最大化问题的目标函数为二次(型)函数,而约束条件为线性,故可引入拉格朗日乘子函数求解:

其中, 为拉格朗日乘子。其一阶条件为:

从最后一个表达式不难看出,最优的  与  正是协方差矩阵的特征值(eigenvalue)与特征向量(eigenvector)!因为这就是线性代数对于矩阵的特征值与特征向量的定义……
进一步,将方程  的两边同时左乘  可知,主成分  的方差正好就是特征值 

而且,由于协方差矩阵  必然为半正定(positive semi-definite),故其所有特征值满足:

由此可知,所得的主成分之解  可表示为:

最后,我们只需验证,不同主成分之间是不相关的,即对于

其中, 最后一个等号是基于线性代数的一个结论,即不同特征值所对应的特征向量是正交的(故内积为 0)。
另外,通过使用矩阵的迹(trace)与对角化(diagonalization),还可证明一个奇妙的结论,即  的方差之和正好等于  的方差之和,即:

因此,可定义第  个主成分对于总方差的贡献比例(Proportion of Variance Explained,简记 PVE):

在实践中,有时只需要提取前面的几个主成分,即可解释全部方差的80%甚至90%以上,而这正是 “降维” 的目的。
当然,在实证研究中,我们一般并不知道总体的协方差矩阵 。但如果有样本数据,则可计算样本协方差矩阵 ,然后基于  进行主成分分析即可。




技术细节


(1)一般将构成主成分的线性组合  ,称为“主成分载荷向量”(Principal Component Loading Vector)。显然, 也是一个合格的主成分载荷向量。因此,主成分载荷向量的符号并不确定;但除此以外,主成分载荷向量是唯一的。
(2)由于变量的不同单位会影响其方差,故变量单位也会影响主成分分析的结果。一般的处理方法为先将变量标准化(即减去均值除以标准差),然后再进行主成分分析;或者以相关系数矩阵(Correlation Matrix)作为上文的  矩阵(相关系数不受变量单位的影响)。    
(3)对于  的高维数据(即样本容量小于变量个数),最多只有  个主成分。




在Stata中进行主成分分析


在Stata中很容易进行主成分分析,其命令为:

pca X1 X2 … Xp

其中,X1 X2 … Xp 为需要进行主成分分析的  个变量。
也可以从相关系数矩阵出发,进行主成分分析,其命令为:

pcamat matname, n(#)

其中,“matname” 为相关系数矩阵的名字,而必选项 “n(#)” 用于指定样本容量




主成分分析的应用


在计量经济学的实证研究中,可将主成分分析用于以下方面。

(1)有时对于某个现象有多个不同的度量方式(比如,某地区不同交通方式的发达程度),但在回归方程中仅希望放入一个指标(表示交通的整体发达程度)。此时,为了便于解释,并避免多重共线性,可将这些变量的第一个主成分作为解释变量,放入回归方程。

(2)对于  的高维数据,可提取其前面若干个主成分作为解释变量,进行回归,以避免 “过拟合”(overfit)。此时,可将放入回归的主成分个数视为 “微调参数”(tuning parameter),并通过交叉验证(Cross Validation)来确定。

(3)主成分分析也是进行因子分析(factor analysis)的方法之一。关于因子分析,在计量经济学的作用也日益重要,留待下期推文继续介绍。


__________________________________________
参考文献

陈强,《高级计量经济学及Stata应用》,第2版,高等教育出版社,2014年。

陈强,《计量经济学及Stata应用》,高等教育出版社,2015年。









►往期推荐

回复【Python】👉简单有用易上手

回复【学术前沿】👉机器学习丨大数据

回复【数据资源】👉公开数据

回复【可视化】👉你心心念念的数据呈现

回复【老姚专栏】👉老姚趣谈值得一看



►一周热文

工具&方法丨使用R语言的正确姿势,R包干货奉献

特别推荐丨老姚专栏:漫谈科学三则

学术前沿 | 机器学习如何改变劳动力市场?

工具&方法丨关于交互项的那些事(四):非线性模型中的交互效应

数据呈现 | Stata+R绘图:小提琴图,展示不同地区婚姻市场状况










数据Seminar

这里是大数据、分析技术与学术研究的三叉路口


作者:陈强出处:计量经济学及Stata应用推荐:杨奇明编辑:青酱







    欢迎扫描👇二维码添加关注    


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存