数值分析:因子分析

第一部分:因子分析的核心思想与基本模型

1.1 核心目标与哲学

因子分析(Factor Analysis, FA)是一种多元统计降维技术,其根本目的超越了简单的数据压缩。它的核心在于:

  • 探索潜在结构 :假设观测到的多个原始变量(X1,X2,...,XpX_1, X_2, ..., X_pX1,X2,...,Xp)之所以彼此相关,并非偶然,而是因为它们共同受到少数几个不可直接观测的、潜在的"公共因子"(Common Factors) 的影响。
  • 模型化数据生成过程 :FA试图建立一个解释性模型,将每个可观测的变量分解为其背后的共同原因(公共因子)和自身独有的、无法被共同原因解释的部分(特殊因子)。
1.2 基本数学模型(正交因子模型)

文档中明确给出了因子分析的数学表达式,这是理解一切的基础。

  • 单个变量的分解

    对于第 iii 个原始变量 XiX_iXi,其值可以表示为:
    Xi=μi+ai1F1+ai2F2+...+aimFm+εiX_i = \mu_i + a_{i1}F_1 + a_{i2}F_2 + ... + a_{im}F_m + \varepsilon_iXi=μi+ai1F1+ai2F2+...+aimFm+εi

    其中:

    • μi\mu_iμi 是变量 XiX_iXi 的均值。
    • F1,F2,...,FmF_1, F_2, ..., F_mF1,F2,...,Fm (m<pm < pm<p) 是 mmm 个公共因子(Common Factors) 。这些是模型试图找出的、驱动多个变量协同变化的潜在维度 。它们是不可观测的。
    • ai1,ai2,...,aima_{i1}, a_{i2}, ..., a_{im}ai1,ai2,...,aim 是 因子载荷(Factor Loadings) 。它量化了第 iii 个变量在第 jjj 个公共因子上的"权重"或"敏感度"。从统计角度看,因子载荷 aija_{ij}aij 等于变量 XiX_iXi 与公共因子 FjF_jFj 之间的协方差 。在标准化(使用相关矩阵)的情况下,它就等于相关系数
    • εi\varepsilon_iεi 是 特殊因子(Specific Factor)唯一因子(Unique Factor) 。它代表了仅影响 XiX_iXi 自身的那部分变异,包括测量误差和该变量独有的、不与其他变量共享的信息。
  • 矩阵形式

    将所有 ppp 个变量的方程组合起来,可以写成简洁的矩阵形式:
    X−μ=AF+ε\mathbf{X} - \boldsymbol{\mu} = \mathbf{A}\mathbf{F} + \boldsymbol{\varepsilon}X−μ=AF+ε

    其中:

    • X=[X1,X2,...,Xp]T\mathbf{X} = [X_1, X_2, ..., X_p]^TX=[X1,X2,...,Xp]T 是原始变量向量。
    • μ=[μ1,μ2,...,μp]T\boldsymbol{\mu} = [\mu_1, \mu_2, ..., \mu_p]^Tμ=[μ1,μ2,...,μp]T 是均值向量。
    • A=(aij)p×m\mathbf{A} = (a_{ij})_{p \times m}A=(aij)p×m 是 因子载荷矩阵(Factor Loading Matrix)。这是因子分析的核心输出,包含了所有变量与所有因子的关系信息。
    • F=[F1,F2,...,Fm]T\mathbf{F} = [F_1, F_2, ..., F_m]^TF=[F1,F2,...,Fm]T 是公共因子向量。
    • ε=[ε1,ε2,...,εp]T\boldsymbol{\varepsilon} = [\varepsilon_1, \varepsilon_2, ..., \varepsilon_p]^Tε=[ε1,ε2,...,εp]T 是特殊因子向量。
  • 关键模型假设

    为了使模型可解且具有良好的统计性质,正交因子模型做了以下重要假设:

    1. 公共因子相互独立且标准化 :E(F)=0E(\mathbf{F}) = \mathbf{0}E(F)=0, Cov(F)=Im\text{Cov}(\mathbf{F}) = \mathbf{I}_mCov(F)=Im。这意味着公共因子之间互不相关(正交),并且各自的方差都为1。
    2. 特殊因子相互独立 :Cov(ε)=D=diag(σ12,σ22,...,σp2)\text{Cov}(\boldsymbol{\varepsilon}) = \mathbf{D} = \text{diag}(\sigma_1^2, \sigma_2^2, ..., \sigma_p^2)Cov(ε)=D=diag(σ12,σ22,...,σp2)。特殊因子之间也互不相关,但它们的方差 σi2\sigma_i^2σi2 可以不同。
    3. 公共因子与特殊因子不相关 :Cov(F,ε)=0\text{Cov}(\mathbf{F}, \boldsymbol{\varepsilon}) = \mathbf{0}Cov(F,ε)=0。公共部分和独特部分是完全分离的。
1.3 模型的协方差结构

基于上述模型和假设,原始变量的协方差矩阵 Σ\mathbf{\Sigma}Σ(或相关矩阵 R\mathbf{R}R,如果数据已标准化)可以被分解为:
Σ=AAT+D\mathbf{\Sigma} = \mathbf{A}\mathbf{A}^T + \mathbf{D}Σ=AAT+D

这个等式是因子分析的基石。它表明,观测到的变量间的协方差(或相关性)完全由两部分构成:

  • AAT\mathbf{A}\mathbf{A}^TAAT : 由公共因子引起的公共方差(Common Variance) 部分。
  • D\mathbf{D}D : 由特殊因子引起的唯一方差(Unique Variance) 部分。

第二部分:因子分析的关键概念与指标详解

2.1 因子载荷(Factor Loading)
  • 定义 :如前所述,aija_{ij}aij 是变量 XiX_iXi 与因子 FjF_jFj 的协方差(或标准化后的相关系数)。
  • 解释 :其绝对值大小衡量了变量 XiX_iXi 在因子 FjF_jFj 上的"负荷"程度。
    • ∣aij∣≈1|a_{ij}| \approx 1∣aij∣≈1:表示 XiX_iXi 几乎完全由 FjF_jFj 决定。
    • ∣aij∣≈0|a_{ij}| \approx 0∣aij∣≈0:表示 XiX_iXi 与 FjF_jFj 基本无关。
  • 作用 :是进行因子命名理解因子含义的最直接依据。
2.2 共同度(Communality)
  • 定义 :对于第 iii 个变量 XiX_iXi,其共同度 hi2h_i^2hi2 定义为该变量在所有 mmm 个公共因子上的载荷平方和:
    hi2=∑j=1maij2h_i^2 = \sum_{j=1}^{m} a_{ij}^2hi2=j=1∑maij2
  • 解释
    • 共同度代表了变量 XiX_iXi 的总方差中,能够被所提取的 mmm 个公共因子共同解释的比例
    • 在使用相关矩阵(即变量已标准化,总方差为1)的情况下,hi2h_i^2hi2 的取值范围是 [0, 1]。
    • hi2h_i^2hi2 越接近 1 ,说明该变量的信息几乎完全被公共因子捕捉,特殊因子 εi\varepsilon_iεi 的贡献很小(σi2=1−hi2≈0\sigma_i^2 = 1 - h_i^2 \approx 0σi2=1−hi2≈0)。
    • hi2h_i^2hi2 越小,说明该变量的独特性越强,或者当前提取的因子数量不足以解释它。
  • 文档示例:在数学成绩案例中,"几何"(x3)的共同度高达 0.997,意味着其成绩几乎完全由"逻辑思维"和"空间思维"这两个公共因子决定。
2.3 特殊因子方差(Specific Variance / Uniqueness)
  • 定义 :σi2=Var(εi)\sigma_i^2 = \text{Var}(\varepsilon_i)σi2=Var(εi)。
  • 解释 :在标准化情况下,σi2=1−hi2\sigma_i^2 = 1 - h_i^2σi2=1−hi2。它代表了变量 XiX_iXi 中无法被公共因子解释的那部分方差,即变量的独特信息和随机误差。
2.4 因子的方差贡献与特征值
  • 定义 :第 jjj 个公共因子 FjF_jFj 对所有 ppp 个原始变量提供的方差总和,称为该因子的方差贡献 ,其数值上等于因子载荷矩阵第 jjj 列元素的平方和:
    方差贡献j=∑i=1paij2\text{方差贡献}j = \sum{i=1}^{p} a_{ij}^2方差贡献j=i=1∑paij2
  • 与特征值的关系 :在使用主成分法作为初始提取方法时,这个方差贡献值恰好等于对应因子的特征值(Eigenvalue) λj\lambda_jλj。
  • 方差贡献率 :单个因子的方差贡献占所有变量总方差(在相关矩阵下为 ppp)的比例:
    贡献率j=λjp\text{贡献率}_j = \frac{\lambda_j}{p}贡献率j=pλj
  • 累积方差贡献率 :前 kkk 个因子的方差贡献之和占总方差的比例:
    累积贡献率k=∑j=1kλjp\text{累积贡献率}k = \frac{\sum{j=1}^{k} \lambda_j}{p}累积贡献率k=p∑j=1kλj
  • 作用 :这是决定提取多少个公共因子的关键指标。通常希望累积贡献率达到一个较高的水平(如80%以上),以保证保留了大部分原始信息。

第三部分:因子分析的完整实施步骤

文档清晰地列出了进行一次因子分析的标准流程。

3.1 步骤一:前提条件检验(是否适合做FA?)

在进行因子分析之前,必须检验数据是否满足基本前提,即变量间是否存在足够强的相关性。

  • KMO (Kaiser-Meyer-Olkin) 检验
    • 原理 :比较变量间的简单相关系数偏相关系数。如果变量间存在公共因子,那么控制了其他变量后,两个变量间的偏相关应该很小,而简单相关较大,此时KMO值会接近1。
    • 判别标准
      • KMO > 0.9:非常适合进行因子分析。
      • 0.8 < KMO ≤ 0.9:适合
      • 0.7 < KMO ≤ 0.8:一般
      • 0.6 < KMO ≤ 0.7:不太适合
      • KMO ≤ 0.5:极不适合
  • Bartlett's 球形检验 (虽未在文档中明确提及,但常与KMO一同使用):检验相关矩阵是否为单位矩阵(即变量是否相互独立)。原假设是"变量相互独立",我们希望拒绝原假设(p值 < 0.05),表明变量间存在显著相关性,适合做FA。
3.2 步骤二:因子提取(确定初始因子载荷矩阵)
  • 方法 :文档提到"基于主成分分析的方法"。这是最常用的主成分法(Principal Component Method)
    • 对原始变量的相关矩阵 (推荐,尤其当变量量纲不同时)或协方差矩阵进行特征值分解。
    • 选取前 mmm 个最大的特征值 λ1,λ2,...,λm\lambda_1, \lambda_2, ..., \lambda_mλ1,λ2,...,λm 及其对应的特征向量。
    • 初始因子载荷矩阵 A\mathbf{A}A 的第 jjj 列为 λj⋅uj\sqrt{\lambda_j} \cdot \mathbf{u}_jλj ⋅uj,其中 uj\mathbf{u}_juj 是第 jjj 个特征向量。
  • 确定因子个数 mmm
    • Kaiser准则:只保留特征值大于1的因子(在相关矩阵下,一个因子至少要能解释超过一个变量的平均方差)。
    • 累积方差贡献率 :选择最小的 mmm,使得累积贡献率超过预设阈值(如80%)。
    • 碎石图(Scree Plot):绘制特征值随因子序号变化的曲线,寻找"拐点"(elbow point),拐点之前的因子被保留。
3.3 步骤三:因子旋转(提升可解释性)
  • 问题:初始提取的因子载荷矩阵往往难以解释,因为很多变量在多个因子上都有中等程度的载荷。
  • 目的 :通过数学变换(旋转),使得载荷矩阵的结构更"清晰"------即让每个变量只在一个因子上有高载荷 ,而在其他因子上载荷接近0;同时,每个因子也只被一部分变量高载荷。这被称为"简单结构(Simple Structure)"。
  • 旋转类型
    1. 正交旋转(Orthogonal Rotation)
      • 特点 :旋转过程中保持因子之间的正交性(不相关)
      • 常用方法方差最大法(Varimax),它最大化每个因子上载荷的方差,使高载荷更高,低载荷更低。
      • 适用场景:当理论或先验知识认为公共因子应该是相互独立的时候。
    2. 斜交旋转(Oblique Rotation)
      • 特点放弃因子间必须正交的限制,允许因子之间存在相关性。
      • 优点 :在现实中,潜在因子常常是相关的,斜交旋转有时能得到更具实际意义和更好拟合的模型。
      • 缺点:解释稍微复杂一些,因为需要同时考虑因子本身和因子间的相关性。
  • 文档强调:"建立了因子分析数学目的不仅仅要找出公共因子...更重要的要知道每个公共因子的意义...由于因子载荷阵是不唯一的,所以应该对因子载荷阵进行旋转。"
3.4 步骤四:因子命名与解释
  • 方法 :仔细检查旋转后的因子载荷矩阵
  • 过程
    1. 对于每个因子 FjF_jFj,找出在其上具有高载荷(通常 |载荷| > 0.4 或 0.5)的原始变量。
    2. 分析这些高载荷变量的共同主题或内涵
    3. 基于这个共同主题,为因子 FjF_jFj 赋予一个有意义的名称
  • 文档案例
    • 数学成绩:F1(代数、三角等载荷高)→ "逻辑思维和运算能力";F2(几何载荷极高)→ "空间思维和推理能力"。
    • 十项全能:旋转前因子难以解释;旋转后清晰分为"短跑速度因子"、"爆发性臂力因子"、"长跑耐力因子"、"爆发腿力因子"。
3.5 步骤五:计算因子得分(Factor Scores)
  • 目的:得到每个样本(观测对象)在各个公共因子上的具体数值(得分)。这些得分可以用于后续的多种分析。
  • 应用
    • 综合评价:例如,用F1和F2的加权得分对学生数学能力进行排名。
    • 聚类分析:在因子得分构成的低维空间中进行聚类。
    • 回归分析:用因子得分作为新的自变量,避免多重共线性问题。
  • 计算方法 :有多种估计方法,如回归法(Thomson's method)Bartlett法等。软件通常会自动提供。

第四部分:因子分析与主成分分析(PCA)的深度对比

文档专门用一节(§4)来阐述两者的关系与区别,这是理解FA本质的关键。

对比维度 因子分析 (Factor Analysis) 主成分分析 (Principal Component Analysis)
1. 基本哲学 解释性模型(Exploratory Model) 假设数据是由潜在的、不可观测的公共因子生成的。目标是揭示数据背后的因果或潜在结构 描述性变换(Descriptive Transformation) 不假设任何数据生成机制。目标是找到能最大程度保留原始数据方差的新坐标轴(主成分)。
2. 数学本质 分解(Decomposition) 将原始变量 XiX_iXi 分解 为公共部分(∑aijFj\sum a_{ij}F_j∑aijFj)和独特部分(εi\varepsilon_iεi)。 合成(Synthesis) 将原始变量 XiX_iXi 线性组合 成新的综合变量(主成分 Fj=∑ujiXiF_j = \sum u_{ji}X_iFj=∑ujiXi)。
3. 成分/因子性质 公共因子(FjF_jFj)是潜在的、不可观测的随机变量。它们是模型推断出的原因。 主成分(FjF_jFj)是原始变量的确定性线性组合。它们是数据变换的结果。
4. 唯一性 因子载荷矩阵不唯一。可以通过旋转得到无数个在统计上等价但解释性不同的解。这正是其优势所在。 主成分及其载荷是唯一确定的(除了符号可能相反)。第一个主成分方向是唯一的(最大方差方向)。
5. 特殊因子 显式包含特殊因子(εi\varepsilon_iεi)。模型明确区分了公共方差和唯一方差。 没有特殊因子的概念 。所有方差都被分配给了主成分。前 mmm 个主成分无法解释的方差被视为"残差",但不是模型的一部分。
6. 协方差结构 模型为 Σ=AAT+D\mathbf{\Sigma} = \mathbf{A}\mathbf{A}^T + \mathbf{D}Σ=AAT+D。目标是用尽可能少的因子近似重构 Σ\mathbf{\Sigma}Σ。 主成分是 Σ\mathbf{\Sigma}Σ 的谱分解。前 mmm 个主成分能精确解释 ∑j=1mλj\sum_{j=1}^m \lambda_j∑j=1mλj 的方差。
7. 应用侧重点 理论构建、量表开发、探索潜在构念(如心理学中的"智力"、市场研究中的"品牌态度")。 数据降维、可视化、去噪、解决多重共线性

核心联系:文档指出"因子分析是主成分分析的推广,也是主成分分析的逆问题"。这体现在:

  • PCA是FA的一种特殊情形 :当提取的公因子个数 mmm 等于原始变量个数 ppp,且特殊因子方差 D=0\mathbf{D} = \mathbf{0}D=0 时,FA模型就退化成了一个纯粹的变量变换,此时其结果与PCA一致。
  • PCA常作为FA的初始提取方法:因为PCA提供了一种快速、有效的方式来获得初始的因子载荷估计。

第五部分:文档中的典型案例解析

5.1 案例一:学生数学成绩分析
  • 变量:5门课程成绩(代数1, 代数2, 几何, 三角, 解析几何)。
  • 分析过程
    1. 提取2个公共因子。
    2. 查看因子载荷矩阵和共同度。
  • 结果解读
    • F1 在所有代数、三角、解析几何上载荷都很高(>0.8),被解释为 "逻辑思维和运算能力"
    • F2 在"几何"上载荷极高(0.855),远超其他变量,被解释为 "空间思维和推理能力"
    • 所有变量的共同度都非常高(>0.88),尤其是"几何"(0.997),说明这两个因子几乎完美地解释了这5门课程成绩之间的相关性。
  • 启示:展示了如何通过载荷模式对抽象因子进行具象化命名。
5.2 案例二:奥运会十项全能成绩分析
  • 变量:10个运动项目的成绩。
  • 分析过程
    1. 初始提取因子后,发现除第一个因子(一般运动能力)外,其他因子难以解释。
    2. 进行因子旋转
  • 结果解读
    • 旋转后,因子结构变得非常清晰,成功识别出四个具有明确体育意义的维度:
      • 短跑速度因子(百米跑、400米跑、百米跨栏)
      • 爆发性臂力因子(铅球、铁饼、标枪)
      • 长跑耐力因子(1500米跑)
      • 爆发腿力因子(跳远、跳高、撑杆跳远)
  • 启示因子旋转对于获得可解释的、有意义的因子结构至关重要。没有旋转,分析可能失败。

总结

综上所述:因子分析

  1. 它始于一个深刻的假设:可观测变量的相关性源于少数不可见的公共因子。
  2. 它通过一个严谨的数学模型 (X=μ+AF+ε\mathbf{X} = \boldsymbol{\mu} + \mathbf{A}\mathbf{F} + \boldsymbol{\varepsilon}X=μ+AF+ε)来形式化这一假设,并定义了关键参数(载荷、共同度)。
  3. 它遵循一套标准的操作流程:从适用性检验(KMO)、因子提取(主成分法)、到至关重要的因子旋转,再到因子命名和得分计算。
  4. 它与PCA有着本质的区别:FA是解释性的、分解式的、关注潜在结构的模型;而PCA是描述性的、合成式的、关注数据压缩的变换。
  5. 它的价值最终体现在实际应用中:通过两个生动的案例(学业成绩、体育成绩),文档展示了如何将抽象的数学输出转化为有实际意义的洞察。
相关推荐
minglie16 小时前
电枢公式--电枢绕线的规律
数学
闻缺陷则喜何志丹1 天前
【计算几何 最短路 动态规划】P1354 房间最短路问题
数学·算法·动态规划·最短路·计算几何·洛谷
闻缺陷则喜何志丹1 天前
【计算几何】平面凸包
c++·数学·扫描线·凸包·单调性·上凸包·下凸包
闻缺陷则喜何志丹1 天前
计算几何汇总
c++·数学·计算几何·凸多边形·简单多边形
闻缺陷则喜何志丹2 天前
【2025博客之星】求职总结
线性代数·数学·计算几何·objectarx·cad·高度数学
闻缺陷则喜何志丹3 天前
【计算几何 化环为链】P14165 [ICPC 2022 Nanjing R] 清空水箱|普及+
c++·数学·算法·计算几何·洛谷·化环为链
0x7F7F7F7F6 天前
数学知识——博弈论
数学·算法
闻缺陷则喜何志丹6 天前
【组合数学 动态规划】P6870 [COCI2019-2020#5] Zapina|普及+
c++·数学·算法·动态规划·组合数学
牧歌悠悠7 天前
【Random Matrices】第一章-随机矩阵入门
线性代数·数学·概率论·随机矩阵·高维概率