Stata数据处理:缺失值与多重补漏分析(二)
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
「十年口碑,桃李三千」
🎦 2021 Stata 暑期论文班
📅 2021 年 7 月 28-30 日
🔑 江艇 (中国人民大学)
🍓 课程主页:https://gitee.com/lianxh/PX
作者: 孟佳音 (University College London)
邮箱: jiayin.meng.20@ucl.ac.uk
目录
1. 多重插补知识点总结
1.1 多重插补简要回顾
1.2 如何进行多重插补
1.3 多重插补的常用方法
2. MVN 方法介绍
2.1 MVN 方法理论概要
2.2 MVN 方法 Stata 命令
3. MICE 方法介绍
3.1 MICE 方法理论概要
3.2 MICE 方法 Stata 命令
4. 总结与补充
4.1 MVN 方法与 MICE 方法比较
4.2 单调缺失数据 (Monotone Pattern) 的插补
5. 参考资料
6. 相关推文
本推文将介绍多重插补的最基本做法,可用于截面数据的分析中。有关多重插补的高级做法以及面板数据操作,我们将在后续的推文中为大家讲解。在学习多重插补过程中,我的老师曾反复说过一句话 “Doing multiple imputation is easy, but doing it well is hard.” 与各位学友共勉!
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
1. 多重插补知识点总结
1.1 多重插补简要回顾
在数据缺失与多重插补专题系列的第一篇推文 (缺失值与多重补漏分析(一))中,我们较为详细的介绍了数据缺失的相关知识,并引出了运用多重插补方法处理数据缺失。下面我们简要回顾一下有关多重插补的知识点。
多重插补 (Multiple Imputation) 的思想来源于贝叶斯估计,其认为待插补的 缺失值是随机的 (MAR) ,它的值来自于已观测到的值。在具体操作上,是通过创建数据集的 m 个副本 (m 的个数通常为 3-10 个;目前实际操作中 m 也时常取值为 20),对每个副本使用不同的估计方法估算出缺失值,而后将模型拟合到 m 个数据集中,最后运用 Rubin 法则整合为一个结果。
插补过程独立重复 m 次 每个数据集均由观测值和缺失值的插补组成 每个数据集对缺失值有不同的独立插补集 插补的 m 个数据集的差异性 (variability) 反映了插补的不确定性 (uncertainty) 多重插补通过恢复缺失数据的原始可变性,并通过纳入由插补缺失数据引起的不确定性来解释缺失数据
1.2 如何进行多重插补
1.2.1 多重插补法的实现阶段
插补阶段 (Imputation Phase): 用估计值填补缺失数据从而创建完整的数据集。这个过程重复 m 次以创建 m 个插补数据集。 分析阶段 (Analysis Phase): 将分析模型拟合到 m 个数据集中。 汇集阶段 (Pooling Phase):使用 Rubin 法则将 m 组结果汇集成一个结果。
1.2.2 多重插补的操作步骤
(1) 定义回归模型 (analysis model) (2) 查看数据缺失数量和数据缺失模式 (pattern) (3) 识别完全变量 (fully observed)、缺失变量和潜在辅助变量 (auxiliary variables):辅助变量指可以使 MAR (随机缺失数据)假设更合理的变量,帮助减小偏差,提高估计精度 (4) 使用所选择的方法执行多重插补 (本文只介绍 MVN 和 MICE) (5) 将回归模型拟合到插补数据中 (6) 进行插补诊断 (imputation diagnostics)
1.3 多重插补的常用方法
据上文所述,进行多重插补的第 (4) 步是选择合适的插补方法,本文以重点讲述以下两种插补方法:
MVN (Multivariate Normal Regression) MICE (Multiple Imputation by Chained Equations) / FCS (Fully Conditional Specification)
2. MVN 方法介绍
MVN (Multivariate Normal Regression) 多元正态回归方法假设插补模型中的所有变量遵循联合多元正态分布 (joint multivariate normal distribution),并使用数据增广 (data augmentation, DA) 方法 —— 一种马尔可夫链蒙特卡洛 Markov chain Monte Carlo (MCMC) 运算,在多元正态分布假设下估算缺失数据。
MVN 方法下回归是线性的,适用于连续变量 (continuous variables),而当缺失数据中存在二元变量 (binary variables) 和分类变量 (categorical variables) 时,该方法的假设条件不再适用。但是已有研究表明,当二元变量和分类变量数据中不存在严重偏斜 (severly skewed) 时,MVN 方法依然可以得到较好的运用。
2.1 MVN 方法理论概要
MVN 方法最初由 Schafer (1997) 实现。本文将多重插补 MVN 方法的重点概括如下:
在 MVN 插补模型中,同时使用线性回归模型对缺失数据进行插补,其中每个变量都可能依赖于所有其他变量 MVN 方法通过数据增广 (DA) 马尔可夫链蒙特卡洛 (MCMC) 过程实现 数据增广 (DA) 算法通过缺失数据的多元正态分布假设进行插补运算 MVN 方法适用于连续变量 (continuous variables) 若变量存在偏斜 (skewed),将其转换为近似正态分布,进行估算后再转回 若缺失数据为二元或有序变量 (binary / ordinal variables), 插补结果四舍五入到最近的类别中
2.2 MVN 方法 Stata 命令
本节所展示的 Stata 命令根据本推文 1.2.2 节 “多重插补的操作步骤” 的顺序书写。首先,设定好回归模型,我们以线性回归 regress
为例。使用 MVN 方法进行多重插补的具体操作命令如下所示:
*定义回归模型
. regress varlist //设定模型为线性回归
*查看数据缺失数量和缺失模式
. mi set flong/mlong/wide //为 MI 声明数据结构
. mi misstable summarize varlist //查看缺失数据
*指定完全变量和要插补的变量
. mi register imputed varlist //声明要插补的变量
. mi register regular varlist //声明不含缺失值的变量
*选择 MVN 方法进行多重插补
. mi impute mvn ivars [= indepvars] [if] [, impute_options options] //声明使用 MVN 方法
*将回归模型拟合到插补数据中
. mi estimate: regress varlist //以线性回归模型为例
. mi estimate, vartable nocitable //显示插补的方差信息
3. MICE 方法介绍
MICE (Multiple Imputation by Chained Equations) 通过链式方程进行的多重插补又被称为 Fully Conditional Specification (FCS) 全条件定义法,或者 Sequential Regression Multiple Imputation (顺序回归多重插补)。
MICE 方法最初由 van Buuren, Boshuizen, 和 Knook (1999) 提出并应用于生存分析中。其与 MVN 方法的本质区别是在进行插补时,不必考虑变量的联合分布,而是利用单个变量的条件分布 (univariate conditional distributions) 逐一进行插补。这意味着每个变量都可以根据其自身分布建模,比如使用逻辑回归 (logistic regression) 建模的二元变量 (binary variables) 和使用线性回归 (linear regression) 建模的连续变量 (continuous variables) 等。
3.1 MICE 方法理论概要
MICE 方法在实际操作中比 MVN 方法运用更为广泛,本节将多重插补 MICE 方法的重点概括如下:
MICE 方法不要求缺失变量遵循联合分布 (joint distribution) MICE 方法不要求变量缺失模式为单调模式 (monotone pattern) MICE 方法利用单个变量的条件分布 (univariate conditional distributions) 进行插补 MICE 方法可以为每个变量指定不同的回归模型 MICE 方法是一个迭代过程 (iterative procedure),因此必须评估其收敛性 (convergence)
3.2 MICE 方法 Stata 命令
MICE 在 Stata 中可用的回归模型有:二元、有序和多类逻辑回归 (binary, ordered, and multinomial logistic regression),线性回归 (linear regression),泊松和负二项回归 (poisson and negative binomial regression)。其中,线性回归是默认模式。
本节所展示的 Stata 命令根据本推文 1.2.2 节 “多重插补的操作步骤” 的顺序书写。由于 MICE 方法可以为不同类型的缺失变量指定不同的回归模型,为了展示方便,假设两个含有缺失值的变量 var1, var2 分别为连续变量和分类变量。设定好回归模型,我们以线性回归 regress
为例。使用 MICE 方法进行多重插补的具体操作命令如下所示:
*定义回归模型. regress varlist //设定模型为线性回归*查看数据缺失数量和缺失模式. mi set flong/mlong/wide //为 MI 声明数据结构. mi misstable summarize varlist //查看缺失数据 *指定完全变量和要插补的变量. mi register imputed varlist //声明要插补的变量. mi register regular varlist //声明不含缺失值的变量*选择 MICE 方法进行多重插补. mi impute chained (ologit) var2 (regress) var1 [= indepvars] [if] [weight] [, impute_options options] //为不同种类缺失变量指定不同的回归模型*将回归模型拟合到插补数据中. mi estimate: regress varlist //以线性回归模型为例. mi estimate, vartable nocitable //显示插补的方差信息
4. 总结与补充
4.1 MVN 方法与 MICE 方法比较
MVN 方法与 MICE 方法均为多重插补中的常用方法,根据上文的讲解,相信大家对这两种方法的适用条件以及操作方法都有了比较全面的了解。现将两种方法的比较总结如下:
MVN 方法基于联合多元正态分布 (joint multivariate normal distribution) 建模;MICE 方法基于单个变量的条件分布 (univariate conditional distributions) 进行逐一插补 MVN 方法适用于连续变量;MICE 方法可以处理多种类型的变量 MICE 方法使用逐一插补 (variable-by-variable specification) ,这使其能够为多个变量构建复杂的插补模型
可以看出,MICE 方法的适用范围比 MVN 方法更广,在实际操作中也更受欢迎。
4.2 单调缺失数据 (Monotone Pattern) 的插补
在上一篇推文中我们详细讲述了数据缺失模式 (Missing Data Pattern), 其中单调缺失模式 (Monotone Pattern) 如下图所示,指变量 Y1, Y2, Y3, Y4 的缺失值数量呈现单调递增状态。
当缺失数据为单调缺失模式时,除了 MVN 方法和 MICE 方法外,我们还可以调用 mi impute monotone
命令对缺失数据进行插补,详情请参考 help mi impute monotone
。在实际操作中单调缺失数据模式并不常见,所以本文不再对此详细展开,有兴趣的学友们可以自行学习。
5. 参考资料
Kropko, J., Goodrich, B., Gelman, A., & Hill, J. 2014. Multiple imputation for continuous and categorical data: comparing joint multivariate normal and conditional approaches. Political Analysis, 22(4). -PDF-
Lee, K. J., & Carlin, J. B. 2010. Multiple imputation for missing data: fully conditional specification versus multivariate normal imputation. American journal of epidemiology, 171(5), 624-632. -PDF-
Schafer, J. L. 1997. Analysis of incomplete multivariate data. CRC press. -Book-
Azur, M. J., Stuart, E. A., Frangakis, C., & Leaf, P. J. 2011. Multiple imputation by chained equations: what is it and how does it work?. International journal of methods in psychiatric research, 20(1), 40-49. -PDF-
Royston, P. 2004. Multiple imputation of missing values. The Stata Journal, 4(3), 227-241. -PDF-
Little, R. J., & Rubin, D. B. 2019. Statistical analysis with missing data (Vol. 793). John Wiley & Sons. -Book-
Enders, C. K. 2010. Applied missing data analysis. Guilford press. -Book-
Rubin, D. B. 1976. Inference and missing data. Biometrika, 63(3), 581-592. -PDF-
University College London PhD Course: Missing Data and Multiple Imputation for Cross-Sectional and Longitudinal Data
6. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 补漏 缺失值 填充
安装最新版lianxh
命令:
ssc install lianxh, replace
连享会 缺失值能否用零代替?-L117
连享会 Stata缺失值专题:多重补漏分析
连享会 Stata:缺失值的填充和补漏
连享会 Stata数据处理:面板数据的填充和补漏
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🎦 🎦 🎦