R数据分析:扫盲贴,什么是多重插补

好多同学跑来问 , 用spss的时候使用多重插补的数据集,怎么选怎么用?是不是简单的选一个做分析?今天写写这个问题 。
什么时候用多重插补【R数据分析:扫盲贴,什么是多重插补】首先回顾下三种缺失机制或者叫缺失类型:

R数据分析:扫盲贴,什么是多重插补

文章插图
上面的内容之前写过,这儿就不给大家翻译了 , 完全随机缺失,缺失量较小的情况下你直接扔掉或者任你怎么插补都可以,影响不大的 。随机缺失可以用多重插补很好地处理;非随机缺失,任何方法都没得救的,主分析做完之后自觉做敏感性分析才是正道;这个我好像在之前的文章中给大家解释过原因 。
When it is plausible that data are missing at random, but not completely at random, analyses based on complete cases may be biased. Such biases can be overcome using methods such as multiple imputation that allow individuals with incomplete data to be included in analysesly, it is not possible to distinguish between missing at random and missing not at random using observed data. Therefore, biases caused by data that are missing not at random can be addressed only by sensitivity analyses examining the effect of different assumptions about the missing data mechanism
多重插补的思想写多重插补之前我们先回忆简单插补 , 叫做single imputation,就是缺失值只插一个,无论是用均值,用中位数,用众数等等 , 反正只挑一个,只形成一个完整数据集,叫做简单插补 。
这里面就有一个问题:就插了一个值,你怎么就敢说这个值对?是不是偏倚的可能性其实挺高的?
多重插补就不一样了,进行多重插补的时候我会对一个缺失值会插补很多个可能的值,我们会得到很多个完整的数据集(mutliple),比如每个缺失的地方我们插补5个值 , 就会得到5个数据集 。这5个数据集的原来的缺失的数据都被算法插补好了,但是插补的值不尽相同,多重插补的思想精髓在于:对这插补出来的每一个数据集都做一遍我们的目标分析 , 然后将效应汇总从而得到误差最小的合并效应 。
现在给出多重插补的定义(来自BMJ):
Multiple imputation is a general approach to the problem of missing data that is available in several commonly used statistical packages. It aims to allow for the uncertainty about the missing data by creating several different plausible imputed data sets and appropriately combining results obtained from each of them.
具体的思路就是,首先插补多个数据集,就是每个缺失的地方会插补多次,每一次插补的值都是基于现有数据分布的缺失值的预测值;第一步做完之后我们不是有很多个完整数据集了嘛,然后我们将我们感兴趣的分析在每一个数据集中都做一次 , 得到多个结果;第三步就是将这些结果汇总 。
以上就是思路流程 。
In the first step, the dataset with missing values (i.e. the incomplete dataset) is copied several times. Then in the next step, the missing values are replaced with imputed values in each copy of the dataset. In each copy, slightly different values are imputed due to random variation. This results in mulitple imputed datasets. In the third step, the imputed datasets are each analyzed and the study results are then pooled into the final study result.

R数据分析:扫盲贴,什么是多重插补

文章插图
所以说如果你用多重插补处理缺失数据 , 分析的时候却只用某一个数据集来做分析肯定都是不正确的 , 所以以后千万别问,到底选哪个这样的问题了,选哪个都不对 。
介绍完思想我们再看实操 。
实例操练在spss中的多重插补实操,大家请阅读下面的链接,写的很细哈:
https://bookdown.org/mwheymans/bookmi/multiple-imputation.html#:~:text=After%20multiple%20imputation%2C%20the%20multiple%20imputed%20datasets%20are,that%20separates%20the%20original%20from%20the%20imputed%20datasets.
今天我们写如何在R中进行多重插补
我现在有数据如下:
R数据分析:扫盲贴,什么是多重插补

文章插图
很简单的数据,可以看到数据中有很多缺失值的,我想要做的目标分析是一个以hyp为因变量的逻辑回归,如果我不插补数据直接做 , 可以写出如下代码:
model <- glm(hyp ~ bmi, family = binomial(link = 'logit'), data)model_or <- exp(cbind(OR = coef(model), confint(model)))运行后得到想要的OR和置信区间如下:

推荐阅读