「効果検証入門」:傾向スコアと共変量のバランスについて気になったこと
はじめに
前回はこちら
傾向スコアの利用
星野本の際にも記事にしましたので、こちらを参考に。 今回は星野本で得られなかったことを記事にしています。
傾向スコアマッチング
マッチングは基本ATT
ちょっとわかりにくかった。本書の例だと傾向スコア(PS)がタイプAかBか(0か1かの変数)で決まる例なので個の傾向スコアが0.667(Z=1)と0.333(Z=0)の2つです。マッチングは0.667同士、0.333同士で成立しますが、実際の傾向スコアはもっとばらばらになるものです(変数が複数、連続変数等)。
ATTなのはなぜか?Z=1の個人(サンプル)に傾向スコアが近いZ=0の個人(サンプル)をマッチングさせるからです。
Z=1のPSに近しいZ=0のデータをマッチングさせる。そのためATTになる。
より良い傾向スコア
星野本ではc統計量が0.8以上で臨床系では良しとされる、ということでした。が、それよりも共変量のバランスが重要という見解が時流のようです。バランスを見るには”標準化平均差”が改善し、0.1以下になるかどうか、とのこと。
標準化平均差ASAM?
これ、効果量*1ですね。cohenのdとも呼ばれています。 \begin{align} & d = \frac{| \bar{x}_{t} - \bar{x}_{c} | }{s } \\ \\ & s = \sqrt{ \frac{ n_{t}s^{2}_{t} - n_{c}s^{2}_{c} }{n_{t}+n_{c}} } \end{align}
cobaltパッケージのlove.plotで共変量の調整前後のASAMバランスを見ることができます。
また、試しに自分でも計算してみます。データは本書のこちらから。
github.com
### R ### ## マッチングしたデータでの共変量のバランス love.plot(m_near,abs=TRUE, threshold = .1) ## 標準化平均差(ASAM) Cohenのd ## ためしにrecencyのASAM(調整前)を計算 summ <- biased_data %>% group_by(treatment)%>% summarise(n=n(), mean=mean(recency), var=var(recency) ) se <- sqrt( (summ$var[1]*summ$n[1] + summ$var[2]*summ$n[2])/(summ$n[1]+summ$n[2])) m <- (summ$mean[1]-summ$mean[2]) m/se > m/se [1] 0.4857875
love.plot()で計算したUnadjustedのrecencyが0.485位になってますね。
試しにrecencyのASAMを計算してみましたが、これでよさそうです。
IPWの特性
介入グループと非介入グループの傾向の違いが大きい場合IPWの分析結果は信頼しにくくなる
- IPWのが傾向スコアの逆数で重みづけするという特性上、傾向スコアが非常に小さいと補正が大きくなる
- 傾向スコアが0.01%ではサンプルが10000倍に水増し
まさに、この図の話ですね。
ATEとATTはどっちが?
*1:臨床では必要な群差としてよく使う。サンプルサイズ設計とか