查看原文
其他

数据江湖之多元剑法 | 招式二:因子分析

媛子 狗熊会 2019-06-30

大家好,我是媛子。今天准备跟大家分享“多元剑法”之“因子分析”。

“多元剑法”的上一招“主成分分析”,希望大家还有印象(想复习的童鞋戳这里)。很多狗熊会的熊孩子,都表示对这两者的区别懵懵懂懂的不明觉厉,或者知其然不知其所以然。因此,我们今天就通过上次主成分分析的例子,从不同的业务目的出发,来看看同样的数据,怎样进行因子分析。

当然啦,因子分析,在我们的工作生活中,其实无处不在,应用非常广泛,媛子过会儿会再给大家举几个除了这个例子之外,其他典型的因子分析的应用案例。

对于完全不了解因子分析的朋友,让媛子先给你科普一下哈。我们通常所说的因子分析(Factor analysis)严格意义上来讲叫做探索性因子分析法(Exploratory Factor Analysis,EFA),起源于1904年。当时,英国的心理学家Charles Spearman研究了33名学生在古典语、法语和英语三门成绩的表现,发现这三门课的表现其实是密切相关的,用统计的语言来说就是它们两两之间的相关系数都很高:(大家可以参看如下的相关系数矩阵哈)

这听起来是很合理的吧?那么它们为什么会密切相关呢?我们是不是可以理解成,其实这三门课的成绩背后都是由一个共同的因素——也许可以叫做“语言能力”——来决定的呢?

基于这个想法,Spearman就提出了一个“单因子模型”(Single-factor model),他认为,很多关联性很高的变量背后都由一个共同因子(Common factor)驱动,这种驱动关系,是由这些变量的相关性决定的。当然啦,每个变量也都有自己独特的地方,不能被这个公共因子所刻画,这部分就叫做特殊因子(Specific factor)。在我们的例子中,这三门语言课的成绩,就可以表示成:

其中,系数a1,a2,a3,就是 “语言能力”这个公共因子对三科成绩分别的解释力,它们有个高大上的名字,叫做因子载荷(Factor loading),统计上,其实就是该因子和相应变量之间的相关性。

这里需要注意的是,我们找到的公共因子,比如说这里的语言能力,通常都是潜变量(latent variable),也就是说它是观测不到的。这在心理学、社会学、语言学、经济学等等领域,非常常见,比如智力、社会阶层、满意度、理解力等等等等,都是我们很可能感兴趣的,却无法通过测量直接得到的变量。而我们能够观测到的,是一些可能由它们驱动的调查问卷的答案、各种测试的成绩等等。所以,因子分析在以上这些领域有着尤为广泛的应用。

以上,就是因子分析的雏形了。但是很显然,大多数时候一个公共因子是不够的,错综复杂的变量可能需要多个公共因子来刻画才行。这就是市面上的因子分析,通常所考虑的模型——多因子模型(Multiple-factor model)。

现在,我们就回到上一招“主成分分析”时用到的如下这种六门课成绩单的例子哈。(数据来源见[4])

希望大家还记得,主成分分析在这里是用来找所谓的“综合评价指数”来最大程度区分学生的表现的。每个评价指数,都是由这六门课的成绩做线性组合计算得来的。最终我们得到了两个主要的综合指标:文理科差异指标和各科的均衡指标。我们这里的“文理科”的划分,是把数学、物理、化学作为理科,把语文、历史、英语作为文科。但是,有没有人想过这是为什么呢?

有的同学可能会说了哈,你这有啥可想的呢?这不是从远古时代就流传下来的常识了嘛。那媛子想说的是,现在这个所谓的大数据时代能带来的价值,有很重要的一方面,就是可以让我们重新审视老祖宗给我们留下的东西,看看这些东西能不能从数据中反映出来?如果可以,能不能将其量化,来更好地理解这个世界以及预测未来。某种程度上,因子分析,就可以做这件事情,验证常识并将其量化,或者在常识的基础上发现新的现象。

如果我们去看一下这六门课的两两相关系数哈,我们就会发现,数学、物理、化学这三门课成绩之间非常相关,而语文、历史、英语彼此也很相关。而这两组学科跨组的相关性就没有这么高了。所以,我们直觉上就会觉得,这六门课的成绩会不会是由两个公共因子驱动的,其中一个主要解释前三门,另一个主要解释后三门呢?有此想法,我们就可以建立如下这种“有两个公共因子存在”的多因子模型:

当然啦,这一堆的a和b,就是我们要统计软件去估计的系数了,也就是所谓的因子载荷。这里有必要提一下因子分析的奇葩之处哈:由于这些公共因子,他本来就是我们想象出来的虚幻的东东,它们的值,就不是唯一确定的,而导致这些系数的估计也就不是唯一的了,数学上呢,我们就称它为可旋转的。这样,我们其实就可以找到很多组关于a和b的估计值。那么到底应该用哪一组进行随后的分析呢?或者说所谓旋转,要旋转到一个什么程度最好呢?——答案就是找最符合常识最好解释的一组。至于怎么找?客官自己不用操心,统计软件帮您找。

经过一顿噼里啪啦的编程实现,媛子得到了如下这组旋转后的系数(即因子载荷)的估计:

大家还记得刚刚提到的这些系数所表示的意义吗?——它们刻画了该因子对于每个变量的解释力的大小。所以你看,第一个因子对语文、历史、英语的解释力很高,而对数学、物理、化学就没这么重要,第二个因子反之。怎么样?是不是跟我们老祖宗对这个文理科的划分不谋而合了?所以,因子分析,得出的这两个公共因子我们就可以把它们取名叫做“文科因子”和“理科因子”。

好的,你可以说它是常识。但是,我们这里可以将常识量化。比如说,你看,对数学和语文这两门课来说,虽然数学主要由理科因子解释,但文科因子也有0.387的解释力(也就是说相关性哈),而语文呢?理科因子照样有一部分的解释力(0.343)。这样看来呢,前人们把这两门课选作我们从小到大都逃不掉的主课,还真的是有理可依呢。

相比之下,物理和化学就属于跟文科基本不搭边的特别理的理科了……

有了这两个公共因子之后,我们就可以继续通过噼里啪啦的编程来计算每一个学生的“因子得分”(Factor score)。也就是说,通过这六门课的成绩,算出每个学生文科因子和理科因子的某种得分,来看他们每个人在文科和理科分别的表现。至于因子得分如何计算,我们也有很多的统计方法可以使用,媛子在这儿就不细讲了,感兴趣的同学可以去读教材哈。

讲到这儿,大家应该至少清楚因子分析是干嘛的了——通过变量之间的相关关系找到几个基本能刻画这些变量的共同的因素,从而,对这些变量有更加深刻的理解。当然了,它远不止可以用来分析成绩,为了让大家对因子分析的广泛应用有更直观的感觉,媛子再给大家举几个例子哈:

例1:大家应该还记得前段时间狗熊会的水妈推出的精品案例“英超进球谁最强”,对吧?里面收集了一大堆关于英超球员的变量,而他们经过因子分析之后可以基本被三个公共因子刻画。资深球迷为其取名叫做进攻因子、防守中场因子和防守后卫因子。这三个因子对每一个变量的解释力,可以用如下的这种因子载荷矩阵来表示:

除此之外,我们还可以计算每个球员在这三个公共因子上面分别的得分,进而找出在每个因子上面有优势的球员。

例2:如果你是一个企业的HR,负责招聘一批销售人员,那么你可能需要通过面试、笔试、问卷等形式对每位应聘者进行一系列的考核,会有一大堆的结果。那么怎么利用这些看似杂乱无章的考核结果衡量应聘者在各个方面的水平呢?这就需要因子分析出马了!比如说,因子分析找到了在这些考核结果背后的三个公共因子:专业能力、社交能力、从业经验。那么我们就能从这三个方面很清晰地考察每个应聘者的优势和劣势,从而为招聘提供借鉴。

例3:在企业形象或者品牌形象的调查中,消费者通过一个有30个问题的调查问卷构成的评价体系来评价一堆商场的这30个方面的表现。但是通过因子分析,这些指标其实可以用三个公共因子来刻画:商店环境、商店服务和商品综合价位。其实,我们不难想到,消费者主要关心的也就这三个方面,但我们很难去量化它,所以很难直接去评价。然而通过一些具体的测量指标,结合因子分析,再去刻画它们已经不再是梦啦。

讲到现在,大家对因子分析是个啥已经基本清晰了吧?那么对于主成分分析和因子分析的不同,也该有个大概的感觉了吧?这里,媛子总结了如下几点区别,欢迎大家讨论补充或者指正哈:

区别1因子分析,通常指是一种模型,这种模型在大千世界中其实无处不在;而主成分分析不涉及模型,是一种单纯刻画该组数据差异性的统计方法。这里补个技术流的说明哈:之所以那么多人把主成分分析和因子分析搞混,还有一个原因是,就是因子分析模型的系数估计方法,其中有一种叫做“主成分法”(Principal component method)。为什么叫这么一个no zuo no die的名字呢?因为它是用跟主成分分析(Principal component analysis)很类似的谱分解的方法来计算因子载荷的。所以,如果我们说“主成分法”,一般是指因子分析模型中的估计方法的一种;如果我们说“主成分分析”,通常是指上一讲中的一种单独的分析方法。真是绕死人不偿命啊!有没有!


区别2主成分分析,只关心数据的差异性,也就是方差;而因子分析的出发点在刻画变量之间的相关性,或者协方差。有些教材,把因子分析直接解释为“按照变量之间相关性的大小分组,每组由一个公共因子驱动”。虽然媛子认为,这种说法不是特别准确,却可以帮助我们理解因子分析的直观含义。

区别3:主成分分析旨在找到一种或者几种综合指标,这每一个指标都会被表示成原始变量的线性组合;而因子分析是反的,它是将原始变量近似的表示成公共因子的线性组合

区别4:主成分的构造方法呢是唯一的;而因子分析中的估计却不唯一,它可以通过旋转,找到一种最合乎常识的因子载荷,来进行下一步的解释


好了,七七八八聊了这么一堆,希望大家兴趣还在线哈。咱们下次见了,我是媛子。




参考文献

[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》


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

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

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

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





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

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