实证方法教程 / mi_impute

多重插补 + 合成估计

把不常见但论文里会遇到的模型跑成可检查输出

这节课解决什么用于复合模型、抽样设计、缺失处理、元分析或不平等分解等专门问题。
先准备哪些变量因变量 / 核心解释变量
会看到哪张表mi_impute_results.csv
论文里怎么克制解释明确这是专门模块,说明它补充了主模型的哪类证据。

多重插补 + 合成估计是什么?

多重插补回答的是数据存在缺失时,如何在保留缺失不确定性的前提下完成估计。它不是把缺失值简单填成一个数,而是生成多套合理数据并合并结果。

先用一句话理解

把多重插补想成对缺失答案做几种合理猜测,而不是假装自己知道唯一真值。每套插补数据都会给一个估计,最后把这些估计和插补不确定性一起合并。

什么时候用

判断项教科书式判断
适合用在变量有缺失,且缺失机制在可观察变量条件下较可信。
先不要用在缺失不是随机的关键结果,或缺失比例极高且无法解释。
最关键的前提插补模型要包含分析模型中的关键变量和预测缺失的变量。
读表顺序先看缺失模式和插补次数,再看合并估计与总方差。
论文表述边界多重插补不能修复完全不可观察的系统性缺失偏误。

把它和相近方法分清楚

容易混淆的对象怎么区分初学者记法
完整案例删除只保留无缺失样本。简单但可能有偏、损失样本。
单次插补每个缺失填一个值。低估不确定性。
多重插补生成多套插补并合并。保留插补不确定性。

核心直觉和模型公式

Rubin 合并规则

m 套插补结果的合并估计为:

\[\bar{Q}=\frac{1}{m}\sum_{r=1}^{m}\hat{Q}_r,\quad T=\bar{U}+\left(1+\frac{1}{m}\right)B\]

T 同时包含每套数据内部方差和不同插补结果之间的方差。

公式里的符号怎么读

符号含义在本页怎么理解
m插补次数生成的完整数据套数。
Q_r第 r 套估计每套插补数据上的参数估计。
U_bar内部方差每套估计自身的不确定性平均。
B插补间方差不同插补结果之间的差异。
T总方差最终推断使用的不确定性。

专业使用口径

专业多重插补报告要先描述缺失,再描述插补模型。

口径专业写法
缺失模式报告哪些变量缺失、缺失比例和相关性。
插补模型列出进入插补的变量。
插补次数m 要足够覆盖缺失不确定性。
诊断比较观测值和插补值分布,检查异常。

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

步骤这一页具体做什么做到什么程度才算读懂
1. 描述缺失先看缺失比例和模式。不知道缺失怎么来就不能插补。
2. 判断机制MCAR/MAR/MNAR 哪种更可信。MI 通常依赖 MAR。
3. 建立插补模型包含分析变量和缺失预测变量。插补模型太弱会偏。
4. 多次插补并估计每套数据重复同一分析。不要只用一套填补值。
5. 合并结果用 Rubin 规则合并系数和方差。不确定性要一起合并。

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

本页案例读表时,先记住这个口径:年度效应均值 = 0.0031;Meta/SUR 页用年度子样本系数做教学效应量。

读表顺序本页怎么读不要这样读
先看缺失表哪些变量缺失多。缺失比例决定风险。
再看 m插补次数是否足够。m 太小不稳定。
然后看插补模型是否包含关键变量。遗漏预测变量会偏。
最后看合并 SE是否反映插补不确定性。单次插补常低估 SE。

初学者最容易错在哪里

误读为什么错
把缺失填均值当多重插补错。那是单次粗糙插补。
插补后只用一套数据错。必须合并多套结果。
不描述缺失机制不严谨。MI 前提不清。
用结果变量缺失硬插补主结论风险高。需要特别论证。

先看这个案例的结论

  • 年度效应均值 = 0.0031;Meta/SUR 页用年度子样本系数做教学效应量。
  • 年度效应 SD = 0.0028;效应量之间的异质性。
  • 加权回归系数 = 0.0034;svy/权重页的系数对照。
  • 这些数字来自页面里的结果表;写论文时先解释数值含义,再讨论理论含义。

变量要求和案例口径

字段口径
数据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
输出文件mi_impute_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

mi set mlong
mi register imputed roa lev cashflow
mi impute chained (regress) roa lev cashflow = $x size growth tobinq, add(20) rseed(20260517)
mi estimate: regress $y $x roa lev cashflow size growth tobinq
export delimited using "$JOB_DIR/mi_impute_results.csv", replace

实际输出表

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

指标数值解释
样本1200 obs / 196 firms / 2015-2020来自共用案例 CSV
因变量ln(1 + patent_count)企业创新产出
核心解释变量dfi_index数字普惠金融指数
输出文件mi_impute_results.csvempirical-wizard 对应方法产物
年度效应均值0.0031Meta/SUR 页用年度子样本系数做教学效应量
年度效应 SD0.0028效应量之间的异质性
加权回归系数0.0034svy/权重页的系数对照
Patent Gini0.4413不平等分解页的核心分布指标

案例图

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

多重插补 + 合成估计 的共用案例输出图。
多重插补 + 合成估计 的共用案例输出图。

论文里怎么写

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

检查清单

  • 先判断缺失机制,MCAR、MAR、MNAR 对插补解释完全不同。
  • 插补模型应包含分析模型的因变量、解释变量和重要辅助变量。
  • 报告插补次数、合并规则和插补后诊断,不能只贴合并回归表。

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