上面的内容之前写过,这儿就不给大家翻译了,完备随机缺失落,缺失落量较小的情形下你直接扔掉或者任你怎么插补都可以,影响不大的。随机缺失落可以用多重插补很好地处理;非随机缺失落,任何方法都没得救的,主剖析做完之后自觉做敏感性剖析才是正道;这个我彷佛在之前的文章中给大家阐明过缘故原由。
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补的,如果目标剖析有交互,补的时候考虑交互没有;补的数据如果 太多,补与不补的个案须要比拟的;还有建议对缺失落机制做一个谈论。
以上便是本日给大家先容的多重插补的内容。
小结本日给大家写了多重插补的做法,感谢大家耐心看完,自己的文章都写的很细,主要代码都在原文中,希望大家都可以自己做一做,请转发本文到朋友圈后私信回答“数据链接”获取所有数据和本人网络的学习资料。如果对您有用请先记得收藏,再点赞分享。
也欢迎大家的见地和建议,大家想理解什么统计方法都可以在文章下留言,说不定我瞥见了就会给你写教程哦,有疑问欢迎私信,有互助意向请直接滴滴我。
如果你是一个大学本科生或研究生,如果你正在由于你的统计作业、数据剖析、模型构建,科研统计设计等发愁,如果你在利用SPSS, R,Mplus中碰着任何问题,都可以联系我。由于我可以给您供应最好的,最详细和耐心的数据剖析做事。
如果你对Z考验,t考验,方差剖析,多元方差剖析,回归,卡方考验,干系,多水平模型,构造方程模型,中介调节,量表信效度等等统计技巧有任何问题,请私信我,获取详细和耐心的辅导。
如果你或你的团队须要专业的科研数据洗濯,建模做事,传授教化培训需求等等。请联系我。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
If You or Your Research Team Need Professional Scientific Data Cleaning, Model Building Services or Statistical Consulting... Please Contact Me.
往期精彩R数据剖析:用R建立预测模型
R数据剖析:用R措辞做潜种别剖析LCA
R数据剖析:变量间的非线性关系,多项式,样条回归和可加模型
R数据剖析:PLS构造方程模型先容,论文报告方法和实际操作
Mplus数据剖析:性别差异gendergap的干系研究如何做?
R可视化:plot函数根本操作,小白教程
R数据剖析:cox模型如何做预测,高分文章复现
R数据剖析:鸢尾花数据集的聚类剖析实操
R数据剖析:50人中至少两人相同生日的概率有多大?仿照给你看
R数据剖析:结合APA格式作图大法讲讲ggplot2和ggsci,请收藏
R数据剖析:嵌套数据剖析为什么要用加随机效应?终于阐明清楚了
R数据剖析:Lasso回归筛选变量构建Cox模型并绘制列线图
R数据剖析:再写潜在种别剖析LCA的做法与阐明
R文本挖掘:手把手教你做词云图,小白教程
R数据剖析:潜增长模型LGM的做法和解释,及其与稠浊模型比拟
R数据剖析:纵向数据如何做中介,交叉滞后中介模型先容
R数据剖析:如何给构造方程画路径图,tidySEM包详解
R数据剖析:双连续变量交互浸染的大略斜率图作图及阐明
R数据剖析:构造方程模型画图以及模型比较,实例操练
R数据剖析:如何简洁高效地展示统计结果
R数据剖析:临床预测模型中校准曲线和DCA曲线的意义与做法
R数据剖析:临床预测模型实操,校准曲线和DCA曲线做法示例