📑 查看全课大纲(第 13 / 20 节)
- 1.多元统计分析概述与多元正态分布
- 2.多元数据矩阵与向量化运算
- 3.统计数据探索与高维数据清洗
- 4.样品与变量相似性度量(距离与相似系数)
- 5.系统聚类与K均值聚类算法原理
- 6.聚类分析代码实战与谱系图绘制
- 7.距离判别法理论推导与应用
- 8.贝叶斯判别与Fisher线性判别
- 9.判别分析代码实战与误判率评估
- 10.主成分分析推导、几何意义与统计性质
- 11.主成分回归与共线性消除
- 12.主成分分析代码实战与降维可视化
- 13.因子分析正交模型与因子载荷求解
- 14.因子正交旋转(方差最大化)与因子得分计算
- 15.因子分析代码实战与行业综合评价
- 16.列联表分析与卡方独立性检验
- 17.对应分析理论推导与过渡图原理
- 18.对应分析代码实战与双标图解读
- 19.典型相关变量数学推导与显著性检验
- 20.典型相关系数阵计算与代码实战
因子分析正交模型与因子载荷求解
约 62 分钟
小象实战讲义 · 多元统计分析
因子分析是多元统计中探索变量内在结构、提取潜在公共因子的核心技术。与主成分分析(PCA)不同,它从可观测变量中提炼不可直接观测的公共因子,以解释变量相关性、简化数据结构。本节将介绍因子分析的基本思想、正交模型、因子载荷的统计意义,并讲解主因子法求解载荷矩阵的过程与Python实现。
💡 核心导读
- 因子分析核心:从可观测变量的相关性中,寻找少数支配性潜在公共因子。
- 正交因子模型:变量表示为公共因子线性组合加特殊因子,满足正交性假设。
- 因子载荷意义:反映变量与公共因子的相关性,平方和对应共同度与方差贡献。
- 主因子法求解:通过约相关阵特征分解,得到方差贡献最大化的载荷矩阵。
- Python实战:用主成分法(主因子特例)估计载荷、共同度,验证模型拟合效果。
一、因子分析的基本思想与模型
1.1 从主成分分析到因子分析
主成分分析将 个原始变量 线性变换为 () 个互不相关的主成分 ,实现降维去相关,模型形式为:
因子分析则从相反角度出发:假设每个可观测变量 受少数不可观测的公共因子 和仅作用于自身的特殊因子 共同影响,模型形式为: 其中 称为因子载荷,表示第 个变量在第 个公共因子上的权重。
1.2 因子分析的起源:Spearman的智力研究
因子分析思想最早由Charles Spearman于1904年提出。他在学生成绩研究中发现,不同科目成绩的相关系数存在稳定比例关系,推测存在一个潜在公共因子(一般智力g)影响所有科目成绩,即单因子模型: 其中 为公共因子, 为科目对智力的依赖程度, 为特殊因素。该模型可很好解释观察到的相关规律,后被推广为多因子模型。
1.3 R型正交因子分析模型
标准R型正交因子分析模型的矩阵形式为: 其中:
- 为 维标准化可观测向量(均值0,方差1);
- 为 维公共因子向量,;
- 为 维特殊因子向量;
- 为因子载荷矩阵。
模型满足三个基本假设:
- 公共因子与特殊因子不相关:;
- 公共因子标准化且互不相关:;
- 特殊因子互不相关:, 为特殊方差。
在此假设下,标准化变量的相关矩阵可分解为: 该分解式是因子分析的核心,也是求解载荷矩阵的出发点。
二、因子载荷矩阵的统计意义
2.1 因子载荷
因子载荷 本质是 与 的相关系数。由于 和 均已标准化,二者协方差等于相关系数: 因此 反映了 对 的依赖程度,绝对值越大,二者关系越密切。
2.2 变量共同度
变量 的方差可分解为公共因子解释部分和特殊因子解释部分: 定义共同度 ,表示 方差中能被所有公共因子解释的比例。由于 标准化后方差为1,因此 , 越接近1,公共因子解释力越强。
2.3 公共因子的方差贡献
定义第 个公共因子的方差贡献 ,即载荷矩阵第 列元素的平方和,反映 对所有变量的总影响力。 越大,该因子越重要。通常按 降序排列公共因子,贡献率为 。
三、主因子法求解因子载荷矩阵
因子分析的核心是估计 和 ,主因子法是最常用的估计方法之一,思路与主成分分析类似但出发点不同。
3.1 约相关阵
由模型分解式 ,移项得约相关阵: 约相关阵的对角线元素为变量共同度 (而非原始相关矩阵的1),非对角线元素与原始相关系数一致,是一个非负定矩阵。
3.2 主因子法的求解思路
主因子法的目标是找到载荷矩阵 ,使得公共因子按方差贡献从大到小排列,且满足 。
根据矩阵特征分解理论, 的第 列等于约相关阵 的第 大特征值的平方根乘以对应的单位特征向量,即: 其中 是 的第 大特征值, 是对应的单位特征向量。
最终因子载荷矩阵为:
3.3 特例:主成分法
实际应用中,约相关阵 是未知的(需先估计特殊方差)。最简单的初始估计是假设所有变量的共同度 ,即 ,此时 ,约相关阵退化为原始相关矩阵,这种方法称为主成分法。
主成分法的载荷求解与主成分分析的特征分解完全等价,虽可能高估共同度,但因简单易用,是实际中最常用的因子载荷估计方法之一。
四、Python实战:主成分法估计因子模型
下面用Python演示主成分法估计因子载荷、共同度与特殊方差,并验证模型重构效果。
import numpy as np
np.random.seed(42)
R = np.array([
[1.00, 0.80, 0.75, 0.20, 0.15],
[0.80, 1.00, 0.82, 0.25, 0.18],
[0.75, 0.82, 1.00, 0.18, 0.22],
[0.20, 0.25, 0.18, 1.00, 0.70],
[0.15, 0.18, 0.22, 0.70, 1.00]
])
eigenvals, eigenvecs = np.linalg.eigh(R)
idx = np.argsort(eigenvals)[::-1]
eigenvals = eigenvals[idx]
eigenvecs = eigenvecs[:, idx]
m = 2
Lambda = eigenvecs[:, :m] * np.sqrt(eigenvals[:m])
communalities = np.sum(Lambda**2, axis=1)
psi = 1.0 - communalities
R_approx = Lambda @ Lambda.T + np.diag(psi)
residual_norm = np.linalg.norm(R - R_approx)
print("前 2 主因子特征值:", np.round(eigenvals[:2], 4).tolist())
print("主因子载荷矩阵形状:", Lambda.shape)
print("5 个变量的共同度 (Communalities):", np.round(communalities, 4).tolist())
print("5 个变量的特殊方差 (Uniqueness):", np.round(psi, 4).tolist())
print("因子模型重构残差矩阵范数:", round(float(residual_norm), 8))运行结果:
前 2 主因子特征值: [2.7935, 1.4883]
主因子载荷矩阵形状: (5, 2)
5 个变量的共同度 (Communalities): [0.8404, 0.8891, 0.8518, 0.8485, 0.852]
5 个变量的特殊方差 (Uniqueness): [0.1596, 0.1109, 0.1482, 0.1515, 0.148]
因子模型重构残差矩阵范数: 0.28820724结果解读:两个公共因子可解释原始变量85.64%的方差,第一因子主要支配前3个变量(因子1载荷约0.86-0.90),第二因子主要支配后2个变量(因子2载荷约0.78-0.80);所有变量共同度均在0.84以上,说明公共因子对各变量解释力较强;残差很小,因子模型对相关矩阵的重构效果理想。
📝 动手练一练
共同度计算
正交因子模型中,标准化变量 的共同度 ,求其特殊方差 并说明含义。 参考答案:由 ,得 ,说明公共因子可解释 75%的方差,解释力较强。载荷的意义
标准化变量 与公共因子 的载荷 ,说明二者的关系。 参考答案:因子载荷即变量与因子的相关系数,故 ,二者高度正相关, 对 的解释力很强。
本章小结
本节核心内容包括:
- 因子分析本质是寻找可观测变量背后的少数潜在公共因子,简化数据结构、解释变量相关性。
- 正交因子模型 满足公共因子不相关、特殊因子不相关、二者互不相关的假设。
- 因子载荷 是变量 与公共因子 的相关系数;行平方和为共同度 ,列平方和为因子方差贡献 。
- 主因子法通过约相关阵的特征分解求解载荷矩阵,主成分法是其特例(假设特殊方差为0)。
- Python中可通过numpy的特征分解实现主成分法因子分析,通过残差验证模型拟合效果。
— 小象教研组
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加顾问免费领取;想学什么,直接告诉顾问
微信扫码添加顾问