图解因子分析与 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 做的就是:
- 找到椭圆的长轴方向(第一主成分)
- 找到椭圆的短轴方向(第二主成分)
- 如果只保留第一主成分,就相当于把椭圆“压扁”到长轴上
这样做的好处是,大部分信息都保留在了第一主成分中,而信息损失最小。
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;要解释相关性背后的原因、要潜在构念 → 因子分析