查看原文
其他

数据江湖之多元剑法 | 主成分分析

媛子 狗熊会 2019-06-30

大家好,我是媛子。

相信大家从狗熊会的精品案例中已经体会到熊大老师的“数据江湖:回归五式”的神通广大了,那有的朋友就问了:除了回归,我还能干嘛呢?

其实在统计里面,还有一个很好很强大的体系,叫做多元统计分析。所以媛子准备来跟大家系统地扒一扒“数据江湖之多元剑法”。不过,我们这里只会讲到问题的理解和结果的解读层面,想进一步知道具体的模型设定、数学表达、方法推导、软件实现的技术党同学,请移步到书店找一本多元统计的教材来啃一啃,或者来修一学期媛子的多元统计课程。

因为,其实媛子在教课中发现,在一切交给电脑的今天,对于一种已经成型的方法,“怎么用”通常不是问题,用个软件点点点或者编几行程序就呼呼呼地跑出结果了,大家的问题一般都出在“什么时候用”和“用完了,然后呢”, 所以我们这个系列主要就集中在讨论这两件事情上面。

那写下多元剑法第一招的灵感来自于下面这些我们第二期熊学院的熊孩子微信群里面的对话:

熊小姐

求助求助,现在有某个班的学生各科成绩,怎么建模去分析学生的综合表现?可不可以用平均成绩做因变量,然后用各科成绩做自变量进行回归呢?

熊先生

你等会儿,平均成绩不是各科成绩求平均算出来的吗?用自变量计算因变量,再用算出来的因变量对自变量做回归,这是神马逻辑呀?

熊小姐

也是,可是别人委托的时候反正就说“我就这些数据,你一定要帮我搞出个模型来。”咋办呢?

熊大

我最恨为了建模而建模啦。你一定要先清晰地定义你的业务问题。你到底是在关心什么?用成绩解释成绩,这就成浆糊了。

熊媛子

我教多元统计的时候,其实用过这种各科成绩的例子,它可以用来做主成分分析。

熊先生

主成分分析应该就是揭示影响若干变量的共同因素吧。

熊媛子

不好意思你说的其实是因子分析。

熊小姐

主成分分析和因子分析到底有啥差别呢?貌似因子分析的方法之一就是主成分?不过既然这样,那为啥参考书上要把他们分成两章来介绍呢?而且说因子分析是主成分分析演变而来的?还有,为啥说主成分不能旋转,因子就可以旋转呢?

熊先生

同问!同问!

熊小姐2号

同问!


熊先生2号

同问!

……

所以,我们今天就不防就着熊小姐的这个“各科成绩”的例子,先来捋一捋“主成分分析”到底是个什么鬼。至于它跟因子分析的差别,要先搞清楚因子分析又到底是个什么鬼才能讨论,所以且听媛子下回分解这个差别的部分。

在开始之前呢,媛子还是要再强调一下熊大老师一直在强调的,做统计分析之前呢,一定一定要先清楚你的业务目的!业务目的!业务目的!重要的事情说三遍!

假设你现在是一名班主任,对着以下这种我们从小恨到大的成绩单发呆。(数据来源见[4])

那作为班主任,针对这种成绩单的业务目的,就是怎么样科学地利用以上这些各科的成绩的信息来区分你班上学生的表现。当然你的视力和耐心足够好的话,你可以一科一科的成绩单单独去比对,但这实在是使出洪荒之力也然并卵呀。

那通常我们都怎么做呢?求平均。也就是把各科成绩加起来除以科目总数,或者说求总分也是等价的。没错,这是一个比较合理的方法。但是媛子给你打个比方,如果有一个很奇葩的班级培养出一堆很奇葩的学生,他们的平均分都一样,只是有的偏科严重,有的发展比较均衡,那这个班的学生单靠平均分就区分不开了,对吧?

所以,如果你是一名班主任,想通过成绩区分一下你班上学生的表现的话,可能针对你这个班级,会有比平均分更好的指标,或者会有不止平均分这一个指标在等着你哦。

这个就是主成分分析(Principal Component Analysis,PCA)在做的事情。找到原始变量的线性组合,也就是所谓的主成分,使得组合后得到变量的方差最大化。被媛子绕晕了是吗?翻译成人话就是:找到最科学的一种或几种综合成绩的计算方式,使得这样计算出来的综合得分能够最大程度地区分这一拨学生。这里有几个注意的点:

1

我们所用的计算成绩组合的方法都是线性的,什么叫线性?就是说不会出现像语文成绩的平方、或者数学成绩的倒数这些幺蛾子。其实本质上我们还是在做一种各科成绩的平均,但这是加权平均,并且允许有些权重可以是负数。从这些权重中我们可以看出哪些学科对于区分这一拨学生的影响比较大,并且是怎么影响的。

2

我们可能用不止一个指标去刻画学生的表现。而这些指标会根据重要程度来排序,这个重要程度具体来讲就是区分学生的能力。后面在结果的解读的部分我们会进一步说明。

3

在整个过程中,我们只有一堆地位一样的变量,没有所谓的自变量和因变量,所以主成分分析不属于回归分析的范畴。

好了,大家应该已经清楚主成分分析是用来干嘛的了,或者说我们什么时候该用主成分分析。接下来就是噼里啪啦一顿编程实现,得到了几个你想要的综合得分,也就是主成分(Principal Components),那么下一步就是怎样解读这些指标呢?这就又回到了业务层面。我们需要做的是,结合业务知识,尽情地开脑洞,然后再看看我们的这些解读跟常识现象是否相符,还有没有什么新的发现。

这里,我们假设最后我们通过软件得到了如下的两个指标,也就是主成分,也就是综合得分的计算方式,来刻画这个班的学生成绩:

那现在问题来了,怎么理解这两个指标呢?

指标2很好理解,基本就是我们通常见到的求平均,前面的系数只有轻微的不同,所以它可以用来刻画学生各科成绩的均衡表现。那么指标1呢?指标1里面,所有偏文科类课程成绩的系数为正,偏理科的系数为负,而系数值的大小差不多。这样算出来的是什么?基本上可以理解成是学生文科成绩平均分减去理科成绩平均分,也就是说,指标1刻画的是学生文理科成绩的差别,或者说是学生的偏科情况。

好,我们知道了这两个指标大体上是什么意思,那它们能用来做什么呢?媛子总结了一下,它们可以用来做以下的三件事情:

1
它可以降低整个数据集的复杂程度,给你省事儿啊。看全班学生的六科成绩多费眼费时间呀,现在只给你了两个指标,而且我告诉你不怎么丢失重要的信息就能够达到你的业务目的,那你这个班主任何乐而不为呀?这就是用主成分分析做降维的基本思想。那至于为什么只有两个指标就够了,而不是三个四个或者只有一个呢?是因为针对这组数据,通过计算,这两个指标区分学生的能力(也就是说刻画数据差异性的能力)已经占到了原来六门课能够做到的80%了,我们就觉得足够满意了。当然,隔壁老王班也许需要一个或者三个指标,谁知道呢,对吧?2

我们可以用它们考量每一位学生的表现。我们传统的成绩单是对每一个学生简单粗暴的给一个平均分或者总分。这就是上面的指标2。它的得分越高,说明该学生的均衡表现越好。那现在的成绩单上又多了一项得分可正可负的指标1。如果该学生该指标的得分是个很大的正数,说明什么?说明他文科比理科好得多,严重偏文科。反之,如果他的指标1是一个绝对值很大的负数,说明他严重偏理科。所以指标1就是学生的偏科表现,绝对值越大,偏科越严重。那你可能会问了,那如果指标1得分接近于0呢?那就说明他文理科成绩差不多呗,可能是个全面发展的学神或者学霸,当然也可能是每一科都差得非常均匀的学酥或学渣。

所以通过看以上的两个综合指标,我们可以找出一些典型的学生,比如说指标1很高,指标2也很高,这就说明该学生是个文科学神级人物;那如果指标1很高但指标2却很低,这就说明该学生偏科文科太严重,理科拖后腿,拉低平均成绩啊;那如果指标1(绝对值)很低,指标2很高呢?就说明这是一个两手抓,两手都要硬的好宝宝,对吧?以此类推。

3
我们可以用它们来刻画班级整体的表现。我们之前提到过,这些指标是按照能够反映这拨学生差异性的能力来排序的。那么通过这两个指标,就可以知道这个班成绩的主要特征。这里指标1排在前面,说明它比指标2,也就是简单地求平均更能刻画这拨学生成绩的差异性。也就是说,这是一个偏科比较严重的班级,有的学生文科比理科好很多,有的学生反之。而且通过学生的指标1得分还能看出到底有多少学生文科比较好,到底有多少学生理科比较有优势。当然也许换一个班,这些综合指标的构造就完全不同了,没准儿隔壁老王班上的学生成绩的差异完全由这个数学成绩主导呢。

好了,我们来总结一下今天的内容:当我们有很多个变量,又想找出一种或几种综合指标去很好地刻画数据的差异性的时候,主成分分析就该出马了。那这些综合指标怎么构造呢?是通过原来变量的加权平均,或者说线性组合来构造的。

得到这些指标后,它们有什么用呢?我们可以在不丢失重要信息的前提下尽量地简化数据集,还可以从一种全面综合的视角来审视整个数据集,或者说我们可以去考量每一个个体的表现。

当然,不光对班主任有用,主成分分析在其他的各个领域也都有着非常直观的应用。比如说对工业界的各个行业的各种经济效益指标进行综合评价,比如说根据人们身体的某些测量变量(像身高、体重、三围,还有其他的各种什么围之类的)得出一些刻画人身材的综合指标等等等等。

好的,这次主成分分析的招式就跟大家拆到这儿。下次媛子会针对同样的数据,但是从不同的业务目的出发,再跟大家来捋一捋因子分析这把刷子。感谢大家的阅读或者收听,我们下次见。


>>>参考文献

[1] Richard A. Johson and Dean W. Wichern. “Applied Multivariate Statistical Analysis”.

[2] Alvin C. Rencher and William F. Christensen. “Methods of Multivariate Analysis”.

[3] Brian Everitt and Torsten Hothorn. “An Introduction to Applied Multivariate Analysis with R”.

[4] 费宇.《多元统计分析——基于R》



媛子简介
  • 毕业于美国宾夕法尼亚州立大学统计系的博士小海龟一只;

  • 就职于厦门大学经济学院统计系、王亚南经济研究院的小青椒一个;

  • 学术方面关注高维数据的统计模型和方法、网络数据和图模型、统计基因学等;

  • 实践方面关注统计咨询,想让更多的人认识统计了解统计会用统计。



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

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