Pay money To my Life

Spend time for myself, and you... "Knowledge was the only way to remember that your past is true"

効果検証入門 Day03 - 回帰分析

はじめに

 こちらは、効果検証入門の備忘録Day03です。
 前回記事はこちらからどうぞ。
k-ptl.hatenablog.com

k-ptl.hatenablog.com

 また、使用している書籍は、こちらの『効果検証入門』です。

 前回の更新からだいぶ時間が経ってしまいましたが、今回は効果検証入門第2章 回帰分析が対象です。

 回帰分析は非常に多くのシーンで(それも無意識に、特別勉強せずとも自然に)使われている分析手法であり、2つ以上のパラメータの関係を見たい時には真っ先に使用される分析手法だと思います。それも踏まえて、回帰分析とは何か、何ができるのか、単純ゆえ何に気をつけなければならないのか、について、本書の内容および私の経験や世間的に有名な話も交えつつ、解説していこうと思います。
 ただし、本記事で述べる内容は効果検証入門を参考に、私なりの理解を文章に興したものです。怪しい点がございましたら、コメントにて教えてくださると助かります。また、証明等については他のブログや書籍等に譲ります。ここでは詳細は記述しません。

本記事について

内容と対象者

 回帰分析を効果の検証に用いる場合、の手法について解説します。あくまで、介入がKPI(売上、等)に及ぼす影響を評価する上での手法と、注意しなければならない点について記述していきます。
 逆に、予測・補間するために用いる回帰については説明しません。ここは少しややこしい部分なので照査は後述しますが、あくまで介入による効果を見積もることが目的です。そのため、予測のための回帰分析を知りたい方は本記事では不十分かと思います。他の記事を参考にしてください。

キーワード

  • 目的変数 objective variable ... 介入による効果を期待する変数
  • 介入 treatment ... 効果を生むためのアクション
  • 説明変数 explanatory variable ... 目的変数と関わりのある変数
  • 共変数 control variable ... 説明変数のうち、セレクションバイアスを生み出していると分析者が考える変数
  • 交絡因子 confounding factor ... 共変量のうち、介入と目的変数の双方に相関を有する変数
  • OVB Omitted Variable Bias ... 介入の偏回帰係数を正しく推定するのに必要であるにも関わらず、モデルから抜け落ちている交絡因子のこと
  • CIA Conditional Independence Assumption ... 介入が目的変数と独立している、という考え方で、効果を正しく検証するために満たしている必要があるもの
  • Sensitivity Analysis ... 分析者が重要だと認識している共変量以外の共変量をモデルから抜くことで、効果の推定値が大きく変動しないかどうかを確認する分析
  • Post Treatment Bias ... 介入よりも後に決定される変数をモデルに組み込むことで発生するバイアス
  • 多重共線性 Multicollinearity ... 回帰モデルに含まれている変数のうち2つが強い相関を持つこと

本記事で使用する記号・添字

  •  X :: 説明変数
  •  Y :: 被説明変数(目的変数)(本記事内では売上を表す)
  •  Y^{(0)} :: 介入が無かった場合の被説明変数
  •  Y^{(1)} :: 介入が有った場合の被説明変数
  •  Z :: 介入(本記事ではメール配信の有無;0 or 1を表す)
  •  E[Y] :: 期待値(母集団における Yの平均)
  •  E[Y|Z, X] :: 条件付き期待値(母集団における Y|Zの平均;ある変数 Z, Xがある値をとるときの Yの期待値)
  •  \bar{Y} :: 平均(標本における平均)
  •  V :: 分散(標本における不偏分散

回帰分析とは

 回帰分析、と聞くと、散布図を書いて直線を引いて決定係数を観察して、一喜一憂して、、、というのが真っ先に浮かびます(ボクの場合)。ボクは、大学院を修了してから、企業に研究職で入社してから今日に至るまでずっと、工学(特に力学)に携わっています。そちらの分野での実験とその実験結果の解釈というと、実験結果に当てはまりのいい数理モデルを探索して、現象を定式化・解釈することが目的とされることが多く、そのための手法として回帰モデルが使われることが多いと思います。この五臓六腑に染み付いた線形モデルに対する考え方こそが、私の中の最大の思考バイアスであり、効果検証(因果推論)への理解を困難にさせています
 でもボクはマイノリティではなく、むしろマジョリティだと思っていて、線形回帰というのはこういう使い方が最も一般的なのではないでしょうか。他の人と議論してようやく、これから取り組む『効果検証(因果推論)における回帰分析は、これまでボクが取り組んできた回帰分析と大差なく、ほんの少し使い方が違うだけである』と納得することができました。それについて、まず解説します。何が、どう違うのか。

想定するシチュエーション

 適当にシチュエーション(パラメータ)を決定します。高校時代にタイムスリップします(若返りたい)。
 文化祭で、焼きそばを販売することになりました(タピオカの方が現代っぽい?じゃタピオカ屋さんにしようか)。できるだけ売り上げを伸ばしたいです。売り上げを伸ばすために、出店しているタピオカ屋さんのチラシを配ることにしました。ただ、チラシはタダではありません。少なからずコストが発生します。そこで、あなたはこう考えるわけです。

『チラシって売上に関係しているの?』

と。さぁ、調べましょう。

パラメータの設定

 ここでは、出店しているタピオカ屋さんへ来店した民が支払った金額を Yとし、その民へチラシを配ったかどうか(介入)を Z = \{0, 1\} とします。また、何回このお店の前を通ったか、知り合いがこのタピオカ屋さんにいるか、来訪してきた時間はいつ頃か、普段1ヶ月にどれくらいタピオカを飲んでいるのか、何杯買って行ったのか、、、などなど、来店した民の特徴を X_1, X_2, ,,,とします。思いつく限りたくさん特徴の特徴があることでしょう。

線形回帰をしよう

 さて、今知りたいのは、チラシの有無が、来店した民の支払い金額へどのような影響を及ぼしているか、ということです。単純に線形モデルを組むと、 i さんの支払い金額 Y_iは、

 Y_i = \alpha_0 + \alpha_z Z_i + \epsilon

と立式可能です。ここで、 \alpha_0, \alpha_z, \epsilonはそれぞれ介入の切片、偏回帰係数、誤差項(残渣を表す)であり、 Z_i = 1である時にはその民  i へチラシを配った、と言うことを意味します。チラシを配らなかった場合( Z_i = 0)、その民が支払う金額は \alpha_0 + \epsilonです。ここで、 \epsilonは単純な誤差項ではない( E[\epsilon] \neq 0 可能性があることに注意です。と言うのも、支払い金額 Y_i Z_iで説明しようとした際に、説明しきれない値(誤差、と言うよりは表現しきれなかった値、取りこぼした値なので残渣と表現した方がわかりやすい)が、 \epsilonには含まれるためです。逆に言うと、説明変数 Z, Xで来店した民の支払い金額を完璧に表現できた時、 E[\epsilon] = 0 となることが期待されます。

線形回帰の解釈;工学実験的

 さて。ここから、線形回帰で表現されたこの式の解釈方法についてお話ししていきましょう。まずは、工学実験的解釈手法についてです(これは勝手に命名しました。いわゆる物理現象等科学を対象に実験した際に得られた結果に対して、モデル化を目的として行われる線形回帰における解釈という意味です)。改めて線形回帰式を示します。

 Y_i = \alpha_0 + \alpha_z Z_i + \epsilon

支払い金額 Yの説明変数はチラシの有無という介入 Zだけで表現された、最も単純な単回帰モデルです。ここからは、チラシが配られた民は、配られていない民に比べて \alpha_zだけ高い金額を支払う、ということがわかります。
 ただ、ここでの目的は"チラシを配ることでどれだけ売り上げが伸びるか"を予測するということであるため、普段1ヶ月にどれくらいタピオカを飲んでいるのか、何杯買って行ったのか、など M個の説明変数をモデルに加えることで、より正確にその増加量を予測することを試みます。

 {
\displaystyle
\begin{equation}
Y_i = \alpha_0 + \alpha_z Z_i + \Sigma_{m=1}^M \bigl( \alpha_m X_{m,i} \bigr) + \epsilon 
\end{equation}
}

もし、説明変数の漏れがない場合、 E[\epsilon] = 0 となることが期待されます。すると、より正確に数理モデルは構築されたことになり、チラシの有無(介入 Z)によってどれくらい支払い金額が変化するかだけでなく、他の説明変数、例えば1ヶ月にどれくらいタピオカを飲んでいるのか、その量に応じて支払い金額がどれくらい増加するか、まで予測することができるようになります。つまり、介入 Zだけでなく、線形回帰モデルに含まれる説明変数 X_mが目的変数 Yへどれだけ影響を与えるのかを予測することができるということです。ただし、目的変数と説明変数との間で、相関係数がある程度大きいことが前提です(多重共線性などはここでは無視する)。
 また、誤差項 \epsilonに関しては、 E[\epsilon] = 0 であることが期待されます。

線形回帰の解釈;効果検証(因果推論)的

 では、工学実験的な線形回帰分析の解釈に対して、効果検証(因果推論)では線形回帰分析をどのように解釈するのでしょうか。
 まず、下の単回帰分析について考えましょう。

 Y_i = \alpha_0 + \alpha_z Z_i + \epsilon

ここで、因果推論の場合、『介入 Zは来店した民の支払い金額 Yの大きさに寄与しない』という帰無仮説を棄却するためにt検定のp値が有意水準を下回っている必要があります。さらにいうと、他の説明変数 Xを線形回帰モデルに入れたとしても、それらの目的変数 Yとの統計的優位性には関心がない(帰無仮説を棄却する必要がない)のです。
 そして、先ほどと同じように M個の説明変数をモデルに加えると、

 {
\displaystyle
\begin{equation}
Y_i = \alpha_0 + \alpha_z Z_i + \Sigma_{m=1}^M \bigl( \alpha_m X_{m,i} \bigr) + \epsilon 
\end{equation}
}

となります。しかし、ここでは追加された M個の説明変数 X_mのうち、本モデルに必要なのは目的変数 Yと介入 Zのどちらにも相関があるもののみです。これはどういうことでしょうか。
 効果検証(因果推論)の場合、関心があるのは介入 Zの偏回帰係数 \alpha_zのみであり、他の説明変数の偏回帰係数には関心がないのです。それはつまり、介入 Zの偏回帰係数 \alpha_zのみ最適化することができれば良く、正確に目的変数 Yの予測をする必要がないということです。介入 Zと相関のない説明変数 Xをモデルに追加しても、介入の偏回帰係数 \alpha_zはそれほど影響を受けません。そのため、効果検証(因果推論)に必要なのは、目的変数 Yと介入 Zのどちらにも相関があるもののみあれば、 \alpha_zは最適化されるのです。
 また、誤差項 \epsilonに関しては、 E[\epsilon] = 0 である必要がありません。というのもの、モデルが目的変数の全てを表現しているわけではない(そこが目的ではない)ためです。
 これらのパラメータの算出(計算)方法については、本記事の最後で簡単に説明します。

回帰分析についてまとめ

 ここまで、大雑把に「工学実験的」と「効果検証(因果推論)的」な線形回帰の解釈の仕方の違いを述べました。それを対比の形でまとめると、次のようになります。

工学実験的 効果検証(因果推論)的
目的 目的変数の予測、介入・説明変数の寄与度 介入の目的変数への寄与度のみ
説明変数 自由に入れてOK 目的変数と介入に相関のあるものをMECE
解釈に使うパラメータ 任意の係数 介入の偏回帰係数のみ
誤差項 期待値0が理想 期待値0である必要がない

なお、ここではまだ説明変数の選択方法については言及していません。それについては後述します。端的にいうと、効果検証(因果推論)における回帰分析は、介入の偏回帰係数のみ最適化する(すなわち、セレクションバイアスを最小化する)ことが求められます。では、如何様にして最適化すれば良いのでしょうか。



回帰分析における説明変数(共変量)の選択

 ここからは、回帰分析を実施するための説明変数を選択する上で、考慮するべき考え方を紹介していきます。なお、ここで紹介するのは『効果検証入門』第2章に記載されている内容についてです。

変数を固定(統制)する

 この表現が、いろいろなところで使われている(ただし「効果検証入門」では使用されていない)。、、、どういう意味かわからなくない??????ボクは何言ってるのかよくわからなかった。。。結論からいうと、

 変数 X_1を固定する、とは『回帰モデルに X_1を組み込む』ことを意味しています。

、、、どういうことでしょうか。簡単に、概念を説明します(厳密には間違っている可能性があります、あくまでイメージです)。
 まず、次の2式を考えます。

 {
\displaystyle
\begin{eqnarray}
Y &=& \alpha_0 + \alpha_1 X_1 + \epsilon_a \tag{1} \\
Y &=& \alpha_0 + \alpha_1 X_1 + \alpha_2 X_2 + \epsilon_b \tag{2}
\end{eqnarray}
}

ここで、 \epsilon_a, \epsilon_bはそれぞれ式(1), (2)の誤差項です。式(1)について、誤差項 \epsilon_aにはまだ説明変数 X_1と相関を持つ説明変数が含まれている、と仮定すると、誤差項を \epsilon_a = \epsilon_a \bigl( X_1 \bigr)と表現することができます。すると、式(1)の X_1での偏微分は、

 {
\displaystyle
\begin{eqnarray}
\frac{\partial Y}{\partial X_1} &=&  \alpha_1 + \frac{\partial \epsilon_a}{\partial X_1} \tag{1’} 
\end{eqnarray}
}

となることから、説明変数 X_1の目的変数 Yへ与える影響には誤差項が乗る、すなわち正確に X_1 Yへの寄与度を知ることができないことを意味しています。
 では、 X_1と相関のある説明変数; X_2をピックアップするとどうなるでしょうか(式(2))。この時、誤差項 \epsilon_bにはもう説明変数 X_1と相関を持つ変数が存在しないと仮定します。すると、式(2)の X_1での偏微分は、 \frac{\partial X_2}{\partial X_1} = 0であることを考慮すると、

 {
\displaystyle
\begin{eqnarray}
\frac{\partial Y}{\partial X_1} &=&  \alpha_1  \tag{2’} 
\end{eqnarray}
}

と表されます。式(2')を見ると、誤差項の影響なく、正確に X_1の影響を推定することができていることがわかります。
 つまり、変数を回帰式に入れることで、その変数の影響(変動)による介入(対象としている説明変数)の偏回帰係数の推定結果のばらつきを抑えることができる、これを『変数を固定(統制)する』と表現します。

Omitted Variable Bias

 ここでは、Omitted Variable Bias; OVB(脱落(欠落)変数バイアス)について考えます。OVBとは、先ほどの式(1)において、説明変数 X_1と相関のあるのだけれどモデルに入れられていない交絡因子 X_2のことです。つまり、説明変数 X_1の偏回帰係数を正しく推定するために必要であるにも関わらず、モデルから抜け落ちている交絡因子のことをOVBと呼びます。OVBは、観測できない交絡因子が存在する場合には必ず発生します。それに加えて、全ての交絡因子を観測できるケースはほとんど存在しないこと、セレクションバイアスを取り除くために必要な共変数を全て把握することが現実的に不可能であることを鑑みると、OVBの発生しない回帰分析はほぼあり得ない、と考えられます。
 しかも、OVBはバイアスの大きさを示しているものではありません。あくまで、その交絡因子が入っている場合と入っていない場合との、モデル間でのバイアスの変化を示すだけなので、どれくらいバイアスが残っているかという評価をすることができません。なので、分析者は建てた仮説をもとに、モデルに入っていない変数によるOVBが全て0になる(近づく)よう変数を選択する必要があります。

Conditional Independence Assumption

 次に、Conditional Independence Assumption; CIAについて考えます。これは、因果推論において基本となる考え方です。OVBが0になった時、介入 Zは目的変数 Y^{(0)}, Y^{(1)}とは独立しているという状況になり、これはつまり共変量が同一のサンプルにおいて、介入がランダムに振り分けられている状況とみなすことができます。このような状況を、CIAと呼び、以下のように表現されます。

 \{ Y_i^{(0)}, Y_i^{(1)} \} \perp Z_i | X_i

回帰モデルで推定された介入の効果が正しいかどうかを考える場合、CIAが満たされているかどうかを確認する必要があります(ボクの解釈ですが、CIAが満たされている時、擬似的/局所的にRCTが実施されている状況と近似することができるようになるため、その時の介入の効果は信頼性の高いものとなる、と考えることができるということです)。
 ただし、OVBの項目でも述べたとおり、残っているバイアスの量を評価することはできませんし、必要な交絡因子がデータから欠落している場合にも、その分のバイアスをモデルから取り除くことは困難です。そのため、それらを踏まえてもCIAを主張することができるかどうか、というのが因果推論を実施する上で大きなポイントになります。

Sensitivity Analysis

 手持ちのデータには含まれていない交絡因子がバイアスを発生させているかどうかを検証するための手法の一つに、Sensitivity Analysisがあります。Sensitivity Analysisは、分析者が重要だと認識している共変量以外の共変量をモデルから抜くことで、効果の推定値が大きく変動しないかどうかを確認する、という分析です。もしも変動が小さい場合、その共変量の回帰分析への影響は小さく、モデルから抜けていても影響が小さい(無視することができる)ことを表しています。

Post Treatment Bias

 介入の効果を検証したい時に、介入後に決定される介入の影響を受けた共変量(例えば、メール配信という介入に対するサイト来訪という共変量)を分析に入れてしまうことで起きるバイアスのことをPost Treatment Biasと呼びます。これは、どんな介入の割振り方をしても発生するバイアスであるため、介入云々ではなくそもそも分析に入れてはいけない共変量です。
 どの共変量がPost Treatment Biasの対象となるかについては、大まかには介入よりも後のタイミングで値が決まる変数と捉えておけば良いですが、判断は分析者の知識に依存します。

Multicollinearity

 これは多重共線性と呼ばれる現象です。マルチコ、なんて呼ばれたりもします。ちょっと前に、Twitter上で機械学習において多重共線性をどう取り扱うか、ということが結構話題になっていましたね。その、多重共線性です。  多重共線性とは、簡単にいうと、回帰モデルに組み込まれている説明変数間で強い相関を持つことです。回帰モデルは説明変数を増やすことで決定係数が高くなりがちなので、ホイホイと説明変数を追加してしまうと陥ってしまう可能性がある現象です。
 この多重共線性によって引き起こされる悪影響の例として、次のようなものがあります(参考:株式会社サイカ・ブログ)。

  • 分析結果における係数の標準誤差が大きくなる
  • t値が小さくなる
  • 決定係数が大きな値となる
  • 回帰係数の符号が本来なるべきものとは逆の符号となる

 多重共線性についてもう少し理解を深めるために、回帰分析で得られる推定値の分散について観察します。分散は、以下の式で得られます。

 {
\displaystyle
\begin{eqnarray}
\bar{x}_{k} = \frac{1}{N} \Sigma_{i=1}^{N} x_{k, i} \\
V[\hat{\beta}_{k}] = \frac{\sigma^2}{(1-R_k)\Sigma_{i=1}^{N} (x_{k, i} - \bar{x}_k)^2 }
\end{eqnarray}
}

 R_kは変数 kと多重共線性を起こしていると考えられる変数の相関を表しています。相関が強くなるにつれて分母が0に近づくため、分散が発散することがわかります。つまり、多重共線性は、分散が異常に大きくなり、推定されたパラメータの標準誤差が信頼できなくなることが最たる問題なのです。ただし、これは多重共線性を持つ変数間でのみ問題となります。どういうことかというと、もし知りたい(正しく推定したい)偏回帰係数が介入のそれだけである時、介入変数以外で生じている多重共線性は無視して良いということを意味しています。
 これは、回帰モデルをどのような目的で構築し、使用するかに依存しているため、必要に応じて対処する必要があります。なお、相関係数以外の多重共線性の指標としては、Variational Inflation Factor; VIFというものが知られています(wiki)。



回帰モデルを使用する際に知っておくべきこと

 共変量の選択方法とはまた違う観点から、本書で取り上げられている、回帰分析をする際に念頭に置いておくべきことを最後にまとめます。

Limited Dependent Variable

回帰分析を使用する理由が予測であり、モデルの予測性能や説明力を重視する場合には、目的変数 Yの分布に応じてモデルを選択する必要があります。例えば、

  •  Yが0 or 1(購入の有無) ... ロジスティック回帰
  •  Yが0以上のみ(購入金額)... ポアソン回帰

のような状況のことです。このように、目的変数 Yが特定の値しか取らないような制約がある状態制限被説明変数(Limited Dependent Variable)と呼びます。

 もし、効果に関心のある変数(つまり、介入 Z)が2値である場合、モデルを線形回帰で構築しても問題ありません( E[Y|Z=0 \propto E[Y|Z=0] ])が、介入 Zが連続値であり目的変数 Y非線形な関係を持つ場合には、線形回帰では効果の関数を無理やり線形で示すことになるため、妥当性の検証が必要になる、と言うことに注意する必要があります。

対数を用いた回帰分析

しばしば、説明変数や目的変数に対数を用いることがありますが、その場合の推定されたパラメータ(偏回帰係数)の解釈は以下の通りです。

  • 目的変数の対数を取る場合 ... 各説明変数が何%、 Yに対して影響を与えているか
  • 説明変数の対数を取る場合 ... 説明変数 Xを1%変化させたときに Yにどれくらい影響を与えるか

対数を取る目的は、(本書では)2通りに以下の絞られています。

  • 目的変数に対する介入の効果が比率で表されるべきであるとき(スケールの統一)
  • 共変量と目的変数の関係が比率で扱われるべきであるとき(比率が影響する共変量を取り扱う場合にはセレクションバイアスが発生する可能性がある)

なお、目的変数の分布を正規分布に近くするために対数化を実施するわけではないことに留意すべきです(この妥当性は、しばしば批判の対象になります)。

おわりに

 回帰分析を因果推論の目的のもとで使用するというこの考え方は、これまで近似としてのみ使用してきた身としてはかなり眼から鱗で、最初は何を言っているのかさっぱり理解できませんでした。ただ、深く読み、他の文献の情報も取り入れることでようやく理解しあえそうな気がしてきました。奥が深いですね。
 ただ、因果推論は非常に難しく、これを生業としている人ですらも未だに基本的な考え方について勉強し続けているような、とても深い分野です。この本ではさっくりと"実用"にのみフォーカスして説明しているため、情報としては不十分であることが多々あります(特に、本書では計量経済学を対象としているため、疫学や心理学等に適用したい場合には用語のすり合わせや基本的な考え方・価値観の違いを考慮する必要もあるため、他分野に使用する場合には十分注意してください)。
 それでも、こういった考え方を知っておくことは、物事の本質を見抜くためにはとても重要なことだと私は信じています。信じています。手法は古典的で、確立されている面も多いため、時間をかけてしっかり習得していきたいです。





最後にこの曲を聞いてお別れです。

偶然テレビで銀魂がやっており、そのEDテーマ。

去年解散してしまったので、すごく懐かしい気持ちになりました。

(せーのっ)

\\\ Destiny //

NEGOTO - Destiny