图解因子分析与 PCA

数据分析时,常面临一个问题:如何从复杂的高维数据中提取有价值的信息?比如面前有一张包含 100 个变量的数据表,如何从中发现潜在的规律和模式?

这时,因子分析主成分分析就成了我们的得力助手。

[!info] 阅读导览
第 1 章 从生活例子理解降维思想 → 第 2 章 主成分分析(PCA):思想、数学原理、几何解释 → 第 3 章 因子分析:思想、模型、协方差分解、载荷解释 → 第 4 章 两者异同与选择原则 → 第 5 章 实际应用案例

1. 从生活例子理解降维思想

让我们从一个生活中的例子开始。假设你是一家餐厅的老板,想了解顾客的满意度。你设计了一份问卷,包含 20 个问题:服务态度、上菜速度、食物味道、环境卫生、价格合理性等等。

收集到数据后,你发现这些问题之间存在很强的相关性。比如,对服务态度满意的顾客往往对上菜速度也比较满意;对食物味道满意的顾客通常也认为价格合理。这时你会想:能否用更少的几个“综合指标”来概括这 20 个问题呢?

这就是降维的核心思想——用更少的变量来解释原始数据中的大部分信息。

图片

2. 主成分分析(PCA)

2.1. PCA 的基本思想

PCA(Principal Component Analysis,主成分分析)的思路很直观:找到数据变化最大的方向。就像拍照时选择最佳角度一样,PCA 帮我们找到观察数据的最佳“角度”,让信息损失最小。

从几何角度看,PCA 就是将数据投影到方差最大的方向上。第一个主成分是数据方差最大的方向,第二个主成分是在与第一个主成分垂直的方向中方差最大的,依此类推。

2.2. PCA 的数学原理

设原始数据矩阵为 $X_{n \times p}$,其中 n 是样本数,p 是变量数。PCA 的核心步骤如下:

步骤 1:数据标准化

对每个变量 j 进行标准化:

$$z_{ij} = \frac{x_{ij} - \bar{x}_j}{s_j}$$

其中 $\bar{x}_j$ 是第 j 个变量的样本均值,$s_j$ 是样本标准差。

步骤 2:计算协方差矩阵

$$\Sigma = \frac{1}{n-1} X^T X$$

步骤 3:求解特征值和特征向量

$$\Sigma v_i = \lambda_i v_i$$

其中 $\lambda_i$ 是第 i 个特征值,$v_i$ 是对应的特征向量。

步骤 4:构建主成分得分

第 i 个主成分得分向量为:

$$PC_i = X v_i$$

其中 $PC_i$ 是 n×1 的向量,表示所有样本在第 i 个主成分上的得分。

步骤 5:选择主成分数量

通常选择累计方差贡献率达到 80%-90% 的前 k 个主成分:

$$\frac{\sum_{i=1}^{k} \lambda_i}{\sum_{i=1}^{p} \lambda_i} \geq 80%$$

2.3. PCA 的几何解释

一个经典的可视化表达是:一个二维的数据云,呈椭圆形分布。PCA 做的就是:

图片

  1. 找到椭圆的长轴方向(第一主成分)
  2. 找到椭圆的短轴方向(第二主成分)
  3. 如果只保留第一主成分,就相当于把椭圆“压扁”到长轴上

这样做的好处是,大部分信息都保留在了第一主成分中,而信息损失最小。

图片

3. 因子分析

3.1. 因子分析的核心思想

如果说 PCA 是“数据压缩器”,那么因子分析(Factor Analysis)就是“原因探测器”。它假设观测到的变量背后存在一些不可直接观测的“潜在因子”,这些因子是导致变量间相关性的真正原因。

回到餐厅例子,因子分析会告诉你:顾客的满意度可能主要由三个潜在因子决定——“服务质量”、“食物品质”和“性价比”。每个观测变量都是这些潜在因子的线性组合。

图片

3.2. 因子分析的数学模型

因子分析的基本模型为:

$$X = \mu + \Lambda F + \varepsilon$$

  • $X$:观测变量向量(p 维)
  • $\mu$:均值向量
  • $\Lambda$:因子载荷矩阵(p×m)
  • $F$:公共因子向量(m 维)
  • $\varepsilon$:特殊因子向量(p 维)

关键假设:

  • $E(F) = 0$,$\text{Cov}(F) = I$
  • $E(\varepsilon) = 0$,$\text{Cov}(\varepsilon) = \Psi$(对角矩阵)

3.3. 协方差分解

因子分析将协方差矩阵分解为:

$$\Sigma = \Lambda \Lambda^T + \Psi$$

这个公式的含义是:

  • $\Lambda \Lambda^T$:公共因子贡献的协方差(变量间的共同部分)
  • $\Psi$:特殊因子贡献的协方差(变量的独特部分)

3.4. 因子载荷的解释

因子载荷 $\lambda_{ij}$ 表示第 i 个变量在第 j 个因子上的载荷,其平方 $\lambda_{ij}^2$ 表示第 j 个因子对第 i 个变量方差的贡献。

对于第 i 个变量:

  • 共同度:$h_i^2 = \sum_{j=1}^{m} \lambda_{ij}^2$(公共因子解释的方差比例)
  • 特殊度:$\psi_i = 1 - h_i^2$(特殊因子解释的方差比例)

图片

4. PCA 与因子分析的异同

4.1. 相同点

目标相似:都是降维技术,用少数变量概括多数变量

数学基础:都基于特征值分解

应用场景:都适用于变量间相关性较强的情况

4.2. 核心差异

方面 PCA 因子分析
哲学思想 数据压缩,保留最大方差 探索潜在结构,解释相关性原因
数学模型 线性变换:$PC = XV$ 结构方程:$X = \mu + \Lambda F + \varepsilon$
成分解释 主成分是原变量的线性组合 原变量是潜在因子的线性组合
唯一性 解是唯一的 需要旋转确定,有一定主观性
方差处理 关注总方差 关注共同方差

4.3. 选择原则

选择 PCA 的情况

  • 主要目标是降维和数据压缩
  • 不关心潜在结构的实际意义
  • 需要客观、唯一的解

选择因子分析的情况

  • 想要理解变量间相关性的根本原因
  • 需要解释潜在构念(如能力、态度等)
  • 愿意接受一定的主观判断

图片

5. 实际应用案例

5.1. 市场研究中的应用

一家手机制造商想了解消费者的购买决策因素,调查了以下 20 个变量:价格、品牌知名度、屏幕大小、电池续航、拍照质量等。

使用 PCA:可能发现前 3 个主成分解释了 80% 的方差,用于数据可视化和聚类分析。

使用因子分析:可能发现背后有 4 个潜在因子——“性能因子”、“品牌因子”、“价格因子”和“外观因子”,每个因子都有明确的商业含义。

5.2. 心理测量中的应用

在智力测验中,通常包含多个子测验(如语言理解、数学推理、空间想象等)。

因子分析的应用:研究者发现这些子测验背后存在一个“一般智力因子”(g 因子)和若干特殊能力因子,这为智力理论提供了实证支持。


PCA 和因子分析是数据科学工具箱中的两件利器。PCA 像一台高效的“信息浓缩机”,帮我们从海量数据中提取精华;因子分析则像一位睿智的“侦探”,帮我们发现数据背后的潜在规律。

选择哪种方法取决于你的研究目的:如果目标是降维和可视化,选 PCA;如果想要理解潜在结构和因果关系,选因子分析。在实际应用中,这两种方法往往可以结合使用,相互补充,为我们提供更全面的数据洞察。

掌握了这两种方法,你就拥有了从复杂数据中提取价值信息的强大能力,无论是在商业分析、科学研究还是日常决策中,都能发挥重要作用。(作者:王海华)

[!success] 核心要点

  • 降维思想:用更少的变量概括原始数据中的大部分信息
  • PCA 是数据压缩器:找方差最大的方向,解唯一;五步流程——标准化 → 协方差矩阵 → 特征值分解 → 得分 → 按累计方差 80%-90% 选主成分
  • 因子分析是原因探测器:$X = \mu + \Lambda F + \varepsilon$,探索潜在因子,需要旋转、有一定主观性
  • 选择口诀:要降维、要客观、要唯一 → PCA;要解释相关性背后的原因、要潜在构念 → 因子分析