Day 07 · 手写教程

Harman 单因子检验

共同方法偏差不是三分钟就能彻底搞定

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

Harman 单因子检验是什么?

Harman 单因子检验常用于共同方法偏差的初步诊断。做法是把所有问卷题项放到未旋转因子分析里,看第一个因子解释的方差比例是否过高。如果第一个因子几乎解释了大部分方差,就说明数据可能被同一种测量方法支配。

这个案例怎么看?

本页仍然使用 6 个派生题项演示流程。第一因子解释率为 0.1876,第二因子解释率为 0.1719。单看这个结果,第一个因子并没有压倒性地解释全部方差。但因为这些题项来自财务变量派生,不是真实问卷,所以这里只能学习读法,不能写成真实共同方法偏差结论。

正式论文怎么做?

正式问卷研究中,先把同一来源、同一时间、同一问卷中的题项放进去,提取未旋转单因子。然后报告第一因子解释率,并说明 Harman 只是统计诊断的一层。更稳妥的写法还应结合问卷设计、匿名填写、变量顺序控制等程序控制。

论文里怎么写?

可以写:为检验共同方法偏差,本文采用 Harman 单因子检验。未旋转因子分析结果显示,第一因子解释率未超过常用警戒线,说明单一因子并未主导全部题项方差。该结果表明共同方法偏差压力相对有限,但并不能完全排除该问题。

常见错误

不要写“Harman 通过,所以不存在共同方法偏差”。它只能说明没有发现单一方法因子支配,不能证明偏差完全不存在。

本页案例代码和输出

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

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(1) pcf
estat kmo
export delimited using "$JOB_DIR/harman_results.csv", replace

输出表

指标数值解释
样本1200 obs / 196 firms / 2015-2020来自共用案例 CSV
因变量ln(1 + patent_count)企业创新产出
核心解释变量dfi_index数字普惠金融指数
输出文件harman_results.csvempirical-wizard 对应方法产物
案例派生 alpha0.0409用财务变量秩分位派生题项
第一因子解释率0.1876Harman 单因素检验最先看的比例
第二因子解释率0.1719EFA 需要同时看多个因子
题项数6roa/lev/size/growth/cashflow/tobinq

案例图

Harman 单因素同源方差 的共用案例输出图。
Harman 单因素同源方差 的共用案例输出图。

写作检查

本文使用Harman 单因素同源方差对案例派生题项进行量表/潜变量诊断。结果见 harman_results.csv。若信度、载荷或拟合指标未达到常用阈值,后续结构路径不宜直接作为强证据解释。

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

返回方法库 · 打开 empirical-wizard