前言
在對數據有了大致的了解以后,就需要對獲取到的數據進行一個預處理了。預處理的過程並不簡單,大致來說分成缺失值處理,異常值處理,數據歸約等等 (可根據實際情況對這些階段進行科學的取舍)。
下面將對這幾個階段一個個講解。(本文中測試數據集nhanes2來自包lattice)
缺失值處理
1. 首先要了解到數據集的缺失情況。
下面兩行命令分別獲取到缺失的字段數和完整樣本數:
顯然缺失字段個數為27,完整樣本數為13。
2. 使用mice包的md.pattern函數來獲取具體的缺失情況:
第一行第一列表示完整樣本數(缺失/非缺失字段描述參考2-4列,1表示沒缺失,0表示缺失);最后一列表示該種描述中缺失的字段數。
第二行至第五行情況類似。
最后一行中,2-4列表示對應的字段缺失數,最后一列表示總的字段缺失數。
3. 缺失值的處理:
a) 刪除法
b) 插補法(均值插補為例)
上述代碼首先將數據分為有缺失字段樣本集和無缺失字段樣本集,然后將有缺失字段的樣本集的第四個字段進行均值補全。其他字段的補全同理。
小結
R語言中提供的缺失值處理方案遠不止於此。
在何種條件下選擇何種插補策略是個很有挑戰的問題,本文不展開探討。