STATAを使った傾向スコア分析 IV

(前回の続き)傾向スコアを使って、各症例に対して、反対の群に属する最も近い傾向スコアを持つ症例がマッチングされました。ここから治療効果を計算するのですが、STATAが何をやっているのかを見てみましょう。

*****

set more off

use http://ssc.wisc.edu/sscc/pubs/files/psm, clear

gen id=_n

teffects psmatch (y) (t x1 x2, logit), nn(1) generate(matched_id) ate

predict ps0 ps1, ps

***潜在的アウトカム(p_outcome)の変数をつくる***

predict p_outcome, po

***治療効果(t_effect)の変数をつくる***


predict t_effect, te

***

sort ps1

gen order=_n

browse order t id y matched_id1 p_outcome t_effect

exit
*****


上記コマンドを走らせると、以下のようになります。


前回同様に、非治療群のid 379には、治療群のid 407がマッチングされています。ここで傾向スコアマッチング法は、独特な考え方をとります。id 379は現実には治療を受けていないが、もし治療を受けていたらどうなっただろうか、非常に似通った特性をもつid 407と同じ結果になったであろう、と考えるのです。

この実際には発生してない結果(アウトカム)のことを、潜在的アウトカムといいます。この考えをさらに進めて、現実はともかく、もしid 379が治療を受けなかったときの結果(実際に受けなかったのですが)、もし治療を受けたときの結果、を等しく潜在的アウトカムと呼びます。

こう考えると、傾向スコアマッチングの結果、各症例について、治療を受けた時の潜在的アウトカムと、治療を受けなかった時の潜在的アウトカムが、数値として与えられることになります。

具体的には、id 379が治療を受けた時の潜在的アウトカムは-0.79309、治療を受けなかったときの潜在的アウトカムは-0.14929です。そして、この差、つまり(-0.79309)-(-0.14929)=-0.64381が、id 379という1症例の治療効果ということになります。

teffectsコマンドが計算するATEとはaverage treatment effectのことで、この1例1例の潜在アウトカムの差の平均を算出したものです。

実際にmean t_effectで計算してみましょう。


teffectsを使って計算したATEの値は、先ほどの各症例の潜在アウトカムの差(t_effect)の平均と同じ値になっています。ただし、standard errorの値は異なっており、teffectsコマンドが、各症例のt_effectの値を独立したものとして計算していないことがわかります。

このように、傾向スコアマッチングを使った分析は、潜在アウトカムという独特な考え方の上に成り立っています。その背景には、反事実モデル (Counterfactural models)という、ややこしい数学的、哲学的な議論があるようですが、これはまたの機会に。

コメント

このブログの人気の投稿

STATAを使った傾向スコア分析 II

STATAを使った傾向スコア分析 III