【R: mice: 傾向スコア】 miceの代入済みデータごとの回帰モデル予測値を統合したベクトルを得る
多重代入法による欠損値処理後に,傾向スコア分析をしたい.
ただし予測値を得るのは,代入済みデータセットごとに予測値があるので、なかなかうまくいかずに苦戦しました.
備忘録的にコードを残してきます
間違いがあれば指摘していただけばうれしいです。
なお変数は
z_dummy 割り当て変数 欠損無し
x1 共変量1(連続変数) 欠損あり
x2 共変量2(ダミー変数) 欠損あり
サンプルサイズ(N)を1000
とします
#miceの呼び出し
library("mice")
#多重代入を実行
imputed.data <- mice(data=data, m=100,method=c("",norm","logreg"),seed =1, maxit = 50)
#代入の概要や変数ごとのモデルを確認
summary(imputed)
imputed$method
#回帰モデルの実施
modelMI <- with(imputed.data, glm(z_dummy ~ x1+as.factor(x2), family = binomial(link = 'logit')))
pool(modelMI)
# p_hat に代入データとのモデル予測値を代入
p_hat <- with(imputed, glm(z_dummy ~ x1++as.factor(x2),family = binomial(link = 'logit'))$fitted.values)
#このp_hatは,modalMIと同じlarge miraという形式になってるが,pool()が使えない
#なので無理やり
p <- p_hat$analyses # 予測値だけ取り出す(large mira 形式から large listになる)
n <- 1000 #サンプルサイズをnに代入
DF <- structure(p, row.names = c(NA, -n), class = "data.frame") #listをデータフレームに変更
imputed_propensity_score <- rowMeans(DF[c(1:100)]) #代入済みデータごとの予測値を統合してベクトルに
imputed_propensity_scoreが統合後の傾向スコアになると思います.