モデルの評価

モデルの評価#

Double ML#

処置効果\(\theta(X)\)の推定を行う。\(Y\)はoutcome, \(T\)はtreatment

\[\begin{split} \begin{align} Y &= \theta(X) \cdot T+g(X)+\varepsilon, \mathrm{E}[\varepsilon \mid X]=0 \\ T &= f(X)+\eta, \mathrm{E}[\eta \mid X]=0 \\ \mathrm{E}[\eta \cdot \varepsilon \mid X] &= 0 \end{align} \end{split}\]

\(g(X), f(X)\)はそれぞれoutcomeとtreatmentを予測するモデル

別途outcomeをXから予測するモデル\(q(X)\)を構築し、残差

\[\begin{split} \begin{aligned} & \tilde{Y}=Y-q(X) \\ & \tilde{T}=T-f(X) \end{aligned} \end{split}\]

を得る。

これらを組み合わせて

\[ \tilde{Y}=\theta(X) \cdot \tilde{T}+\varepsilon \]

と回帰することで\(\theta(X)\)を推定する。

rscore#

モデル評価のためのスコア。

\[ r = 1 - \frac{ r_{\text{loss}} }{ b_{\text{loss}} } \]

ここで

\[ r_{\text{loss}} = E\left[ \left( \tilde{Y} - \tau(x) \tilde{T} \right)^2 \right] \]

\(b_{\text{loss}}\)はconstant treatment model (linear double machine learning modelなど)のbaseline loss

Sensitivity analysis#

感度分析(sensitivity analysis)はモデルへのinputを少し変えることでモデルの反応がどれだけ変わるかを見るもの。

Refutation#

refutation法はDoWhyの論文で提案された方法。

  • データの部分集合\(D_{\text{subset}}\)でATEの推定値がどれだけ変化するか

  • 共通原因(common cause)の変数を追加したモデルのATE推定値がもとのモデルからどれだけ変化するか

  • treatmentを並べ替え(permuting)たもの(placebo treatment)を入れてATE推定値がゼロになるか

など