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
①傾向スコアを作成する
②治療群と非治療群をマッチングする(マッチング以外の方法もありますが、それはおいおいみていきます)
③両群の変数の値が均等になっているかバランスをチェックする
④治療群と非治療群のアウトカムを比較する
実際のところ、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の違いのようです。
psmatch2とteffectsのいずれを使った場合も、傾向スコアの値、治療効果(ATT)の値(.960350715)、バランスチェックの値が等しいことがわかります。ただし、治療効果のstandard errorの値が違います、ここがteffectsとpsmatch2の違いのようです。
コメント
コメントを投稿