一句话定义
因子分析(Factor Analysis)是一种统计建模方法,它假设我们观测到的一堆变量,是由少数几个看不见的潜在因子(latent factor)线性加权求和生成的;它的任务是从观测数据反推出这些因子是什么,以及每个变量受各因子影响有多大。
它是“生成模型”,并非“压缩工具”
以学生的十门课成绩为例。表面上看是十个变量,背后可能只有两三个推手:语言能力、数理能力、记忆力。每门课的成绩,可以粗略写成:
> 某门课成绩 = 语言能力 × 权重1 + 数理能力 × 权重2 + 这门课特有的东西
用公式写就是 x = Λf + ε。其中 f 是潜在因子,Λ 是因子载荷(loading,表示某因子对某变量的影响力),ε 是独特因子(unique factor),也就是该变量自己独有的部分再加上测量误差。
所以因子分析从一开始就承认两件事:一,变量之间存在“共同方差”,这部分由少数因子解释;二,每个变量还有自己的“独特方差”。这种带误差项、带隐变量的假设,是它和很多降维方法的分水岭。
和 PCA 的关键区别
主成分分析(Principal Component Analysis, PCA)常被拿来和它比较,因为两者都输出“少数几个维度”。但两者的思路不同:
| 主成分分析 PCA | 因子分析 FA | |
|---|---|---|
| 本质 | 坐标旋转,纯线性代数变换 | 带隐变量和误差项的统计模型 |
| 假设 | 不假设数据由什么生成 | 假设观测变量由少数因子线性生成 |
| 关注 | 解释总方差最大 | 解释变量间的共同方差 |
| 结果唯一性 | 成分基本唯一(差个符号) | 不唯一,通常要旋转(rotation,如 varimax)才好解释 |
| 输出 | 成分得分 | 因子载荷矩阵 + 因子得分(估计值) |
一句话:PCA 问的是“怎么用更少的维度把这些数据说清楚”,因子分析问的是“是什么东西让这些变量一起变动”。PCA 的成分未必有现实含义;因子分析的因子如果不做旋转、不做解释,也等于白做。
对从业者的实际意义
- 做问卷、心理测量、用户调研:几十道题的答案往往由“满意度”“易用性”“价格敏感”几个维度驱动,因子分析能把题目归并成可命名的量表维度。验证性版本叫 CFA(Confirmatory Factor Analysis),探索性版本叫 EFA。
- 做用户画像或指标体系:几百个行为指标之间存在大量共线性,先做因子分析能提炼出“活跃度”“消费力”这类可解释的潜变量,再做后续建模。
- 选工具的判断:只想压缩、去噪、可视化,用 PCA;想讲清“为什么这些指标会联动”,用因子分析。注意 PCA 也常被当作提取因子的一种手段(主成分法),但解释逻辑不同。
实践上要有足够样本量、先标准化数据、用碎石图或平行分析定因子个数,并且对旋转后的载荷做人为命名——最后一公里仍取决于领域知识。具体软件实现与默认参数以官方文档为准。
