統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

EZR で傾向スコアマッチングのバランス評価プロットを書く方法

傾向スコアマッチングの後に、バランス評価をするためのプロットを EZR で作成したいと考えた場合、どのようにするか

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


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

傾向スコアマッチングのバランス評価プロット

傾向スコアマッチングをした後に、マッチングのバランスを評価するプロットは、傾向スコア自体のバランス評価グラフと共変量のバランス評価グラフがある

共変量のバランス評価グラフは、傾向スコアを作成した際に使用した説明変数(バランスさせたい群変数の共変量と呼ぶ)がバランスしているかを評価するグラフである

これらについて、EZR では、どのように書いていけばよいか、解説する

傾向スコアのバランス評価グラフ

EZR で、傾向スコアを作成したときに自動で出力されるグラフを活用する

重ねて表示する方法と上下に表示する方法の 2 つがある

  • 傾向スコアを作成したときに出力されている R スクリプトの中に propensity.plot で始まる行を探す:
# 例
propensity.plot(group=lalonde$treat, p.score=lalonde$PropensityScore.GLM.1)
  • マッチング後にマッチングしたデータセットの名前(例 lalonde_MP など _MP がつくのが標準)に置き換えて再度実行する:
# 例 
propensity.plot(group=lalonde_MP$treat, p.score=lalonde_MP$PropensityScore.GLM.1)
  • 傾向スコア作成時のグラフがマッチング前のグラフ、マッチング後のグラフは、マッチしている様子を表すグラフになる

  • このグラフはカーネル密度グラフと言い、母集団の形を推測したものになっている

以下、参考記事

toukeier.hatenablog.com

これを流用して、傾向スコアの分布を示している

  • 上下に表示したい場合は、side=2 を加筆する:
# 例 
propensity.plot(group=lalonde$treat, p.score=lalonde$PropensityScore.GLM.1, side=2)

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


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

共変量のバランス評価グラフ

共変量のバランス評価グラフは、EZR だけでは書けないため、EZR の出力をエクセルにペーストして、エクセルでグラフを作る

  • まず、傾向スコアを作成したのちに、標準化差を計算する:グラフと表 → サンプルの背景データのサマリー表の出力 → 傾向スコア作成群別の、年齢、性別、BMI の集計表を作る(標準化差を表示するを Yes にする)

  • 実行すると同時にクリップボードにコピーされているので、そのままエクセルのシートの貼り付ける(ペーストする)

  • これをマッチングしたあとにもう一度行う(貼り付けた後 Ctrl+A → Ctrl+T でテーブル形式にしているので、見た目がカラフルになっている)

  • マッチング前と後の SMD の列を並べて、整理して、グラフにする

SMD の列を並べたところ

整理したところ

グラフにしたところ

できあがりのグラフは、上記のとおり

オレンジがマッチング後の標準化差であるが、re75 という変数以外は、おおむね標準化差は、小さくなっていて、バランス良好と言える

re75 は、検討しなおさないといけないかもしれない

まとめ

EZR で傾向スコアマッチングした後に、群間のバランスが良好であるか確認する図の書き方を紹介した

傾向スコア自体のバランス評価プロットは、スクリプトを少しだけ変更すれば、書くことが可能である

共変量のバランス評価プロットは、エクセルの力を借りて、書くことができる

参考になれば

おすすめ書籍