探索性因子分析 EFA是什么?
探索性因子分析 EFA 回答的是一组题项背后可能隐藏着几个共同维度。它用于量表开发早期,帮助发现题项如何聚成因子。
先用一句话理解
把 EFA 想成整理一堆问卷题。你还不确定这些题到底测几个概念,EFA 会根据题项之间的相关性,把经常一起变化的题归到同一潜在维度。
什么时候用
| 判断项 | 教科书式判断 |
|---|---|
| 适合用在 | 量表结构尚不明确,需要探索潜在维度。 |
| 先不要用在 | 已有明确理论结构并要验证题项归属。那是 CFA。 |
| 最关键的前提 | 题项之间应有足够相关性,样本量要支撑因子提取。 |
| 读表顺序 | 先看 KMO/Bartlett,再看因子数、旋转后载荷和交叉载荷。 |
| 论文表述边界 | EFA 是探索性证据,最好用独立样本再做 CFA 验证。 |
把它和相近方法分清楚
| 容易混淆的对象 | 怎么区分 | 初学者记法 |
|---|---|---|
| 相关矩阵 | 看题项两两关系。 | 不提取潜在维度。 |
| EFA | 探索几个因子和题项归属。 | 适合量表开发。 |
| CFA | 验证预设因子结构。 | 适合理论确认。 |
核心直觉和模型公式
共同因子模型
EFA 的基本形式是:
\[y_i=\Lambda f_i+u_i\]
f 是潜在共同因子,Lambda 是题项在各因子上的载荷。
公式里的符号怎么读
| 符号 | 含义 | 在本页怎么理解 |
|---|---|---|
| y_i | 题项向量 | 一组问卷题或观测指标。 |
| f_i | 共同因子 | 题项背后的潜在维度。 |
| Λ | 因子载荷 | 题项和因子的相关强度。 |
| u_i | 独特因素 | 题项自己的特殊误差或特征。 |
| rotation | 旋转 | 让因子载荷结构更容易解释。 |
专业使用口径
专业 EFA 报告要说明因子数怎么定,题项如何保留。
| 口径 | 专业写法 |
|---|---|
| 适用性检验 | KMO 和 Bartlett 说明数据是否适合因子分析。 |
| 因子数 | 结合特征值、碎石图和平行分析。 |
| 旋转方式 | 正交或斜交旋转要符合因子相关预期。 |
| 删题规则 | 低载荷或高交叉载荷题项要有透明规则。 |
一步一步做:从问题到结果的五步
| 步骤 | 这一页具体做什么 | 做到什么程度才算读懂 |
|---|---|---|
| 1. 检查相关性 | 题项之间要有共同变化。 | 完全不相关无法提因子。 |
| 2. 判断因子数 | 用碎石图、特征值和理论。 | 不要只机械看大于 1。 |
| 3. 选择旋转 | 让因子结构更清楚。 | 社会科学中斜交旋转常见。 |
| 4. 读取载荷 | 看每个题项主要加载到哪个因子。 | 交叉载荷要处理。 |
| 5. 命名因子 | 根据高载荷题项给因子命名。 | 命名要回到题项内容。 |
结果怎么读:先读口径,再读数字
本页案例读表时,先记住这个口径:案例派生 alpha = 0.0409,第一因子解释率 = 0.1876,题项数 = 6。
| 读表顺序 | 本页怎么读 | 不要这样读 |
|---|---|---|
| 先看 KMO/Bartlett | 数据是否适合做 EFA。 | 适用性不过关就别强做。 |
| 再看因子数 | 提取几个因子。 | 因子数决定解释结构。 |
| 然后看旋转载荷 | 题项归属是否清楚。 | 交叉载荷说明题项不纯。 |
| 最后看命名 | 因子名是否符合题项含义。 | 不要给因子贴过大的概念。 |
初学者最容易错在哪里
| 误读 | 为什么错 |
|---|---|
| 把 EFA 当确认性证据 | 错。它是探索。 |
| 因子数只按特征值大于 1 | 不够。要结合碎石图和理论。 |
| 交叉载荷题项不处理 | 风险高。量表维度不清。 |
| 因子命名脱离题项 | 错。名字要来自高载荷题项。 |
先看这个案例的结论
- 案例派生 alpha = 0.0409,第一因子解释率 = 0.1876,题项数 = 6。
- 这里用财务变量秩分位派生题项做教学演示;正式问卷论文要换成真实题项,并报告每个题项载荷。
- 量表方法的顺序是:信度/同源方差/EFA/CFA/SEM,不能跳过测量模型直接解释路径。
变量要求和案例口径
| 字段 | 口径 |
|---|---|
| 数据 | CSMAR 风格 A 股企业创新面板 |
| 原始样本 | 196 家上市公司,2015-2020 年,约 1200 个公司-年观测;各方法有效样本以本页输出表 N 为准 |
| 因变量 | patent_count;回归页通常使用 ln(1 + patent_count) |
| 核心解释变量 | dfi_index,数字普惠金融指数;部分案例输出展示的是标准化后的 dfi_index |
| 控制变量 | roa、lev、size、growth、cashflow、tobinq、top1、dual、board、indep、soe、age |
| 输出文件 | efa_results.csv |
| 角色要求 | 无硬性角色要求 |
| 依赖包 | 无额外 Stata 社区包要求 |
实际代码
下面是本页案例里的最小 Stata 代码。它的作用是帮助你看清变量怎么进入模型、结果文件怎么生成,而不是要求你在网页里手动运行。
import delimited "$DATA_PATH", clear varnames(1) encoding(UTF-8)
gen ln_patent1 = ln(1 + patent_count)
egen firm_id = group(stkcd)
xtset firm_id year
global y ln_patent1
global count_y patent_count
global x dfi_index
global controls roa lev size growth cashflow tobinq top1 dual board indep soe age
gen post = year >= 2018
bysort firm_id: egen pre_dfi = mean(cond(year < 2018, dfi_index, .))
quietly summarize pre_dfi, detail
gen treat = pre_dfi >= r(p50)
gen did = treat * post
gen high_patent = patent_count > 2
gen running_dfi = dfi_index - 260
gen rdd_treat = running_dfi >= 0
factor roa lev size growth cashflow tobinq top1 indep, factors(2) pcf
rotate, varimax
estat kmo
export delimited using "$JOB_DIR/efa_results.csv", replace
实际输出表
这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。
| 指标 | 数值 | 解释 |
|---|---|---|
| 样本 | 1200 obs / 196 firms / 2015-2020 | 来自共用案例 CSV |
| 因变量 | ln(1 + patent_count) | 企业创新产出 |
| 核心解释变量 | dfi_index | 数字普惠金融指数 |
| 输出文件 | efa_results.csv | empirical-wizard 对应方法产物 |
| 案例派生 alpha | 0.0409 | 用财务变量秩分位派生题项 |
| 第一因子解释率 | 0.1876 | Harman 单因素检验最先看的比例 |
| 第二因子解释率 | 0.1719 | EFA 需要同时看多个因子 |
| 题项数 | 6 | roa/lev/size/growth/cashflow/tobinq |
案例图
这是一张由同一份案例数据生成的页面内诊断图。

论文里怎么写
本文使用EFA 探索性因子分析对案例派生题项进行量表/潜变量诊断。结果见 efa_results.csv。若信度、载荷或拟合指标未达到常用阈值,后续结构路径不宜直接作为强证据解释。
检查清单
- 先看 KMO 和 Bartlett,确认数据适合做因子分析。
- 因子数要结合理论、碎石图和平行分析,不能只看 eigenvalue > 1。
- 交叉载荷和低共同度题项要回到题义判断,不能机械删题。