主成份分析与因子分析(PCA vs. FA) - ricket-sjtu/bi028 GitHub Wiki

对于初学者来说,很难区分主成份分析(principal component analysis, PCA)和因子分析(factor analysis, FA)。

1. 两者的联系和区别

  1. 两者基于不同的原理
  • PCA:以信息量(方差,variance)损失最小为原则的下,通过线性变换提取原始数据变量的信息,使得到的主成分能够最大程度包含原始数据的信息。
  • FA:按照原始数据之间的相关关系(correlation)进行分组,使同组数据之间的相关性最大,不同组间的相关性最小。
  1. 线性表示方向不同
  • PCA: 各个PC是原始数据变量的线性组合
  • FA:各个数据变量是公共因子(common factor)和特殊因子(specific factor)的线性组合
  1. 假设条件
  • PCA: 不需要假设
  • FA: 需要假设,假设各个公共因子之间是不相关的、特殊因子之间是不相关的、公共因子与特殊因子之间也是不相关的,所以需要先进行KMO检验和Bartlett球形检验,考察是否适合进行因子分析。
  1. 主成份/因子数量
  • PCA: 主成分的数量是固定的,一般来说有几个变量就有几个主成分
  • FA:需要人为的指定因子的个数(只有特征值>1的才能入选)
  1. 求解方法
  • PCA: 当原始数据不同变量取值范围相差不大时, 选取方差-协方差矩阵进行主成分分析;相反则选取相关矩阵进行分析
  • FA:求解因子载荷的方法有主成分法,主轴因子法,极大似然法;求解因子打分的方法有最小二乘法(OLS)、加权最小二乘法(WLS)和回归法(Regression)

2. 分析步骤

2.1 PCA

  1. 写出方差-协方差矩阵或相关矩阵
  2. 求矩阵的特征值和对应的特征向量并按照特征值大小进行排序
  • 特征向量对应Loading matrix
  1. 根据累积贡献率(一般要求达到0.80以上),选择所需的主成份个数
  • 累积贡献率 = 累积特征值之和/所有特征值的和
  1. 绘制碎石图和散点图
  2. 根据获得的主成份进行进一步的分析

2.2 FA

  1. 适应性分析:考察数据是否适合进行因子分析
  • KMO统计值大于0.5,Bartlett检验P-val小于0.05
  1. 确定因子的个数:同时达到减少参数和最大程度表示因子对变量的总贡献的目的
  2. 计算因子载荷矩阵(factor loading matrix):因子载荷矩阵的每一行的平方和表示对应的原始变量对因子的依赖程度;因子载荷矩阵的每一列的平方和表示对应因子对所有原始变量的贡献
  • 主成份法(principal component method)
  • 最大似然法(maximum likelihood estimate)
  • 主轴因子法(principal axis method)
  1. 旋转因子载荷矩阵(loading rotation)
  • 提升因子的可解释性
  • Varimax算法
  1. 计算因子得分(factor scores)
  • 这样原始数据变量就能用公共因子和特殊因子的线性组合表示出来。