实证方法教程 / multicollinearity

多重共线性 VIF

VIF<10 不等于万事大吉

这节课解决什么用于进入模型前确认样本、变量、分布和基础诊断是否可信。
先准备哪些变量因变量 / 核心解释变量
会看到哪张表vif_results.csv
论文里怎么克制解释正文只报告和主模型相关的关键口径;完整清洗记录放到附录或复现包。

多重共线性 VIF是什么?

VIF 回答的是解释变量之间是否太像,以至于模型难以分清每个变量的独立贡献。VIF 衡量一个解释变量能否被其他解释变量预测,而不是检验内生性。

先用一句话理解

把 VIF 想成一群证人讲同一件事。如果几个控制变量提供的信息几乎一样,模型就很难判断到底是谁在解释 Y,标准误会变大,系数也会更不稳定。

什么时候用

判断项教科书式判断
适合用在主回归前检查核心解释变量和控制变量是否高度重叠。
先不要用在想判断遗漏变量、反向因果或工具变量有效性时。VIF 不回答这些问题。
最关键的前提VIF 只针对同一个模型中的解释变量,变量集合变了,VIF 也会变。
读表顺序先看核心变量 VIF,再看控制变量中是否有异常高值。
论文表述边界VIF 高说明共线性风险,不说明系数有偏,也不说明因果失败。

把它和相近方法分清楚

容易混淆的对象怎么区分初学者记法
相关矩阵看两个变量之间的两两相关。只能初筛。
VIF看一个变量能否被所有其他解释变量共同预测。更贴近回归设计。
内生性检验看解释变量是否和误差项相关。和共线性是不同问题。

核心直觉和模型公式

方差膨胀因子

对解释变量 X_j,用其他解释变量回归它并得到 R_j²:

\[VIF_j=\frac{1}{1-R_j^2}\]

R_j² 越高,说明 X_j 越容易被其他解释变量解释,VIF 就越大。

公式里的符号怎么读

符号含义在本页怎么理解
X_j被诊断的解释变量可以是核心变量,也可以是控制变量。
R_j²辅助回归解释度用其他解释变量预测 X_j 的拟合程度。
VIF_j方差膨胀因子标准误被共线性放大的程度指标。
阈值经验判断线常见 5 或 10 只是经验规则,不是机械法律。

专业使用口径

专业 VIF 解释要克制:它是模型稳定性诊断,不是变量删减机器。

口径专业写法
核心变量核心变量 VIF 高时,要说明理论上是否必须保留。
控制变量高度重叠的控制变量可考虑合并、替换或分列展示。
固定效应加入大量 FE 后,VIF 解释要结合模型实际可估计变量。
报告方式正文可简述最大 VIF 或平均 VIF,详细表放附录。

一步一步做:从问题到结果的五步

步骤这一页具体做什么做到什么程度才算读懂
1. 固定回归变量集合VIF 必须对应某一个明确模型。变量集合变化会改变 VIF。
2. 逐个辅助回归用其他解释变量预测每个 X_j。不要把因变量放进 VIF 辅助回归。
3. 计算 VIF把辅助回归 R² 转成 VIF。VIF 高来自解释变量之间的信息重叠。
4. 判断是否处理看高 VIF 变量是否理论上重复。不能只按阈值机械删变量。
5. 写成诊断结论说明共线性是否影响主模型解释。不要写成内生性检验。

结果怎么读:先读口径,再读数字

本页案例读表时,先记住这个口径:DFI 的 VIF 是 1.007,最大 VIF 是 1.030(indep);本案例没有明显多重共线性压力。

读表顺序本页怎么读不要这样读
先看最大 VIF是否有明显异常高的变量。不要只看平均 VIF。
再看变量含义高 VIF 变量是否概念上重复。数学高不一定就该删。
然后看核心系数删除或合并变量是否改变核心结论。不要为了降低 VIF 改坏理论模型。
最后写边界VIF 只影响精度和稳定性。不说明因果识别是否成立。

初学者最容易错在哪里

误读为什么错
把 VIF 当内生性检验错。VIF 不看误差项。
VIF 超 10 就机械删变量错。阈值只是经验参考。
只报告平均 VIF不够。最大 VIF 和具体变量更重要。
为了降低 VIF 删除核心控制风险很高。变量处理要服从研究设计。

先看这个案例的结论

  • DFI 的 VIF 是 1.007,最大 VIF 是 1.030(indep);本案例没有明显多重共线性压力。
  • VIF 结论要和相关矩阵一起看:相关系数不高、VIF 也低时,通常不需要删变量。
  • 论文里不要写“通过 VIF 检验所以模型正确”,它只能排查线性共线性,不检验因果识别。

变量要求和案例口径

字段口径
数据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
输出文件vif_results.csv
角色要求因变量、核心解释变量
依赖包无额外 Stata 社区包要求

实际代码

下面是本页案例里的最小 Stata 代码。它的作用是帮助你看清变量怎么进入模型、结果文件怎么生成,而不是要求你在网页里手动运行。

log using "/root/workspace/empirical-wizard/workspace/f53c25a3/analysis.log", replace text
global JOB_DIR "/root/workspace/empirical-wizard/workspace/f53c25a3"
set more off
adopath + "/root/ado/plus"
global DATA_PATH "/root/workspace/empirical-wizard/workspace/test_e2e/csmar_innovation.csv"
import delimited "/root/workspace/empirical-wizard/workspace/test_e2e/csmar_innovation.csv", clear case(preserve)
capture confirm global JOB_DIR
if _rc global JOB_DIR "."
quietly duplicates drop
local rhs "dfi_index roa lev size growth cashflow tobinq top1 dual board indep soe age"
tempname fh
capture file close `fh'
file open `fh' using "$JOB_DIR/vif_results.csv", write replace
file write `fh' "变量,VIF,1/VIF,判定" _n
foreach v of local rhs {
    local others : list rhs - v
    quietly regress `v' `others'
    scalar __r2 = e(r2)
    scalar __vif = 1 / (1 - __r2)
    scalar __inv = 1 - __r2
    local verdict = cond(__vif > 10, "严重共线性", cond(__vif > 5, "需关注", "可接受"))
    local vif_str : display %9.3f __vif
    local inv_str : display %9.3f __inv
    file write `fh' "`v',`vif_str',`inv_str',`verdict'" _n
    di "VIF: `v' = `vif_str' (`verdict')"
}
file close `fh'
di "VIF 检验完成"
log close

实际输出表

这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。

变量VIF1/VIF判定
dfi_index 1.007 0.993可接受
roa 1.015 0.985可接受
lev 1.014 0.986可接受
size 1.017 0.983可接受
growth 1.021 0.980可接受
cashflow 1.016 0.984可接受
tobinq 1.009 0.991可接受
top1 1.007 0.993可接受
dual 1.013 0.987可接受
board 1.012 0.988可接受
indep 1.030 0.971可接受
soe 1.006 0.994可接受
age 1.018 0.982可接受

案例图

这是一张由同一份案例数据生成的页面内诊断图。

VIF 共线性检验 的共用案例输出图。
VIF 共线性检验 的共用案例输出图。

论文里怎么写

本文在共用企业面板样本上报告VIF 共线性检验,核心输出见 vif_results.csv。结果解释时同时关注样本口径、变量构造、系数方向、标准误和适用前提,避免只凭单个 p 值完成方法选择。

检查清单

  • 先看核心解释变量自己的 VIF,再看全表最大 VIF。
  • VIF 高说明解释变量之间重合,不说明存在或不存在内生性。
  • 不要为了降低 VIF 删除理论上必须控制的变量;先判断变量是否重复度量同一概念。

返回教程库 · 查看共用案例