因子分析就是将存在某些相关性的变量提炼为较少的几个因子,用这几个因子去表示原本的变量,也可以根据因子对变量进行分类。因子分析的作用主要为:1. 在多变量场景下,挖掘背后影响因子;2. 用于数学建模前的降维。
一、什么是因子分析?
因子分析的起源是这样的,1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后有一个共同的因素驱动,最后将这个因素定义为“语言能力”。基于这个想法,发现很多相关性很高的因素背后有共同的因子驱动,从而定义了因子分析。
因子分析在经济学、心理学、语言学和社会学等领域经常被用到,一般会探索出背后的影响因素如:语言能力、智力、理解力等。这些因素都是无法直接计算,而是基于背后的调研数据所推算出的公共因子。
因此概括下,因子分析就是将存在某些相关性的变量提炼为较少的几个因子,用这几个因子去表示原本的变量,也可以根据因子对变量进行分类。
举个例子。学生有语文、英语、历史、数学、物理、化学六门成绩,通过因子分析会发现这六门课由两个公共因子驱动,前三门是由“文科”因子,后三门是“理科”因子;从而可以计算每个学生的文科得分和理科得分来评估他在两个方面的表现。
二、因子分析可以解决什么问题?
1. 在多变量场景下,挖掘背后影响因子
比如在企业和品牌调研中,消费者会调查很多问题来评估企业品牌。对这些问题通过因子分析可以刻画出背后少量的潜在影响因素,比如服务质量、商品质量等等。
2. 用于数学建模前的降维
因子分析和主成分分析都可用于降维。但因子分析的优点是,因子作为新的解释变量去建模,有更好的解释性。
因此对于有些需要业务解释的数据建模,可以在建模前通过因子分析提取关键因子,再用因子得分为解释变量,通过回归或者决策树等分类模型去建模。
三、因子分析的算法逻辑和分析流程是什么?
首先需要注意的是,和主成分分析一样,两种方法的目的都是降维,所以两种方法的前提假设都是:特征之间不是完全互相交互。
因子分析是寻找不线性相关的“变量”的线性组合来表示原始变量,这些“变量”称为因子,如下图中的F就是因子,X是原始变量,eps是原始变量不可被公共因子表示的部分。
以上的公式还需要满足:
- 要求因子的数据小于原始变量的数量,即m≤p;
- 因子F之间是相互独立且方差为1;
- 因子F和eps之间的相关性为0,eps之间相关性为0。
因此,因子分析的过程就是实现以下几个目的的过程:
- 求解方程中的因子F的系数;
- 给予因子F实际的解释;
- 展示原始特征和公共因子之间的关系,从而实现降维和特征分类等目的。
求解方程的过程,就是分析变量的相关系数矩阵,从而找到少数几个随机变量去描述所有变量。又因为求解的不少数性,最后通常会对因子的载荷矩阵做一次正交旋转,目的是为了方便理解每个因子的意义。
汇总一下:对于因子分析的实操可以提炼为以下几个步骤。
1)充分性检验
- 目的:检验变量之间是否存在相关性,从而判断是否适合做因子分析;
- 方法:抽样适合性检验(KMO检验)或者 巴特利特检验(Bartlett’s Test)。
2)选择因子个数
- 目的:通过数据定义最合适的潜在公共因子个数,这个决定后面的因子分析效果;
- 方法:Kaiser”s准则 或者 累积贡献率原则。
3)提取公共因子并做因子旋转
提取公共因子就是上面提到的求解函数的过程,一般求解方法有:主成分法、最大似然法、残差最小法等等。
因子旋转的原因是提取公共因子的解有很多,而因子旋转后因子载荷矩阵将得到重新分配,可以使得旋转后的因子更容易解释。常用的方法是方差最大法。
4)对因子做解释和命名
- 目的:解释和命名其实是对潜在因子理解的过程;这一步非常关键,需要非常了解业务才可。这也是我们使用因子分析的主要原因。
- 方法:根据因子载荷矩阵发现因子的特点。
5)计算因子得分
对每一样本数据,得到它们在不同因子上的具体数据值,这些数值就是因子得分。
四、因子分析模型
A称为因子载荷矩阵
五、统计特征
因子载荷$a_{ij}$是第i个变量与第j个公共因子的相关系数;
共同度:变量$X_i$的共同度是因子载荷矩阵的第i行的元素的平方和,记为$h_i^2=\sum_{j=1}^{m}a_{ij}^2$;所有的公共因子和特殊因子对变量$X_i$的贡献为1,若$h_i^2$非常接近1,则因子分析的效果好,从原变量空间到公共因子空间的转化性质好;
贡献:因子载荷矩阵中各列元素的平方和$S_j=\sum_{i=1}^p a_{ij}^2$,称为Fj对所有的$X_i$的方差贡献和,衡量Fj的相对重要性;
六、因子载荷矩阵的估计方法
- 主成分分析法
1)得到原始变量的相关系数矩阵;
2)主成分分析,得到特征值和特征向量;
3)确定因子个数(特征根大于1的;碎石原则:特征根从大到小排列,筛掉减小速度变缓的特征根);
4)载荷矩阵等于:特征向量*√(λ_i );
注:主成分分析法忽略了特殊因子。
- 主因子法
- 极大似然法
七、因子旋转(正交变换)
八、为什么要因子旋转?
- 因子分析的目的不仅仅是要找出公共因子以及对变量进行分组,更重要的是要知道每个公共因子的意义,以便进行进一步的分析。如果每个公共因子的含义不清,则不便于进行实际背景的解释。
- 初始因子的综合性太强,难以找出因子的实际意义。由于因子载荷阵是不少数的,所以可以对因子载荷阵进行旋转,使因子载荷阵的结构简化,使其每列或行的元素平方值向0和1两极分化。
因子旋转方法
- 方差最大法:使得每个因子上的载荷尽量拉开差距,各自趋向于0,1;
- 四次方最大法:使得每个变量上的载荷尽量拉开差距,各自趋向于0,1;
- 等量最大法:结合上两个方法;
因子得分 当我们需要用因子再做分析时,就需要对因子进行测度,给出公共因子的值;
因子得分函数:把因子表示成原变量的线性组合;(得不到精确的值,只能估计)
方法:
- 巴特莱特因子得分(加权最小二乘法)
- 回归方法
因子分析步骤
1)选择分析的变量
因子分析的前提条件是观测变量间有较强的相关性,因为如果变量之间没有相关性或者相关性较小的话,他们不会有共享因子;
2)计算所选原始变量的相关系数矩阵
这也是判断所选变量是否有相关关系,如果没有,做因子分析是不恰当的;
3)提取公共因子
需要确定因子求解的方法和因子的数目。跟经验关系很大,一般方差小于1的因子贡献就很弱了,或者累计贡献率可以达到60%;
4)因子旋转
通过坐标变换使得原始变量和尽可能少的因子有密切关系,这样的因子实际意义更易解释;
5)计算因子得分
有了因子得分值,则可以在以后的分析(聚类分析、回归分析)中继续使用因子;
知识才可以知道的,所以评价因子分析的质量也很主观了。
主成分分析和因子分析的区别
- 主成分分析仅是变量变换,而因子分析需要构造因子模型;
主成分分析是用原始变量的线性组合来表示新的综合变量,即主成分;
而因子分析是用潜在的假想变量和随机影响变量的线性组合来表示原始变量;因子分析除了公共因子外还有特殊因子。
- 由于模型的特点,因子分析还多了”因子旋转“这一步,旋转后的公共因子一般没有主成分那么综合,公共因子往往可以找到实际意义,而主成分一般没有实际意义;
最后:
若数据本身就十分的独立,就很难用少数的变量取表示原始变量,降维可能失败,数据越相关,降维效果越好,可用如下办法进行变量间的相关性检验:
- KMO样本测度:KMO>0.7:适合;KMO<0.5:不适合;
- 巴特莱特球体检验:H0:相关系数矩阵R为单位阵,拒绝H0可作因子分析;