読書メモ 効果検証入門(回帰分析)
こんにちは、テックタヌキです。
普段はデータ分析のお仕事をしていて、このブログでは学んだことのアウトプットをしています。本記事は、効果検証入門
の読書メモです。
何か間違っているところがあれば指摘してもらえると喜びます。
はじめに
ビジネスの場において、何か施策を実施した後に、その効果を正しく見積もることは重要です。
本記事では、効果を正しく検証する技術について解説します。
ノーテーション
最初に、本記事で用いるいくつかの記号について定義しておきます。
-
施策によって効果を向上させたい目的変数のこと。例えば、売上など。Y: -
施策の有無。Z: のときは施策対象者で、Z=1 のときは施策対象者ではないとします。例えば、クーポンの配布など。Z=0 -
は施策を実行したときの目的変数の値と施策を実行しなかったときの目的変数の値とします。Y^{(1)}, Y^{(0)} -
と変形できる。Y=ZY^{(1)}+(1-Z)Y^{(0)} はY いずれかの値しか観測できないことに注意。Y^{(1)}, Y^{(0)}
-
-
共変量のこと。目的変数以外の変数だと思えばよい。X: -
データ数N:
第1章 セレクションバイアスとRCT
施策効果を「施策を受けた場合と施策を受けなかったときの目的変数の差」で測ることを思いつきそうです。目的変数を確率変数だと思えば、以下のように定式化できるでしょう。
しかし、これは実際には測れません。なぜかというと、ユーザを固定したとき、施策を受けたときと受けなかったときを同時に観測することができないからです。
一方で実データに対して効果を測ろうと思ったとき、単純には効果を
第1項目は施策を受けた人の中での目的変数の平均値で、第2項目は施策を受けなかった人の中での目的変数の平均です。
しかし、実際にはこれは
ただし、
これはどういうときかといえば、目的変数の値とは関係なく施策対象かどうか決まっているということです。例えば、
つまり、あたりまえですが、
そこで、計算はできませんが、
つまり、
第2項は、施策を受けている人の受けなかったときの目的変数[3]の期待値と施策を受けていない人の施策を受けていないときの目的変数の期待値の差です。これはセレクションバイアスと呼ばれる量になっています。
セレクションバイアスは施策を受ける人と受けない人の選択がランダムではなく恣意的に選択された場合に生じるバイアスのことです。
例えば、
そのため、正しく効果を測るためにはRCTが必要になります。しかし、施策の実行には高いコストがかかるためRCTではなくできるだけ効果が高い対象者に向けて施策を実行したいという、ビジネス上の問題があります。
本書では、そのための方策としては回帰分析と傾向スコアの2種類が紹介されています。
ちなみに、実際に効果があったかなかったかを検定するには、施策対象者と非施策最小者の目的変数に対する平均の差の検定を行えばよいです。ただし、セレクションバイアスの符号と効果量の符号が同じ場合、棄却されやすくなります(すなわち効果があったという結果になってしまいます。)しかし、これは実際に効果があったとは意味しません。なぜなら検定は単に平均に差があるかどうかしか判定できないからです。
そのため、再三になりますが正確に効果を見積もりたい場合には、RCTを行うか、後述の方法を使ってセレクションバイアスを減らす必要があります。
第2章 回帰分析
次の線形回帰モデルを考えます。
数理系のモデルでは、誤差項
ただし、
この仮定の下では、
のようになることから、
と書けることになります。
ここで、
を計算してみます。
きれいに
つまり、
しかし、
回帰分析と1章との内容の違いは、共変量
私が理解した限りでは、回帰分析の目的は、
このようにすることで、共変量
ここで、2章の冒頭で
しかも、
証明は同様なので、
整理すると、
すなわち、
この仮定は、回帰係数が不偏推定量になるための条件でもあるので、この仮定が満たされない場合には、回帰係数
そのため、
回帰分析の問題
回帰分析の問題を箇条書きで簡単にまとめておきます。
- バイアスの評価ができない
- 共変量の組み合わせをいろいろと試してみて、セレクションバイアスが最も小さいモデルを求めたいですが、そもそもセレクションバイアスが効果を過剰に見積もっているのか、過少に見積もっているかわからないので、単純に効果が最も小さいもの・最も大きいものという風に決定することができません。
- そのため、分析者はどのようにして発生し、どのような共変量を加えることでバイアスを除けるかを考慮する必要があります。
- バイアスを軽減するのに必要なデータが手に入らない場合
共変量についても以下にまとめておきます。
- セレクションバイアスを除く共変量には、介入に相関のある変数をモデルに組み込むべきです[7]
- テキストに詳しい説明がなかったので、記事内で説明しなかったですが、介入後に影響がある変数はいれるべきではないそうです。Post Treatment Biasというバイアスを産みます。
-Post Treatment Biasは変数の選択以外にも生じることがあります。例えば、何らかの施策で特定の選択をしたユーザのみのデータしか得られていない場合です。
- テキストに詳しい説明がなかったので、記事内で説明しなかったですが、介入後に影響がある変数はいれるべきではないそうです。Post Treatment Biasというバイアスを産みます。
最後に
本記事では、効果検証入門の1章から2章までの理論的な部分に絞ってまとめました。
実際の書籍内では、具体例にて実際に実データを用いてバイアスを取り除いた例も載っているので、気になった方は読んでみてください。
-
を考えることもできますが、良い解釈は生まれませんでした。 ↩︎E[Y^{(1)}|Z=0] -
計算できないものが含まれているので、求めることはできません。 ↩︎
-
もちろん計算できません。あくまでも仮想的な話です。 ↩︎
-
テキストでは、
と比較していましたが、実際の効果として評価したいのは\tau ではなく、\tau かと思います。間違っていたら教えてください。 ↩︎E[Y^{(1)}-Y^{(0)}|Z=1] -
テキストには書いてなかったですが、おそらくあっていると思います。 ↩︎
-
この部分以降は計算をいろいろしてみた私の考察です。間違いが含まれているかもしれません。 ↩︎
-
目的変数と相関がある変数もモデルに組み込むべきですが、それがセレクションバイアスを除く効果があるのかどうかはわかりませんでした。 ↩︎
Discussion