Multiple imputation

MikuHatsune2013-10-28

欠損値をどうにかこうにか補おうということでimputationがある。
欠損データ分析には欠損値のメカニズムとして MCAR, MAR, MNAR を挙げている。リンクのサンプルデータとして、欠損値を含む変数Y, 解析上の変数X, 別の変数W, 欠損値かどうかの確率変数R(欠損値ならば1, そうでないなら0のフラグでもある), 真の値Tで構成される下のデータをやってみる。
Rならmiceでできる。他、mipan, FIMLができるlavaanがあったが、ぶっちゃけimputationについて理解しきっていないのでmiceだけやってみる。

W X Y T R
3 83 NA 93 1
4 85 NA 99 1
5 95 NA 98 1
2 96 NA 103 1
5 103 128 128 0
3 104 102 102 0
2 109 111 111 0
6 112 113 113 0
3 115 117 117 0
3 116 133 133 0
a <- read.table("clipboard", sep=" ", header=TRUE)
imp1 <- mice(a[,-4], m=5) # 欠損値フラグを含む MAR だと思っている。
complete(imp1) # 欠損値補完をしたデータの表示
bwplot(imp1)

imp2 <- mice(a[,-c(4,5)], m=5) # 欠損値フラグを含まない MCAR だと思っている。
complete(imp2) # 欠損値補完をしたデータの表示
bwplot(imp2)


となるのだが、真の値と比較してもすんごいずれてるんだけどこんなもんなのか…

imp2$imp$Y
    1   2   3   4   5
1 128 102 133 102 128
2 128 111 117 111 102
3 128 128 111 128 117
4 111 111 113 128 128