データ分析の書記録

読んだ本の内容って忘れてしまいますよね。このブログは分析関係の読んだ本、勉強したことの記録です。

「効果検証入門」:回帰分析とOVB

はじめに

前回はこちら

shinomiya-note.hatenablog.com

回帰分析における効果の推定

共変量Xを条件づけて欠測部分を含めたYの期待値を推定。

  z=1 z=0
介入を受けた場合:y1 y_1|z=1 y_1|z=0
介入を受けない場合:y0 y_0|z=1 y_0|z=0
共変量X x x

灰文字 は観測できない値

回帰分析を用いた効果検証

回帰分析によって共変量Xで条件つけた介入の有無ごとの期待値を近似します。 \begin{align} E[Y | X, Z = 1] = \beta_{0} + \beta_{1}1 + \beta_{2}X \\ E[Y | X, Z = 0] = \beta_{0} + \beta_{1}0 + \beta_{2}X \end{align}

介入の効果はこれらの期待値の差分になることから \begin{align} &E[Y | X, Z = 1]-E[Y | X, Z = 0] \\ &= (\beta_{0} + \beta_{1}1 + \beta_{2}X) - (\beta_{0} + \beta_{1}0 + \beta_{2}X) \\ &= \beta_{1} \end{align} になります。Z=(0,1)の係数β1さえわかれば介入の効果がわかることになります。

回帰分析におけるOVB

  • 共変量Xを条件づけることでセレクションバイアスを減らすことができます。

  • (モデルの問題はおいておいて)あとはどのような共変量を追加するべきか?ということになります。

  • 共変量の設定が不十分な場合、共変量変数が抜け落ちているという脱落変数バイアス(OVB)が発生します。

  • OVBを考えると、どのような共変量を追加するべきか?が見えてきます。

*このOVBの部分は誤植の確認と気になったため参考文献にあるAngrist and Pischke 2014(が書いた本)をあさりました。

www.amazon.co.jp

脱落変数バイアスOVBの考え方

脱落変数の有無の違いがある二つの式(短い:sと長い:l)があるとします。

\begin{align} &Y = \alpha^{s}_{0} + \alpha^{s}_{1}Z + e^{s} \\ &Y = \beta^{l}_{0} + \beta^{l}_{1}Z + \beta^{l}_{2}X_{omit} + e^{l} \end{align} 介入の効果はZの係数α1 or β1 ですね。そこから二つの式の関係を考えると \begin{align} &\alpha^{s}_{1} = \beta^{l}_{1} + \gamma_{1} \beta^{l}_{2} \\ &OVB = \alpha^{s}_{1} - \beta^{l}_{1} = \gamma_{1} \beta^{l}_{2} \end{align}

これはつまり、

  • 短い式の介入Zの効果 = 長い式の介入Zの効果 + 脱落変数Xと介入Zとの関係 × 脱落変数Xの効果
  • OVB = 短い式の介入Zの効果 - 長い式の介入Zの効果 = 脱落変数Xと介入Zとの関係 × 脱落変数Xの効果

ということになります。脱落変数バイアスOVBはγ1β2ですね。

γ?

上記で出てきたγ1ってなんでしょうか。 γ1 = 脱落変数Xと介入Zとの関係とのことですので、下の式のように表せるパラメータです。 \begin{align} X_{omit} = \gamma_{0} + \gamma_{1} Z + e \end{align} γ1はZの係数になってますね。
OVBのγ1はX⬅︎Zの回帰係数、β2はY⬅︎Xの回帰係数です。つまりOVBは回帰係数同士の掛け算です。
回帰式の係数というのは条件付きの相関関係と言えます。

どのような共変量を追加するべきか

これらのことから共変量としての変数候補は、介入Zと目的変数Yの両方と相関がある変数ということになります。OVBの式から、XがYとZのどちらかと関係がない=相関が0だとOVB自体が0になってしまいますので。
共変量の正しい選択は以前、星野本の記事に書きました。

shinomiya-note.hatenablog.com

補足

ちなみに共変量が複数ある場合、各共変量の脱落バイアスは以下のような関係らしいです*1 \begin{align} &Y = \alpha^{s}_{0} + \alpha^{s}_{1}Z + e^{s} \\ &Y = \beta^{l}_{0} + \beta^{l}_{1}Z + \beta^{l}_{2}X_{omit1} + \beta^{l}_{3}X_{omit2} + e^{l} \\ \\ &X_{omit1} = \gamma_{0} + \gamma_{1} Z + \gamma_{2}X_{omit2} + e \\ &OVB = \gamma_{1} \beta^{l}_{2} \end{align}

Post treatmentバイアス

とはいえ、XとZが関係する変数全てを共変量として用いることができわけではありません。いわゆる介入Zによって共変量Xが決まってくる場合です。 本書の例では、「ECサイトにおけるメール配信Z ➡︎ サイト来訪X ➡︎ 購入額Y」のような関係がある場合ですね*2。この場合は逆に介入Zの効果は過小評価されてしまいます。共変量候補は介入Zより時間的や関係的に上流でなければなりません。

効果検証における回帰分析実行時の疑問

Yについての予測力
  • Zに関係がない(相関=0)がYに関係がある変数を入れたとする
  • ➡︎ 推定値の標準誤差が小さくなるので、意味はあるが介入Zの効果値に影響があるわけではない
対数をとる
  • 目的変数Yの対数をとるとYに対して何%の変化があったか?になる
  • 対数の差は変化率で近似できるから
多重共線性
  • 多重共線性は関連の強い変数以外の変数には特に影響を与えることはないため、介入Zの効果には影響がない
RCTと回帰分析の結果が同一にならない問題
  • 各介入Z群でサンプル数に偏りがあると、効果が高く出てしまう(Var[Z|X]が大きくなるため)

  • 原因は回帰分析の特徴:回帰分析のデータの中で打倒に比較できそうなサンプルに絞り込んで比較を行う

  • 介入変数の効果がサンプル間で大きく変化しないと想定される場合にはこの問題は起きない
    • これは交絡状況と平行性の問題と思われます*3

回帰モデルの問題点は以前、星野本の記事にも書きました
  • 共変量が多いと必要データ量が膨大になる(次元の呪い)
  • 従属変数yと共変量x間に適切な回帰モデルを設定する想定 ➡ 回帰モデルといっても線形(パラ)なのかカーネル回帰(ノンパラ)なのか・・・できるだけロバストが良い(次元の呪いもあるし)
  • 線形モデル(≒共分散分析)では各群の回帰モデルの傾きが同一

*1:Mastering Metricsによると

*2:いわゆる中間変数になっている

*3:効果検証における線形の回帰分析はいわゆる共分散分析です。共変量と目的変数を介入別にプロットした時に平行性があるという条件、共変量が部分交絡(介入群ごとに共変量値がばらついていて、被っている部分がある)という条件があって正しい効果量の推定に必要なりますが、この平行性の条件を満たすことは個人的にほぼ見たことないです。