筆者寄語:缺失值是數(shù)據(jù)清洗過程中非常重要的問題(其他方法可見:R語言︱異常值檢驗、離群點分析、異常值處理),,筆者在進行mice包的多重插補過程中遇到相當多的問題。 大致的步驟簡介如下: 缺失數(shù)據(jù)集——MCMC估計插補成幾個數(shù)據(jù)集——每個數(shù)據(jù)集進行插補建模(glm,、lm模型)——將這些模型整合到一起(pool)——評價插補模型優(yōu)劣(模型系數(shù)的t統(tǒng)計量)——輸出完整數(shù)據(jù)集(compute) 步驟詳細介紹: 函數(shù)mice()首先從一個包含缺失數(shù)據(jù)的數(shù)據(jù)框開始,,然后返回一個包含多個(默認為5個)完整數(shù)據(jù)集的對象。 每個完整數(shù)據(jù)集都是通過對原始數(shù)據(jù)框中的缺失數(shù)據(jù)進行插補而生成的,。 由于插補有隨機的成分,,因此每個完整數(shù)據(jù)集都略有不同。 然后,, with()函數(shù)可依次對每個完整數(shù)據(jù)集應用統(tǒng)計模型(如線性模型或廣義線性模型) ,, 最后, pool()函數(shù)將這些單獨的分析結果整合為一組結果,。最終模型的標準誤和p值都將準確地反映出由于缺失值和多重插補而產生的不確定性,。
結果解讀: (1)imp對象中,,包含了:每個變量缺失值個數(shù)信息、每個變量插補方式(PMM,,預測均值法常見),、插補的變量有哪些、預測變量矩陣(在矩陣中,,行代表插補變量,,列代表為插補提供信息的變量, 1和0分別表示使用和未使用),; 同時 利用這個代碼imp$imp$sales 可以找到,,每個插補數(shù)據(jù)集缺失值位置的數(shù)據(jù)補齊具體數(shù)值是啥。
(2)with對象,。插補模型可以多樣化,,比如lm,,glm都是可以直接應用進去,詳情可見《R語言實戰(zhàn)》第十五章,; (3)pool對象,。summary之后,會出現(xiàn)lm模型系數(shù),,可以如果出現(xiàn)系數(shù)不顯著,,那么則需要考慮換插補模型; (4)complete對象,。m個完整插補數(shù)據(jù)集,,同時可以利用此函數(shù)輸出。 ———————————————————————————————————————————————————— 1,、缺失值模式——可視化(md.pattern())
———————————————————————————————————————————————————— 2、mice函數(shù)詳解mice函數(shù)主要參數(shù)有mice(數(shù)據(jù)集,,m=5,,meth=”PMM“) m為默認插補數(shù)據(jù)集數(shù)量,5為默認值,;meth為默認插補方式,,PMM為默認方式預測均值匹配。 還有一些其他methods插補方法,,比如貝葉斯線性回歸(norm),、基于bootstrap的線性回歸(norm.boot)、線性回歸預測值(norm.predict),、分類回歸樹(cart),、隨機森林(rf)等等。(詳情可help(mice)獲取信息) 使用這些插補方法對數(shù)據(jù)有嚴格的要求,,比如貝葉斯線性回歸等前三個模型都需要數(shù)據(jù)符合numeric格式,,而PMM、cart,、rf任意格式都行,。 使用以上模型遇見的問題有: 1、PMM相當于某一指標的平均值作為插補,,會出現(xiàn)插補值重復的問題,; 2,、cart以及rf是挑選某指標中最大分類的那個數(shù)字,是指標中的某一個數(shù)字,,未按照規(guī)律,; 3、要使用norm.predict,,必須先對數(shù)據(jù)進行格式轉換,,這個過程中會出現(xiàn)一些錯誤,比如以下錯誤警告: Error in solve.default(xtx + diag(pen)) : Imputation method norm.boot is not for factors with three or more levels. ———————————————————————————————————————————————————— 3,、with-pool函數(shù)的作用 在使用Mice包的過程中會出現(xiàn)以下的疑惑: 已經(jīng)有mice函數(shù)補齊了缺失值,,可以直接用compete直接調出,為啥還要用with,,pool,? mice函數(shù)中默認插補5個數(shù)據(jù)集,,那么哪個數(shù)據(jù)集最好,,值得選出? 筆者認為with-pool的作用是用來選擇數(shù)據(jù)集的,。 with函數(shù)中有5個插補數(shù)據(jù)集的回歸模型~數(shù)據(jù)集T檢驗~某數(shù)據(jù)集是否合格,; pool函數(shù)把5個回歸模型匯總~數(shù)據(jù)集F檢驗~整個方法是否合格。 當然,,一個未解決的問題是,,小數(shù)據(jù)集可以每個數(shù)據(jù)集進行觀察,如果要插補很多,,該怎么辦呢,? 其中,批量導入,、寫出數(shù)據(jù)的方法可見: R語言︱文件讀入,、讀出一些方法羅列(批量xlsx文件、數(shù)據(jù)庫,、文本txt,、文件夾)每每以為攀得眾山小,可,、每每又切實來到起點,,大牛們,緩緩腳步來俺筆記葩分享一下吧,,please~ ——————————————————————————— |
|