Follow @data_no_memo

メモ

個人的なメモです。他者にわかりやすく書くよりも未来の自分にわかりやすく書いています。なお、記事内容の正確さは保証できません。勉強中の身ですので、間違い等ご指摘頂けたら幸いです。

傾向スコア(Propensity Score)法②

この2ヶ月間、非常にバタバタしていて更新がストップしていたが、落ち着いたので更新していく。

今回は前回の続き。

 

abcxyzonetwothree.hatenablog.com

 

前回は、傾向スコア法の基本的な発想を紹介した。「強く無視できる割り当て」という仮定のもとで、トリートメントを受けるかどうかに影響しそうな特徴群をコントロールすれば、仮想現実を想定しなくとも、ATEが推定できるということであった。なお、その特徴群はロジットモデル やプロビットモデル によって計算された傾向スコアであった。

 

今回は、傾向スコアを用いた具体的な調整法についてメモする。すなわち、どのようにして求めた傾向スコアで「コントロール」するのかについてメモする。もっと言えばどのようにして「傾向スコアが同一である」集団が存在する状態を生み出すのかについて考える。傾向スコアは処置群に割り付けられる確率であり、これは0〜1をとる連続量である。従って、厳密に言えば、全く傾向スコアが同一である者は存在しない。なぜなら、傾向スコアは連続量なので、0.11111111...と無限に桁数が存在するからである。

そこで、いくつかの方法が提案されている。それらは以下の通り。

①マッチング

②層別解析

③調整変数として用いる

④逆確率重み付け

 

①マッチングについて

マッチングとは、全く同じ傾向スコアをとる者は存在しないので、できるだけ類似した者同士をマッチさせようという発想である。ただし、マッチングの方法にも様々ある。

例えば、

1-1最近傍マッチング

1-2 半径マッチング

などである。

復元・非復元の違いなどを無視してその概要を示すと以下の通りになる。

1-1最近傍マッチング

任意のトリートメントを受けた個体にとって、傾向スコアが最も近い非トリートメントの個体を逐一マッチングさせる方法である。

 

1-2 半径マッチング

半径マッチングは最近傍マッチングに制約を加えたもの。最近傍マッチングでは、傾向スコアがあまりにもかけ離れていても、それが最も近いのであればマッチングしてしまう。よって、ここまでは許容できますが、ここからは許容できませんよという上限を設定しておくのが半径マッチング。

 

これらの手法を用いて、傾向スコアが似た者同士をマッチングさせる。それらの従属変数を比較(t-test)すれば、まさにこれがATEとなるというわけ。

 

また、1対1でマッチングするだけではなく、複数対1でマッチングするなどオプションは様々ある。

 

②層別解析

傾向スコアの大小によって、ざっくりといくつかのサブクラスに分ける方法。

よく用いられるのは、5つのサブクラスに分ける方法。

 

③調整変数として用いる

これは、通常の回帰分析などの独立変数として処置変数とともに傾向スコアもいれちゃおうという方法である。

 

④逆確率重み付け(Inverse Probability of Treatment Weighting:IPTW)

IPTWは傾向スコアを用いて重み付けすることで、トリートメント変数とその他の交絡変数が独立である状態を作り出す方法である。

個人iのウェイトw_iは以下のように定義される。

w_i = \frac{D_i}{R_i} + \frac{(1 - D_i)}{1 - R_i}

なお、D_iはトリートメントを受けるかどうか(1 or 0)、R_iは傾向スコアを意味する。

このw_iD_iおよびR_iの関係は以下の通りである。

f:id:abcxyzonetwothree:20190325125514p:plain

 すなわち、直感的には傾向スコアが大きい(小さい)にも関わらずトリートメントを受けなかった場合(受けた場合)に従属変数が大きく評価される。すなわち、傾向スコアから予想されるよりも意外なトリートメントだった場合、その従属変数は大きく評価され、傾向スコアから予想されたようなトリートメントだった場合、その従属変数は小さく評価される。

この時のATEは以下のように表現される。

 ATE = \frac{1}{n} \sum{\frac{Y_i D_i}{R_i}} -\frac{1}{n} \sum{\frac{Y_i (1 - D_i)}{1 - R_i}}

 

とりあえず今回は以上である。