Stata数据处理:缺失值与多重补漏分析(二)

发布时间:2021-07-23 阅读 6785

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者: 孟佳音 (University College London)
邮箱: jiayin.meng.20@ucl.ac.uk


目录


本推文将介绍多重插补的最基本做法,可用于截面数据的分析中。有关多重插补的高级做法以及面板数据操作,我们将在后续的推文中为大家讲解。在学习多重插补过程中,我的老师曾反复说过一句话 “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

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh