【回帰分析は奥深い】効果検証のための回帰分析

忙しい人向けの結論
-
・重回帰分析では必要な共変量を説明変数に入れる。理由は必要な共変量を入れないと検証したい効果にバイアスが混入するから。
#### 以下は共変量の選択基準についてのまとめ
・交絡変数を入れない場合、脱落変数バイアスが発生するので交絡変数は共変量として重回帰分析に入れる。
・共変量を選択する基準の１つにCIA（条件付き独立）がある。介入変数を共変量で条件付けした時、介入変数と$Y^{(0)}$や$Y^{(1)}$が独立になること。
・重回帰分析にぶち込んではいけない変数もある。それは、post treatment bias（処置後変数バイアス）が発生する共変量。因果ダイアグラムの文脈で言えば、コライダーとチェーンが該当する共変量。
・多重共線性にも注意（介入変数と共変量の相関が高すぎる場合、効果をその２つの変数間で分け合ってしまう）。

#### その他注意点
・重回帰分析では２乗の項など線形以外の関数を選択できる。意図的に関数を選択する場合の考え方は、例えば、年齢が増加するたびに年収の上がり幅が逓減する様な場合、年齢と年収には２次関数の関係があり、年齢の２乗の項を共変量に入れるモチベーションが発生する。

重回帰分析をする目的はバイアスを取り除くこと
-
まずは、用語の説明。
介入変数・・・今回の操作することで、効果を検証したい変数。
共変量・・・介入変数と目的変数と相関がある様な変数。
目的変数・・・ターゲットにしている変数。
メール施作の文脈で説明すると、「介入変数がメールを送ったか否か。共変量が性別や年齢など。目的変数が商品購入量。」といった形になる。

重回帰分析をする目的を一言で
「バイアスを取り除いて、介入変数が目的に変数に与えている効果するため」

そして、バイアスを取り除く方法は共変量を重回帰分析に入れること。ただし、共変量には選択する基準があり、場合によっては共変量を重回帰分析に入れることによってむしろバイアスが発生してしまうこともあるので慎重にやる必要がある。

共変量の選択を間違えると、OVB（脱落変数バイアス）が発生
-
OVB（Omitted Variables Bias）とは適切な共変量を重回帰分析に入れなかった際に発生するバイアスのこと。色々説明を省略して、発生するバイアスを数式で表現する。

前提と推定モデルは下記。モデルAがバイアスが発生するモデル。モデルBで真の値を推定できるとする。

```math
モデルA： Y_i = \alpha_0 + \alpha_1 * Z_i + u_i \\
```

```math
モデルB： Y_i = \beta_0 + \beta_1 * Z_i + \beta_2 * X_{omit,i} + e_i
```

バイアスの大きさを数式で表現する。
・$\alpha_1$が共変量を入れずに推定した介入変数の係数。

・$\beta_1$が介入変数が目的変数に与える本当の効果。

・$\gamma_1* \beta_{2}$は脱落変数バイアス。←ここ

・$\gamma_1$が共変量と介入変数の回帰係数。

・$\beta_2$が共変量と目的変数の相関に当たるもの。

```math
\alpha_1 = \beta_1 + \gamma_1* \beta_2
```

重回帰分析に入れるべき共変量を入れないと、以上の式から本当の効果に$\gamma_1* \beta_2$を加えたバイアスのある推定結果が出てきます。また、この式から、共変量と介入変数・目的変数の関係がわかっていれば、バイアスが正か負かどちらの方向に発生してるかわかるので、結果が過大評価されているのか過小評価されているのかわかる。

・注意点として回帰係数が有意ではないとしても、OVBを避けるために共変量として重回帰に入れるべき変数が存在することもある。

共変量はCIA(conditional independence assumption)を満たしていることが望ましい。
-
介入変数を共変量で条件付けした時、介入変数と$Y^{(0)}$や$Y^{(1)}$が独立になること。
全てのOVBが０となる時、CIAを満たしているという。

わかりやすく言うと、共変量を固定した時（例えば、年齢を２０代に固定するなど）に、被験者は介入されたか、介入されていないかランダムに割り振られている状態を指す。RCTを行っていれば、共変量はCIAを満たしている（運悪く満たしていない可能性もある）。

問題点として、共変量が観測不能な場合がある（例えば、賢さ）。そういった場合はOVBも発生し得るし、CIAも満たさないので、操作変数法やDIDなどの工夫された方法を用いて、効果を推定する必要がある。

Post Treatment Bias〜共変量だからといって全てを重回帰分析にぶち込んでいいわけではない〜
-
共変量は統制するために、重回帰分析にぶち込む必要があると今まで説明してきましたが、入れるとまずい共変量もあります。まずい共変量を入れた時に発生するバイアスをPostTreatmentBiasと言います。

効果検証の文脈での説明はややこしいので、因果ダイアグラムの文脈で理解するといいと思います。因果ダイアグラムの文脈で説明すると、コライダーとチェーンに該当する変数は重回帰分析に入れるとバイアスが発生します。

因果ダイアグラムに関しては下記掲載のスライドがわかりやすいです。

https://www.slideshare.net/takehikoihayashi/ss-73059140

分析にPTBが発生する例を挙げます。z→x→yとなっていて、zが介入変数、xが共変量、yが目的変数である場合、xはチェーン（またはフロントドア基準）に該当するので、重回帰に入れるとバイアスが発生します。

具体的な話としてメール施作の例でいうと、zがメールを打ったか、xがサイトに訪問したかどうか、yが商品購入量だとします。
商品購入にはサイトに必ず訪問する必要があるので、xとyには相関があり、zとxにも相関があります。この場合、バイアスが発生し、zの効果が過小評価されるわけですが仕組みを言語化すると下記の通りです。

メールを送信すると、元々購買行動の弱いユーザーもサイトに訪問し、商品を買ってくれるので、介入グループの商品平均購入量は、購買行動が弱い人も強い人も含めた結果になります。一方、介入していないメール未送信グループは元々購買行動の強い人がサイトに訪問し、商品を購入するので、商品平均購入量は多くなります。
ここで、サイトを訪問したユーザー間のみでの比較を行うと、介入していないグループの方が商品平均購入量が多いという結果になってしまうわけです。結果、分析上ではzの効果が小さく、xの効果が大きく見えてしまうわけです。


重回帰分析する際のやりがちなミス
-
・注意点として分析結果が有意ではないとしても、OVBを避けるために共変量として、重回帰に入れる必要がある変数が存在する。
介入変数と共変量の相関が高すぎる(0.7以上が目安)と、多重共線性が発生し分析結果にバイアスが発生することがある。多重共線性を検出する方法として、VIFが１０以上かどうかを確認する方法もある。
対策としては、

・相関の高い変数を外す。
・PCAなどの次元削減を利用して、圧縮した新しい変数を作る。
・変数の標準化
・L1やL2などの正則化をする

などがあります。

参考文献
-

https://www.slideshare.net/takehikoihayashi/ss-73059140

https://www.amazon.co.jp/%E5%8A%B9%E6%9E%9C%E6%A4%9C%E8%A8%BC%E5%85%A5%E9%96%80%E3%80%9C%E6%AD%A3%E3%81%97%E3%81%84%E6%AF%94%E8%BC%83%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%9B%A0%E6%9E%9C%E6%8E%A8%E8%AB%96-%E8%A8%88%E9%87%8F%E7%B5%8C%E6%B8%88%E5%AD%A6%E3%81%AE%E5%9F%BA%E7%A4%8E-%E5%AE%89%E4%BA%95-%E7%BF%94%E5%A4%AA/dp/4297111179/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3BKTPTUS0HXXD&keywords=%E5%8A%B9%E6%9E%9C%E6%A4%9C%E8%A8%BC%E5%85%A5%E9%96%80&qid=1677204554&sprefix=k%2Caps%2C694&sr=8-1