MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

R を使った多重代入で欠損値を補完した後、合計得点を計算して解析したい場合

多重代入法の際に、代入した変数を使って、合計得点などを計算して、最終的な解析がしたい場合がある

そんなときに、どうすればよいか

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

目次

R で多重代入法を実施する方法の概要

R で多重代入法を行う基本的な方法は、以下の記事を参照

多重代入した後に変数同士の計算をしたい場合

多重代入法を行う際に、多重代入したあとの変数を使って、合計得点などの変数を作成したいときがある

合計得点を多重代入で補完する方法ではなく、もともとの変数を補完して、さらに合計を計算したい

そんな時はどうしたらよいだろうか

以下の手順に従って行うと、そのような変数作成ができる

  1. 後で計算したい変数(例:合計得点)を含めず、多重代入 mice を行う
  2. 多重代入データセットを縦に積み重ねたロングフォーマットのデータセットを作成する
  3. 変数の計算をして、欲しい変数(例:合計得点)を作成する
  4. 多重代入データセット mids 形式に戻す
  5. 解析して、結果を統合する

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

実際の R スクリプト

以下の R スクリプトに沿って実施すれば、多重代入したデータセットで変数計算をして、その後解析・統合ができる

以下の例は、BMI の 2 乗の変数 bmi2 を、BMI の補完の後に作成して、最終モデルに bmi2 を含めた解析をしている

使う関数は、mice, with, pool, summary 以外に、complete, as.mids を使う

complete は、補完データセットを取り出す関数で、”long” と付けることでロングフォーマットにできる

また、include=TRUE で、元のデータセットを含め、mids 形式(多重代入データセット形式)に戻せるようにしておく

as.mids が mids 形式に戻す関数である

# パッケージの読みこみ
library(mice)
# データセットの呼び出し
data(nhanes)
# 多重代入
nhanes_imputed <- mice(nhanes, m=100, seed=1)
# いったんロングフォーマットに(縦に 100 のデータセット)
# include = TRUE は欠損値がある元のデータセットを含める
# という意味(mids 形式に戻すため)
nhanes_imputed_df <- complete(nhanes_imputed, "long", include=TRUE)
# BMI の 2 乗という変数 bmi2 を作成する
nhanes_imputed_df$bmi2 <- nhanes_imputed_df$bmi^2
# 多重代入データセットフォーマット mids 形式に戻す
nhanes_imputed2 <- as.mids(nhanes_imputed_df)
# 解析
lm1 <- with(nhanes_imputed2, lm(chl ~ age + bmi + bmi2 + factor(hyp)))
# 統合
(summary.lm1 <- summary(pool(lm1)))

結果は、以下のとおりで、欠損値を補完した後に作成した bmi2 の変数として加わり計算されている

まとめ

R で多重代入法を実施するときに、多重代入をした後に、合計変数などを作成して、解析したい場合、どのようにするか解析した

多重代入データセットをいったん縦に並べてから、変数計算をして、再度多重代入データセット mids 形式に戻すという方法を使う

何らか参考になれば

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次