miceを用いた欠損値の多重代入の基本的な流れ

miceを使って多重代入を行う際の基本的な流れについて。

サンプルデータ

使用するサンプルデータは、miceパッケージの「nhanes」です。含まれる変数はage, bmi, hyp, chlで、全て数値型です。age以外の変数には欠損値があります。

data(nhanes)
str(nhanes)

#'data.frame':	25 obs. of  4 variables:
# $ age: num  1 2 1 3 1 3 1 1 2 2 ...
# $ bmi: num  NA 22.7 NA NA 20.4 NA 22.5 30.1 22 NA ...
# $ hyp: num  NA 1 1 NA 1 NA 1 1 1 NA ...
# $ chl: num  NA 187 187 NA 113 184 118 187 238 NA ...

では、実際にmiceを使って多重代入をしてみます。

基本的な流れ

欠損値の多重代入~目的の解析までの一連の流れは、mice()、with()、pool()を使って行われます。それぞれの大まかな役割は以下の通りです。

  1. mice():多重代入を行う
  2. with():代入したデータを使って解析を実行する
  3. pool():結果をプーリングする
サンプルコード
imp_data <- mice(nhanes, seed=123456, maxit=5, m=5, print=FALSE)
model <- with(imp_data, lm(chl ~ age + bmi))
est<- pool(model)

サンプルコードの説明

一行目のseed=123456で、シード値を設定しています。これによって結果の再現性が得られます。maxit=5でinteractionの回数を指定、m=5で多重代入データの数を指定しています。print=FALSEをTRUEにすると代入が進行具合?が表示されます。

(mixitやmの適切な回数は、シチュエーションによって異なるためここでは説明を省きます。)

解析結果の確認

summary()を使って、指定したモデルの推定結果を確認できます。

summary(est)
#or
summary(pool(est))

コメントを残す

メールアドレスが公開されることはありません。