R语言使用插补法,补齐缺失值

文章介绍了在R语言中处理缺失值的几种方法,包括均值插补、众数插补以及使用dplyr和naniar包进行批量数值型数据的均值/中位数插补。此外,还详细阐述了多重插补法,特别是利用mice包进行数据集的多重插补分析,最后展示了如何应用多重插补进行统计建模并获取平均结果。
摘要由CSDN通过智能技术生成

插补法
7.2.1均值插补

cancer.new <- cancer
cancer.new[!complete.cases(cancer.new),] 
cancer.new$wt.loss[is.na(cancer.new$wt.loss)] <- mean(cancer.new$wt.loss, na.rm=TRUE)
7.2.2众数插补 

sleep.new <- sleep
library(DescTools)  
Mode(sleep.new$Span,na.rm=TRUE) # M大写,众数可能不止一个,自行选择
sleep.new$Span[is.na(sleep.new$Span)] <- Mode(sleep.new$Span)[1] # [1]选择第一个众数
7.3.3数值型全用均值/中位数插补的批量操作

library(dplyr);library(naniar)
sleep2.2 <- sleep %>% impute_mean_if(is.numeric)
sleep3.3 <- sleep %>% impute_median_if(is.numeric)
7.3.4多重插补法(mice包)

library(mice)  # 多重插补安装包
imtp <- mice(data, m)  # imp是包含m个插补数据集的列表,包括插补过程的信息。默认m为5。
fit <- with(imtp, analysis)  # fit是包含m个单独统计分析结果的列表。
# analysis是一个表达式,设定应用于m个插补数据集的统计分析方法。
# 线性回归模型:lm()、广义线性模型:glm()、广义可加模型:gam(),负二项模型:nbrm()
pooled <- pool(fit) # pooled是个包含这m个统计分析平均结果的列表。
summary(pooled)
 
#MICE IMPUTATION
my_imtp <- mice(sleep8, m=5, maxit=20) # 5重插补,即生成5个无缺失数据集
my_imtp$imp$NonD # 每个插补数据集缺失值位置的数据补齐具体数值
my_imtp$imp$Sleep
sleep9 <- complete(my_imtp, 4) # 选择第4个插补数据集作为结果
 
#MULTIPLE IMPUTATION
fit = with(my_imtp, lm(Sleep ~ NonD+Dream+Span+Gest+Pred+Exp+Danger))
summary(pool(fit))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值