我们在处理数据的时候常常会遇到存在缺失值(NA
)的情况,如何处理就仁者见仁,智者见智了。🤒
最简单粗暴的方法可能就是行删除法(listwise
)或者个案删除法(case-wise
)了,这种方法在缺失值比较少的情况下比较适用,但在NA
较多的情况下可能就会丢失过多信息导致无法继续分析。😘
本期我们介绍一下mice包
和ggmice
包这两只可爱的小老鼠,全名Multivariate Imputation by Chained Equations, mice
,即链式方程多重填补。📍
一张图总结基本原理,嘿嘿。👇
rm(list = ls())
library(tidyverse)
library(mice)
library(ggmice)
这里我们使用一下示例数据airquality
,再在其中添加一些缺失值。
dat <- airquality
dat[4:9,3] <- rep(NA,6)
dat[1:4,4] <- NA
这里面我们一共有6个变量,其中4个存在缺失值。🫠
summary(dat)
Note! ggmice
提供了一种NA值
的可视化方法,一目了然,nice! 🤒
plot_pattern(dat,
square = F,
rotate = F)
这里和大家简单介绍一下这个influx-outflux plot
,总的来说评估了缺失数据与其他变量的联系程度。😂
一般来说,在建模时,influx
以及outflux
越大越好。😗
plot_flux(dat,
label = F,
caption = F)
这里我们对连续变量的缺失值进行一下可视化,可以看到红色的为缺失值。😘
ggmice(dat, aes(Ozone, Solar.R))+
geom_point()
接着我们对分类变量的缺失值进行一下可视化,红色的为缺失值。😃
ggmice(dat, aes(Month, Solar.R)) +
geom_point()
ggmice(dat, aes(Month, Solar.R)) +
geom_point() +
facet_wrap(~ Month == 5,
# labeller = label_both
)
在这里我们生成几个填补缺失值后的数据,m
默认是5
,为了减小计算量,这里我设置成3
。🤗
Note! 可选method
包括:👇
✅
pmm
,
✅logreg
,
✅polyreg
,
✅polr
imp <- mice(dat, m = 3, method = "pmm")
我们再看一下填补缺失值后的散点图吧,红色的为缺失值填补后。😚
ggmice(imp, aes(Ozone, Solar.R))+
geom_point()
ggmice(imp, aes(Month, Solar.R)) +
geom_point()
ggmice(dat, aes(Month, Solar.R)) +
geom_point() +
facet_wrap(~ Month == 5,
# labeller = label_both
)
我们之前设置了m = 3
,这里我们看一下3个
数据集的NA
填补情况。🥰
ggmice(imp, aes(x = .imp, y = Temp)) +
geom_jitter(height = 0, width = 0.25) +
labs(x = "Imputation number")
ggmice(imp, aes(x = .imp, y = Temp)) +
geom_jitter(height = 0, width = 0.25) +
geom_boxplot(width = 0.5, size = 1, alpha = 0.75, outlier.shape = NA) +
labs(x = "Imputation number")
看来default = 5
是有原因的,哈哈哈哈哈哈!🤣
plot_trace(imp,
# "Temp"
)
点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......
本文由 mdnice 多平台发布