Harman 单因子检验是什么?
Harman 单因子检验回答的是问卷数据中共同方法偏差是否可能由一个共同因子主导。它是非常粗略的诊断,不是证明没有共同方法偏差的充分证据。
先用一句话理解
把 Harman 检验想成把所有问卷题扔进一个探索性因子分析里,看看第一个因子是不是吞掉了大部分方差。如果一个因子解释得特别多,说明同源测量偏差可能很强;如果没有,也不能说完全没问题。
什么时候用
| 判断项 | 教科书式判断 |
|---|---|
| 适合用在 | 问卷变量来自同一被试、同一时间、同一问卷,需要初步诊断共同方法偏差。 |
| 先不要用在 | 把它当作唯一的共同方法偏差处理。 |
| 最关键的前提 | 所有题项的方向和量表口径要先处理一致。 |
| 读表顺序 | 先看未旋转因子分析,再看第一因子解释方差比例。 |
| 论文表述边界 | Harman 只能作为弱诊断,最好补充程序控制或 marker variable。 |
把它和相近方法分清楚
| 容易混淆的对象 | 怎么区分 | 初学者记法 |
|---|---|---|
| Cronbach α | 检查同一量表内部一致性。 | 不是共同方法偏差。 |
| EFA | 探索多个潜在因子。 | 用于结构发现。 |
| Harman 单因子 | 看单一共同因子是否解释大部分方差。 | 共同方法偏差粗诊断。 |
核心直觉和模型公式
第一因子解释比例
Harman 常关注:
\[Share_1=\frac{\lambda_1}{\sum_{j=1}^{k}\lambda_j}\]
lambda1 是第一因子的特征值,分母是所有因子特征值之和。
公式里的符号怎么读
| 符号 | 含义 | 在本页怎么理解 |
|---|---|---|
| λ1 | 第一因子特征值 | 未旋转因子分析中最大因子解释量。 |
| k | 题项数量 | 进入检验的问卷题项数。 |
| Share1 | 第一因子解释比例 | 判断单因子是否占主导的指标。 |
| common method bias | 共同方法偏差 | 同源、同时间、同方法测量造成的偏差。 |
| marker variable | 标记变量 | 更强的共同方法偏差诊断或控制方法之一。 |
专业使用口径
专业 Harman 写法要明确它只是弱证据。
| 口径 | 专业写法 |
|---|---|
| 未旋转 | 常规 Harman 使用未旋转因子分析。 |
| 阈值谨慎 | 常见 50% 经验阈值不是铁律。 |
| 补充方法 | 程序控制、时间错开、marker variable 更有说服力。 |
| 表述边界 | 不能写“已完全排除共同方法偏差”。 |
一步一步做:从问题到结果的五步
| 步骤 | 这一页具体做什么 | 做到什么程度才算读懂 |
|---|---|---|
| 1. 准备题项 | 反向题和缺失先处理好。 | 题项方向错会影响因子结构。 |
| 2. 做未旋转 EFA | 把关键问卷题项一起进入。 | Harman 是粗略因子诊断。 |
| 3. 读取第一因子 | 看解释方差比例。 | 比例过高说明风险。 |
| 4. 结合其他证据 | 程序设计和统计控制一起看。 | 单一检验不够。 |
| 5. 谨慎写结论 | 说未发现单一因子主导更合适。 | 不要说完全没有偏差。 |
结果怎么读:先读口径,再读数字
本页案例读表时,先记住这个口径:案例派生 alpha = 0.0409,第一因子解释率 = 0.1876,题项数 = 6。
| 读表顺序 | 本页怎么读 | 不要这样读 |
|---|---|---|
| 先看题项范围 | 哪些变量进入检验。 | 范围不同结果不同。 |
| 再看第一因子比例 | 是否过高。 | 高比例是风险信号。 |
| 然后看多因子结构 | 是否明显不止一个因子。 | 这只是粗证据。 |
| 最后看补充控制 | 是否有程序或统计补救。 | Harman 单独不强。 |
初学者最容易错在哪里
| 误读 | 为什么错 |
|---|---|
| Harman 通过就说没有共同方法偏差 | 错。它只能弱诊断。 |
| 旋转后结果当 Harman | 不严谨。常规检验看未旋转第一因子。 |
| 不处理反向题 | 风险高。题项结构会乱。 |
| 把共同方法偏差和信度混淆 | 错。二者问题不同。 |
先看这个案例的结论
- 案例派生 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 |
| 输出文件 | harman_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(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.csv | empirical-wizard 对应方法产物 |
| 案例派生 alpha | 0.0409 | 用财务变量秩分位派生题项 |
| 第一因子解释率 | 0.1876 | Harman 单因素检验最先看的比例 |
| 第二因子解释率 | 0.1719 | EFA 需要同时看多个因子 |
| 题项数 | 6 | roa/lev/size/growth/cashflow/tobinq |
案例图
这是一张由同一份案例数据生成的页面内诊断图。

论文里怎么写
本文使用Harman 单因素同源方差对案例派生题项进行量表/潜变量诊断。结果见 harman_results.csv。若信度、载荷或拟合指标未达到常用阈值,后续结构路径不宜直接作为强证据解释。
检查清单
- 只把问卷题项放入 Harman 检验,不要把客观控制变量混进去。
- 第一因子解释率低只能说明没有明显单因子支配,不能证明无共同方法偏差。
- 更严格问卷研究应补充程序控制或 CFA 方法因子比较。