Day 08 · 手写教程

探索性因子分析 EFA

不是几个题随便装一个因子

返回方法库 · 共用案例 · 变量百科

EFA 是什么?

EFA 是探索性因子分析。它适合在你还不完全确定题项结构时使用:数据会告诉你这些题项大致可以分成几个维度,每个题项更像属于哪个因子。它的关键词是“探索”,不是“验证”。

这个案例怎么读?

本案例使用 6 个派生题项演示。第一因子解释率为 0.1876,第二因子解释率为 0.1719,说明没有一个因子占据绝对主导。正式 EFA 还应继续看 KMO、Bartlett、特征根、碎石图和旋转后的载荷矩阵。只看解释率是不够的。

实际操作怎么做?

先检查题项之间是否适合做因子分析。如果 KMO 很低,题项之间相关性不足,EFA 的意义就很弱。然后提取因子,决定因子数,再做旋转。旋转后的载荷矩阵才是解释重点:每个题项应该在某个因子上有较高载荷,并且不要在多个因子上同时很高。

论文里怎么写?

可以写:本文采用探索性因子分析考察量表题项的潜在维度结构。结果显示,题项在若干因子上呈现较为清晰的载荷分布,说明量表具有可解释的维度结构。若出现交叉载荷或低载荷题项,则需结合题项含义进一步修订量表。

常见错误

不要先想要几个因子,再强行让软件提几个因子。也不要看到一个题项载荷最高就直接命名因子;因子命名必须回到题项文本和理论含义。

本页案例代码和输出

下面这部分是本教程对应的实际案例材料,方便你把前面的解释和真实输出对上。

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.csvempirical-wizard 对应方法产物
案例派生 alpha0.0409用财务变量秩分位派生题项
第一因子解释率0.1876Harman 单因素检验最先看的比例
第二因子解释率0.1719EFA 需要同时看多个因子
题项数6roa/lev/size/growth/cashflow/tobinq

案例图

EFA 探索性因子分析 的共用案例输出图。
EFA 探索性因子分析 的共用案例输出图。

写作检查

本文使用EFA 探索性因子分析对案例派生题项进行量表/潜变量诊断。结果见 efa_results.csv。若信度、载荷或拟合指标未达到常用阈值,后续结构路径不宜直接作为强证据解释。

  • 确认本页使用的因变量、核心解释变量、控制变量与论文主模型一致。
  • 先看表格里的样本口径,再看系数、p 值或诊断指标。
  • 代码里的输出文件名要能对应网页展示的结果表。
  • 先报告信度/效度,再解释潜变量路径。
  • 不要把案例派生题项当成真实问卷结论。

返回方法库 · 打开 empirical-wizard