處理缺失值--多重插補及其他方法


處理缺失值--多重插補

多重插補(MI)是一種基於重復模擬的處理缺失值的方法。在面對復雜的缺失值問題時,MI是最常選用的方法,它將從一個包含缺失值的數據集中生成一組完整的數據集(通常是310個)。每個模擬數據集中,缺失數據將用蒙特卡洛方法來填補。此時,標准的統計方法便可應用到每個模擬的數據集上,通過組合輸出結果給出估計的結果,以及引入缺失值時的置信區間。R中可利用Ameliamicemi包來執行這些操作。

通過mice包應用多重插補的步驟

 

函數mice()首先從一個包含缺失數據的數據框開始,然后返回一個包含多個(默認為5個)完整數據集的對象。每個完整數據集都是通過對原始數據框中的缺失數據進行插補而生成的。由於插補有隨機的成分,因此每個完整數據集都略有不同。然后,with()函數可依次對每個完整數據集應用統計模型(如線性模型或廣義線性模型),最后,pool()函數將這些單獨的分析結果整合為一組結果。最終模型的標准誤和p值都將准確地反映出由於缺失值和多重插補而產生的不確定性。

mice()函數如何插補缺失值

答:缺失值的插補通過Gibbs抽樣完成。每個包含缺失值的變量都默認可通過數據集中的其他變量預測得來,於是這些預測方程便可用來預測缺失數據的有效值。該過程不斷迭代直到所有的缺失值都收斂為止。對於每個變量,用戶可以選擇預測模型的形式(稱為基本插補法)和待選入的變量。

默認地,預測的均值用來替換連續型變量中的缺失數據,而Logistic或多元Logistic回歸則分別用來替換二值目標變量(兩水平因子)或多值變量(多於兩水平的因子)。其他基本插補法包括貝葉斯線性回歸、判別分析、兩水平正態插補和從觀測值中隨機抽樣。用戶也可以選擇自己獨有的方法。

基於mice包的分析通常符合以下分析過程:

library(mice)

imp <- mice(data, m)

fit <- with(imp, analysis)

pooled <- pool(fit)

summary(pooled)

其中:

  data是一個包含缺失值的矩陣或數據框。

q imp是一個包含m個插補數據集的列表對象,同時還含有完成插補過程的信息。默認m5q

analysis是一個表達式對象,用來設定應用於m個插補數據集的統計分析方法。方法包括做線性回歸模型的lm()函數、做廣義線性模型的glm()函數、做廣義可加模型的gam(),以及做負二項模型的nbrm()函數。表達式在函數的括號中,~的左邊是響應變量,右邊是預測變量(用+符號分隔開)。

q fit是一個包含m個單獨統計分析結果的列表對象。

pooled是一個包含這m個統計分析平均結果的列表對象。

現將多重插補法應用到sleep數據集上。重復上面的分析過程,不過此處我們將利用所有62種動物。設定隨機種子為1234

library(mice)

data(sleep, package="VIM")

imp <- mice(sleep, seed=1234)

 

fit <- with(imp, lm(Dream ~ Span + Gest))

pooled <- pool(fit)

summary(pooled)

 

結果分析:此處,你可以看到Span的回歸系數不顯著(p0.08 ),Gest的系數在p<0.01的水平下很顯著。fmi欄也展示了缺失信息(即由於引入了缺失數據而引起的變異所占整體不確定性的比例)。

 

處理缺失值的其他方法

 

R還支持其他一些處理缺失值的方法。雖然它們不如之前的方法應用廣泛,表列出的包在一些專業領域非常有用。

處理缺失數據的專業方法

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM