2018-10-18
閱讀量:
2439
R語言中缺失值的判斷與處理
一、判斷缺失值
is.na()函數(shù),返回值為邏輯值,TRUE代表缺失,否則為FALSE。
complete.cases()函數(shù),返回值為邏輯值,與is.na()相反,F(xiàn)ASLE代表缺失,否則為TRUE。
二、判斷缺失模式
1、mice包的md.pattern()函數(shù),返回值為數(shù)據(jù)表,結(jié)果中“1”代表沒有缺失值,“0”代表存在缺失值。第一列的值代表符合其后的每一行缺失情況的樣本數(shù)。

上圖表示有4個樣本缺少了x3變量的值。
最后一列表示缺失的變量數(shù);最后一行表示含每個變量缺失值的觀測值數(shù)目之和。
2、VIM包的aggr()函數(shù),可以根據(jù)返回的圖像判斷缺失情況。
aggr(x,delimter = NULL,plot = TRUE,...)
x代表要判斷的向量、矩陣或數(shù)據(jù)框;delimiter用于區(qū)分插補(bǔ)變量,在判斷缺失模式中,參數(shù)默認(rèn)忽略;plot為邏輯值,判斷是否繪制圖形。
三、缺失數(shù)據(jù)的處理
1、刪除缺失樣本
可以通過complete.cases()和is.na()進(jìn)行篩選。
可以使用函數(shù)na.omit()直接刪除缺失值。
2、替換缺失值
通過給缺失值賦值,替換缺失值。
3、多重插補(bǔ)法
FSC方法:通過mice包的mice()函數(shù)可以實現(xiàn)。
隨機(jī)模擬完整數(shù)據(jù)集,存入imp(可以隨意替換名稱)中,再對imp進(jìn)行線性回歸,根據(jù)匯總的線性系數(shù),計算出缺失值,填補(bǔ)到缺失數(shù)據(jù)中。
imp = mice(data, seed=...)
#data為數(shù)據(jù),seed為設(shè)置的隨機(jī)種子
fit = with(imp,lm())
#根據(jù)要插補(bǔ)的變量,對imp進(jìn)行線性回歸,例如缺失值為x1,用x2和x3預(yù)測,則lm(x1~x2+x3)
pooled=pool(fit)
#用pool函數(shù)匯總回歸結(jié)果






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論
0條評論