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

おおまかにいえば、傾向スコア解析の流れは以下のようになります。

①傾向スコアを作成する
②治療群と非治療群をマッチングする(マッチング以外の方法もありますが、それはおいおいみていきます)
③両群の変数の値が均等になっているかバランスをチェックする
④治療群と非治療群のアウトカムを比較する

実際のところ、STATAのコマンドは一気にステップ④の治療効果推定までやってしまいます。

傾向スコア解析のためのSTATAコマンドには、従来使われてきたpsmatch2と、STATA13以降に搭載されているteffectsがあります。同じデータを使って、psmatch2とteffectsそれぞれの使い方を見ていきましょう。

今回、teffectsを使った後に、ステップ③のバランスチェックにtebalanceを使いますが、これにはSTATA14以降が必要です(熱研内科関係者で持っていない方は連絡をください)。


*****このままdo fileにコピペすれば動くはずです*****
set more off

***データ読み込み***


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


***psmatch2を使ったマッチングと治療効果推定***


psmatch2 t x1 x2, out(y) logit ties


***傾向スコアは_pscoreという変数として作成されている***


psgraph, treated(t) pscore(_pscore)


***治療群と非治療群のバランスチェック***


pstest x1 x2, treated(t) both


*****

***teffectsを使ったマッチングと治療効果推定。ただし、これだけでは傾向スコアは変数として作成されない。次のステップで作成するためにgenerateオプションを使う。***

teffects psmatch (y) (t x1 x2, logit), generate(n) atet


***ここで傾向スコアを作成する。ここではps1という変数名で作成する。このps1は、psmatch2で作成した_pscoreと完全に一致しているはずである。***


predict ps0 ps1, ps


psgraph, treated(t) pscore(ps1)


***治療群と非治療群のバランスチェック***


tebalance summarize


exit

*****


psmatch2とteffectsのいずれを使った場合も、傾向スコアの値、治療効果(ATT)の値(.960350715)、バランスチェックの値が等しいことがわかります。ただし、治療効果のstandard errorの値が違います、ここがteffectsとpsmatch2の違いのようです。

コメント

このブログの人気の投稿

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

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