【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が統合後の傾向スコアになると思います.