R數(shù)據(jù)插補(bǔ):3 種常用的數(shù)據(jù)缺失插補(bǔ)方法

2023年鄭老師多門(mén)科研統(tǒng)計(jì)課程:多次直播,含孟德?tīng)栯S機(jī)化方法??

現(xiàn)實(shí)生活中我們遇到的數(shù)據(jù)通常是雜亂無(wú)章并且有很多缺失值的,這樣就使得我們要花費(fèi)很多的時(shí)間和精力在數(shù)據(jù)清洗和數(shù)據(jù)準(zhǔn)備上。因此,今天我們一起學(xué)習(xí)使用R進(jìn)行數(shù)據(jù)插補(bǔ)的3種方法,希望可以為你以后的數(shù)據(jù)清洗節(jié)省時(shí)間。
今天介紹三種R常用的數(shù)據(jù)插補(bǔ)方法:1. R內(nèi)置函數(shù)的簡(jiǎn)單值插補(bǔ);2.MICE包插補(bǔ)缺失值;3.使用 missForest 包進(jìn)行插補(bǔ)。使用到的數(shù)據(jù)集是Titanic。
首先查看一下數(shù)據(jù)集:
本篇推文以titanic_train數(shù)據(jù)集的Age變量為例進(jìn)行填補(bǔ),查看Age變量:

可看到有較多的缺失。在進(jìn)行數(shù)據(jù)插補(bǔ)之前,我們先看一下要填補(bǔ)數(shù)據(jù)的分布:

注意,這里查看數(shù)據(jù)分布的目的是為了對(duì)比數(shù)據(jù)插補(bǔ)前后的分布是否一致。接下來(lái)我們開(kāi)始插補(bǔ)。
1. R內(nèi)置函數(shù)的簡(jiǎn)單值插補(bǔ)
簡(jiǎn)單插補(bǔ)可以用(1)任意常數(shù)插補(bǔ):用0或其他數(shù)據(jù)插補(bǔ);(2)均數(shù)插補(bǔ);(3)中位數(shù)插補(bǔ),代碼如下:

接著我們看一下插補(bǔ)之后數(shù)據(jù)分布是否有變化,代碼如下:

可以看到以上三種填補(bǔ)均對(duì)數(shù)據(jù)分布產(chǎn)生嚴(yán)重的影響。因此這種方法不是很好。
2.使用 MICE 包插補(bǔ)缺失值
MICE 包填補(bǔ)假定缺失值是隨機(jī)缺失的 (MAR),該算法背后的基本思想是將每個(gè)具有缺失值的變量視為回歸中的因變量,將其并他變量視為獨(dú)立變量(預(yù)測(cè)變量)。
MICE包提供了許多單變量插補(bǔ)方法,但我們只使用少數(shù)幾種。首先將所需要的變量從titanic_train數(shù)據(jù)集挑選出來(lái):

現(xiàn)在進(jìn)行插補(bǔ),我們將使用以下 MICE 插補(bǔ)方法:
(1)pmm:預(yù)測(cè)均值匹配;(2)cart:分類(lèi)和回歸樹(shù);(3)laso.norm:Lasso線(xiàn)性回歸。

如果單從表格數(shù)據(jù)很難判斷插補(bǔ)后對(duì)原來(lái)數(shù)據(jù)的影響,這種情況我們還是依舊做直方圖進(jìn)行可視化:


詳情請(qǐng)點(diǎn)擊下方:
https://mp.weixin.qq.com/s?__biz=MzAwOTYyMDY3OQ==&mid=2650407949&idx=2&sn=6da3a40b83ac9f2e9b4a9761d4ca85f9&chksm=835279a5b425f0b3559d41e2a80989114da997e5a0791279e047c7e347e8a7952322e8373b1a&token=1125654723&lang=zh_CN#rd
