如果被人质疑数据分析的透明性问题, 比如审稿人让你画出多重填补后的图,那该怎么做?
install.packages("ggmice")
library(mice)
library(ggplot2)
library(ggmice)
将使用R包{mice}中的数据集,名为boys,查看下概况:
mydata <- boys
summary(mydata)
下一步,对上述数据集进行多重填补,使用默认的Predictive mean matching(pmm)法,代码如下:imputed <- mice(mydata, m = 5, method = "pmm")
填补完毕,数据将会保存在对象imputed中,将会用于填补后的作图。 首先使用原始数据mydata介绍ggmice()函数,比如制作一个散点图,将会把缺失值用红色标出,非常实用:ggmice(mydata, aes(x = age, y = hgt)) +
geom_point()
hgt包含几个缺失值,默认会在另外一个坐标轴(即x轴)上标记出,颜色为红色。ggmice(mydata, aes(x = reg, y = hgt)) +
geom_point()
这个函数的优势是可以与ggplot2的代码相结合,比如可以进一步进行分组作图,代码如下:ggmice(mydata, aes(x = wgt, y = hgt)) +
geom_point() +
facet_wrap(~ reg == "east", labeller = label_both)
请注意,数据集部分需要输入为imputed,代码如下:ggmice(imputed, aes(x = age, y = hgt)) +
geom_point()
也可以将x轴换成一个分类变量,即reg,代码如下:
ggmice(imputed, aes(x = reg, y = hgt)) +
geom_point()
ggmice(imputed, aes(x = wgt, y = hgt)) +
geom_point() +
facet_wrap(~ reg == "east", labeller = label_both)
最后,还可以将某一个变量(这里以hgt为例)在不同填补过程中的值画出,默认也是蓝色为原始观察值,红色为填补后的值,代码如下:ggmice(imputed, aes(x = .imp, y = hgt)) +
geom_jitter(height = 0, width = 0.3) +
labs(x = "Imputation number")
也可以结合ggplot2的延伸能力,添加箱形图,代码如下:
ggmice(imputed, aes(x = .imp, y = hgt)) +
geom_jitter(height = 0, width = 0.3) +
geom_boxplot(width = 0.6, size = 1.1, alpha = 0.6, outlier.shape = NA) +
labs(x = "Imputation number")
好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人!https://cran.r-project.org/package=ggmice
公众号核心成员担任SCI杂志Associate Editor!▌课程相关咨询可添加R师妹微信: kefu_rstats