1. 程式人生 > 其它 >處理缺失值--多重插補及其他方法

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

處理缺失值--多重插補

多重插補(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還支援其他一些處理缺失值的方法。雖然它們不如之前的方法應用廣泛,表列出的包在一些專業領域非常有用。

處理缺失資料的專業方法

本文來自部落格園,作者:zhang-X,轉載請註明原文連結:https://www.cnblogs.com/YY-zhang/p/15153121.html