因子分析 factor analysis (一 ):模型的理论推导

目录

一:因子分析简述 

二:因子分析模型

三:因子旋转 

3.1 考虑两个因子的平面正交旋转 

3.2  公共因子数 m > 2的情形

四:结语

一:因子分析简述 

1 . 因子分析(factor analysis)是由英国心理学家Spearman在1904年提出来的,他 成功地解决了智力测验得分的统计分析,长期以来,教育心理学家不断丰富、发展了因 子分析理论和方法,并应用这一方法在行为科学领域进行了广泛的研究。 

因子分析可以看成主成分分析的推广,它也是多元统计分析中常用的一种降维方 式,因子分析所涉及的计算与主成分分析也很类似,但差别也是很明显的:

1)主成分 分析把方差划分为不同的正交成分,而因子分析则把方差划归为不同的起因因子;

2) 因子分析中特征值的计算只能从相关系数矩阵出发,且必须将主成分转换成因子。  因子分析有确定的模型,观察数据在模型中被分解为公共因子、特殊因子和误差三 部分。

2.  初学因子分析的大困难在于理解它的模型,我们先看如下几个例子。 

例1  为了解学生的知识和能力,对学生进行了抽样命题考试,考题包括的面很广, 但总的来讲可归结为学生的语文水平、数学推导、艺术修养、历史知识、生活知识等五个方面,我们把每一个方面称为一个(公共)因子,显然每个学生的成绩均可由这五个 因子来确定,即可设想第i个学生考试的分数 X_{i}  能用这五个公共因子 F_{1},F_{2},...,F_{5}  的线性组合表示出来 :

线性组合系数 a_{i1},a_{i2},...,a_{i5} 称为因子载荷(loadings),它分别表示第i个学生在这五个因子方面的能力;\mu _{i} 是总平均, U_{i} 是第i个学生的能力和知识不能被这五个因子包含的部分,称为特殊因子,常假定U_{i}\sim N\left ( 0,\sigma _{i}^{2} \right ) 。 不难发现,这个模型与回归模型在形式上是很相似的,但这里 F_{1},F_{2},...,F_{5} 的值却是未知的,有关参数的意义也有很大的差异。 

   因子分析的首要任务就是估计因子载荷  a_{ij} 的方差  \sigma _{i}^{2},然后给因子 F_{i} 一个合理的解释,若难以进行合理的解释,则需要进一步作因子旋转,希望旋转后能发现比较合理的解释。

特别需要说明的是这里的因子和试验设计里的因子(或因素)是不同的,它比较抽象和概括,往往是不可以单独测量的。

例2  诊断时,医生检测了病人的五个生理指标:收缩压、舒张压、心跳间隔、呼 吸间隔和舌下温度,但依据生理学知识,这五个指标是受植物神经支配的,植物神经又 分为交感神经和副交感神经,因此这五个指标可用交感神经和副交感神经两个公共因子 来确定,从而也构成了因子模型。  

例3  Holjinger和Swineford在芝加哥郊区对145名七、八年级学生进行了24个心理 测验,通过因子分析,这24个心理指标被归结为4个公共因子,即词语因子、速度因子、 推理因子和记忆因子。 

二:因子分析模型

 

 

 

   

 其中残差矩阵可表示为 \large R-AA^{T} -Cov\left ( U \right )  ;所以\large AA^{T} +Cov\left ( U \right )与相关系数矩阵R 比较接近时,则从直观上可以认为因子模型给出了数据较好的拟合。

 

在因子分析中,一般人们的重点是估计因子模型的参数,即载荷矩阵,有时公共因 子的估计,即所谓因子得分,也是需要的,因子得分可以用于模型诊断,也可以作下一 步分析的原始数据,需要指出的是,因子得分的计算并不是通常意义下的参数估计,它是对不可观测的随机向量 F_{i}  取值的估计。通常可以用加权小二乘法回归法来估计因子得分。 
 

三:因子旋转 

   上面主成分解是不唯一的,因为对 A作任何正交变换都不会改变原来的 AA^{T} ,即设Q为m 阶正交矩阵, B = AQ则BB^{T}=AA^{T} ,载荷矩阵的这种不唯一性表明看是不利的,但我们却可以利用这种不变性,通过适当的因子变换,使变换后新的因子具有 更鲜明的实际意义或可解释性,比如,我们可以通过正交变换使B 中有尽可能多的元 素等于或接近于0,从而使因子载荷矩阵结构简单化,便于做出更有实际意义的解释。  

由于正交变换是一种旋转变换,如果我们选取方差大的正交旋转,即将各个因子 旋转到某个位置,使每个变量在旋转后的因子轴上的投影向大、小两级分化,从而 使每个因子中的高载荷只出现在少数的变量上,在后得到的旋转因子载荷矩阵中,每 列元素除几个值外,其余的均接近于0。  

3.1 考虑两个因子的平面正交旋转 

 当 m=2 时,还可以通过图解法,凭直觉将坐标轴旋转一个角度 φ ,一般的做法是先对变量聚类,利用这些类很容易确定新的公共因子。 

3.2  公共因子数 m > 2的情形

可以每次考虑不同的两个因子的旋转,从m 个因子中每次选两个旋转,共有m\left ( m-1 \right )/2 种旋转,做完这m\left ( m-1 \right )/2  次旋转就算完成了一个循环,然后重新开始第二个循环,每经一个循环,A阵的各列的相对方差和V 只会变大,当第k 次循环后的V^{\left ( k \right )}与上一次循环的 V^{\left ( k-1 \right )}比较变化不大时,就停止旋转。 

四:结语

综上所述,因子分析的基本步骤可概括;

1)求样本相关系数矩阵R 的特征值(依大小次序)及其相应的特征向量。

 取前面k个特征值使其累积方差贡献率超过85%,并给出前k个特征值对应的特征向量。

2)求因子载荷矩阵 A 。(由(40)式即可算出)

3)对载荷矩阵 A作正交旋转 ,使得到的矩阵A_{1}=AQ 的方差和最大。

 

例1:设某三个变量的样本相关系数矩阵R如下, 试从R 出发,作因子分析。 

 求解的MATLAB程序如下: 

clc,clear 
r=[1 -1/3 2/3;-1/3 1 0;2/3 0 1]; 
[vec,val,con]=pcacov(r);num=2; 
f1=repmat(sign(sum(vec)),size(vec,1),1); 
vec=vec.*f1;     %特征向量正负号转换 
f2=repmat(sqrt(val)',size(vec,1),1); 
a=vec.*f2   %载荷矩阵 
[b,t]=rotatefactors(a(:,1:num),'method', 'varimax')