R数据分析:扫盲贴,什么是多重插补
admin
2024-01-18 21:28:55
0

好多同学跑来问,用spss的时候使用多重插补的数据集,怎么选怎么用?是不是简单的选一个做分析?今天写写这个问题。

什么时候用多重插补

首先回顾下三种缺失机制或者叫缺失类型:

上面的内容之前写过,这儿就不给大家翻译了,完全随机缺失,缺失量较小的情况下你直接扔掉或者任你怎么插补都可以,影响不大的。随机缺失可以用多重插补很好地处理;非随机缺失,任何方法都没得救的,主分析做完之后自觉做敏感性分析才是正道;这个我好像在之前的文章中给大家解释过原因。

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.

所以说如果你用多重插补处理缺失数据,分析的时候却只用某一个数据集来做分析肯定都是不正确的,所以以后千万别问,到底选哪个这样的问题了,选哪个都不对。

介绍完思想我们再看实操。

实例操练

在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中进行多重插补

我现在有数据如下:

很简单的数据,可以看到数据中有很多缺失值的,我想要做的目标分析是一个以hyp为因变量的逻辑回归,如果我不插补数据直接做,可以写出如下代码:

model <- glm(hyp ~ bmi, family = binomial(link = 'logit'), data)
model_or <- exp(cbind(OR = coef(model), confint(model)))

运行后得到想要的OR和置信区间如下:

跑出来结果了,但是你要明白这个时候模型是默认将有缺失值的观测删掉的。结果不一定对。

现在我们对刚刚的数据集进行一个多重插补,需要用到mice函数,这个函数接受的参数如下:

其中重要的参数包括m,就是插补的完整数据集的个数;method就是插补的算法,这个就比较多了,常见如下:

例如,我想对原始数据用pmm法进行多重插补,可以写出代码如下:

imputed_data <- mice::mice(data, m = 25, method = "pmm", maxit = 10, seed = 12345, print = FALSE)

运行上面代码插补自动完成,我们可以看到

每一个变量都会作为其他变量的预测因子,同时每一个变量都会被其余所有变量所预测从而完成插补。插补完成后我们可以查看插补后的数据集,代码如下:

complete(imputed_data, action = "long", include = TRUE)

最重要的一步是进行分析并进行效应合并,这个需要用到mice包中的with函数,可不是base包中的with函数,这个需要注意

这个with是专门用来帮助我们在插补后的数据集中目标分析的函数,刚刚写到我的目标分析是要做一个以hyp为因变量的逻辑回归,此时对于插补后的数据,可以写出代码如下:

imputed_model <- with(imputed_data, glm(hyp ~ bmi+age+chl, family = binomial(link = 'logit')))

得到结果如下:

上图中上面是插补后的逻辑回归的结果,下图是之前没有插补的时候逻辑回归的结果,可以看到差异还是蛮大的。

多重插补的报告

对于多重插补的结果报告,BMJ也给了指南:

完整文章如下,大家可以自己去阅读:

Sterne J A C, White I R, Carlin J B, Spratt M, Royston P, Kenward M G et al. Multiple imputation for missing data in epidemiological and clinical research: potential and pitfalls BMJ 2009; 338 :b2393 doi:10.1136/bmj.b2393

其中的重点就是要报告用的啥软件进行的多重插补,补了几个数据集,补的时候用了哪些变量,非正态分布变量和分类变量用的什么method补的,如果目标分析有交互,补的时候考虑交互没有;补的数据如果 太多,补与不补的个案需要对比的;还有建议对缺失机制做一个讨论。

以上就是今天给大家介绍的多重插补的内容。

相关内容

热门资讯

qq飞车安卓转苹果系统,苹果系... 你有没有想过,把你的QQ飞车账号从安卓系统转到苹果系统,会是怎样的体验呢?想象你那熟悉的赛车手角色,...
安卓能装xp系统吗,探索跨界可... 你有没有想过,把那个经典的Windows XP系统搬到你的安卓手机上?是的,你没听错,就是那个曾经陪...
苹果7和安卓系统下载 你有没有发现,现在手机市场上,苹果7和安卓系统下载可是两大热门话题呢!今天,就让我带你来一场说走就走...
bigo是什么安卓系统,揭秘安... 你有没有听说过Bigo这个神奇的安卓系统?没错,就是那个最近在互联网上掀起一阵热潮的系统。今天,就让...
安卓系统文件管理卸载,优化手机... 手机里的安卓系统文件管理器,是不是有时候让你觉得乱糟糟的?别急,今天就来给你好好捋一捋,怎么轻松卸载...
超级农场系统和安卓 你有没有想过,如果有一天,你的农场能像智能手机一样智能,那会是怎样的景象呢?想象你只需轻轻一点,就能...
一加五系统安卓8,安卓8.0带... 你有没有听说最近安卓系统又升级啦?没错,就是那个我们每天离不开的智能手机操作系统。这次,一加手机带来...
安卓系统有哪些主题软件,热门主... 你有没有发现,手机里的安卓系统就像是个百宝箱,里面藏着各种各样的主题软件,让你的手机瞬间变身,变得个...
还认为安卓系统卡的,深度解析与... 你还在觉得安卓系统卡得要命吗?别急,让我带你一探究竟,看看这个话题背后的真相!一、安卓系统卡的原因探...
云系统可以刷安卓包,轻松实现个... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的技能——云系统可以刷安卓包...
安卓系统广告谁最多啊,揭秘广告... 你有没有发现,每次打开安卓手机,广告就像无处不在的小精灵,跳来跳去,让人眼花缭乱?今天,我们就来聊聊...
安卓系统流畅度方法,安卓系统流... 手机用久了是不是感觉有点卡呢?别急,今天就来跟你聊聊安卓系统流畅度提升的那些事儿!一、清理后台应用,...
手帐贴纸安卓系统下载,轻松打造... 你有没有发现,最近手帐圈里又流行起了一股新风尚?没错,就是那些五彩斑斓、创意无限的手帐贴纸!它们不仅...
小米11安卓什么系统好,系统优... 亲爱的手机控们,你是不是也在为小米11这款神器的安卓系统烦恼呢?别急,今天我就来给你详细解析小米11...
预装系统能拷贝吗安卓,安卓设备... 你有没有想过,那些预装在安卓手机里的系统,是不是可以像拷贝电影一样,轻松地复制到其他设备上呢?今天,...
安卓系统待办事项提示 你有没有发现,手机里的安卓系统里有个超实用的功能——待办事项提示?这就像是个贴心的私人助理,随时提醒...
怎么能让安卓系统重启,轻松解决... 手机突然卡壳了,是不是安卓系统又闹脾气了?别急,今天就来教你怎么让安卓系统重启,让你的手机重获新生!...
鸿蒙退回安卓系统要多久,系统转... 最近手机圈可是热闹非凡呢!华为的鸿蒙系统突然宣布要退回安卓系统,这可让不少花粉们心里直打鼓:鸿蒙退回...
安卓系统是过时了吗,是否已步入... 你有没有想过,那个陪伴我们多年的安卓系统,是不是已经过时了呢?想象当初你第一次接触安卓手机,是不是觉...
安卓系统音乐自启动,打造个性化... 你有没有发现,手机里的音乐播放器有时候会自己启动,是不是觉得有点神奇呢?这背后其实和安卓系统的音乐自...