文献読みメモ: Causal inference in economics and marketing(その1)

以下のペーパーを読みます。

Hal R. Varian. Causal inference in economics and marketing. Proceedings of the National Academy of Sciences, 113 (27) 7310-7315, 2016. https://www.pnas.org/content/113/27/7310
※ キャラクターは架空のものです。解釈の誤りは筆者に帰属します。お気付きの点がありましたらご指摘ください。
次回:まだ
f:id:cookie-box:20200101101603p:plain:w60

あらゆる因果分析のキモは「反実仮想」、つまり、「もしその処置がなされていなかったら何が起きていただろうかと推測すること」ですか。


冒頭の例は、以下のようなものですよね。
あるサーフィン映画のテレビ広告の効果を測ろうとして、一人当たり興行収入 y_c を一人当たり広告費 x_cy_c = b x_c + e_c と回帰しても、これは上手くいかない。なぜなら、ハワイ州でのデータを用いて広告の効果が b = 10 と推定されたとしても、ノースダコタ州では人々はハワイ州の人々ほどサーフィンに興味があるとは思えず、同じ効果を見込めるとは思えない。実際ノースダコタ州のデータで回帰すると b=0.1 になっている。これは「サーフィンへの興味」という説明変数が足りなかったのだ。
…うーん、なんだか、この例で「都市によって広告の効果 b の値が食い違った → 説明変数が足りなかったからだ!」といわれても、「都市によって広告の効果 b が違った → 本当に都市によって広告の効果は違うのだ」と思う方が自然ではないですか? 実際、「テレビ広告の効果」って在宅の主婦や高齢者が多く住んでいるかとか土地柄とかに左右されそうですし…まあどうでもいいですが…。
それで、じゃあどうして b が食い違ってしまうのか数式で考えると、b={\rm cov}(x, y)/{\rm cov}(x,x) なので…そうなんでしたっけ?

f:id:cookie-box:20200101101614p:plain:w60

そうだよ。厳密には、切片がないと考えた場合は以下の左下のスライドの通り  a = (X^\top X)^{-1} X^\top Y になるし(下のスライドでは ba になってるけど; X の定義は右下のスライドだけど説明変数が1次元なら X はデータの個数の長さの縦ベクトルだね)、切片 a_0 があると考えた場合は X にもう一列すべて1であるような2列目を補えばよくて、

 a = \left( \begin{array}{cc} X^\top X & \sum X_i \\ \sum X_i & N \end{array} \right)^{-1} \left( \begin{array}{c} X^\top Y \\ \sum Y_i \end{array} \right) = \displaystyle \frac{1}{N X^\top X - (\sum X_i )^2} \left( \begin{array}{cc} N & -\sum X_i \\ -\sum X_i & X^\top X \end{array} \right) \left( \begin{array}{c} X^\top Y \\ \sum Y_i \end{array} \right)
これの1つ目の成分が「傾き」だから、
 \displaystyle \frac{N X^\top Y - (\sum X_i )(\sum Y_i )}{N X^\top X - (\sum X_i )^2}
これは {\rm cov}(x, y)/{\rm cov}(x,x) に他ならないよね。それで、このペーパーでは切片を考えてないのに  b = (X^\top X)^{-1} X^\top Y じゃなくて b={\rm cov}(x, y)/{\rm cov}(x,x) になってるけど、これは xy も平均がゼロになるように中心化してるから後者が前者と同じなんだよね(だから切片を考えてないんだけど)。

f:id:cookie-box:20200101101603p:plain:w60

ああ、確かに b={\rm cov}(x, y)/{\rm cov}(x,x) ですね。それで、以下より、b にバイアスがないのは {\rm cov}(x, e) = 0 のときのみであると…。

 \displaystyle b = \frac{{\rm cov}(x, xb + e)}{{\rm cov}(x, x)} = \frac{{\rm cov}(x, xb)}{{\rm cov}(x, x)} + \frac{{\rm cov}(x, e)}{{\rm cov}(x, x)} = b +  \frac{{\rm cov}(x, e)}{{\rm cov}(x, x)}
{\rm cov}(x, e) = 0 はそもそも b を求めるときの仮定ですよね。ゼロであるとしたものをひねり出すこの式変形には違和感があるんですが…まあいいです。7310ページ左列の一番最後には因果推論のテキストでよくいわれるあれがかいてありますね。つまり、広告の打ち方に介入せず、単に広告費から売り上げを推測したいだけならさっきのシンプルな回帰でも構わない。しかし、いま知りたいのは「広告の打ち方を変化させたときに売り上げがどう変わるか」なのでそれではいけないということです。…そうですね、極端な話、配給会社は面白い映画にはその面白さの度合いだけ広告に熱を入れるかもしれません。そして、人々は面白い映画にはその面白さの度合いだけ映画館に足を運ぶかもしれません。このとき、広告費と興行収入は比例してみえますが、実は人々は配給会社が打った広告とは全く関係なく映画を見に行っていただけかもしれません。この場合、広告費を2倍にしたところで興行収入が2倍になるとは思えません。

f:id:cookie-box:20200101101614p:plain:w60

その「映画の面白さ」みたいに、広告費にも売り上げにも影響するのが交絡変数(confounding variable)だね。これが存在するから上辺の関係だけみていても効果を測ることはできない。

f:id:cookie-box:20200101101603p:plain:w60

そしてその問題は「人のふるまい」を分析するときにはいつもついてまわる…ですか。先の例だと、投じられる広告費はマーケティング担当の何らかの意思決定に基づくはずだが、アナリストはそれをわからず、意思決定時のファクターがエラーターム e_c になってしまう、だから x_ce_c が無関係でなくなってしまう、と。アナリストを雇ったのであればもう少しコミュニケーションしてくれませんかね…。しかし、現実にはマーケティング担当だって把握していない要素があるでしょうが…。ともあれ、通常は(マーケティング担当が incompetent でない限り)効果が出やすい広告の打ち方というのをしますから、本質的に交絡変数が存在するということですね。交絡変数が存在する例として、他にも以下が挙げられています。

コントロールできるものコントロールしたいもの
肥料の量農作物の収穫量
教育収入
健康管理収入
なんというか、2番目と3番目の「教育」や「健康管理」というのも曖昧ですが…これらは丸めていってしまえば、「『コントロールできるもの』をたくさん費やされるサンプルは、元々恵まれてるんじゃないの?(だから単純に回帰すると overstate になる)」という例ですよね。逆の例ってありませんか?

f:id:cookie-box:20200101101614p:plain:w60

あくまで例だけど、ある病院で、個々のお医者さんが手術した患者の生存率のデータがあるとする。でも、腕のいい人ほど重篤な患者さんを任されるかもしれない。だから、「お医者さんの腕のよさ」と「患者の生存率」は思ったほど正の相関をもたないかもしれないし、下手すると相関が負になってくるかもしれない、みたいなのはどうかな。

f:id:cookie-box:20200101101603p:plain:w60

なるほど。「運転しない人ほど事故を起こさない」「コードをかかない人ほどバグを出さない」ってやつですね?

f:id:cookie-box:20200101101614p:plain:w60

そこまでいってないよ!?

f:id:cookie-box:20200101101603p:plain:w60

先の例の後に、ラテン語のフレーズが含まれた文が出てきますね。

"We want an answer to a ceteris paribus question, but our data were generated mutatis mutandis."
他の事情が同じ条件での処置の効果を測りたいのに、実データにおいては処置にしかるべき調整が加えられている、という意味でしょうが、この文章は英語がわかる人には小気味よい文章なんでしょうか? わかりません。それで、この続きでは、まず因果効果を測る黄金の方法としての controlled experiments を紹介しますが、これは現実的ではないので、経済学で観測データから因果効果を推定するのに用いられる以下の4つの手法を紹介するということですね。
  1. natural experiments
  2. instrumental variables
  3. regression discontinuity
  4. difference in differences
…話が長くて面倒なので Difference in Differences の節までとぶと、ここでは下の表のような状況で、キャンペーンの効果 y_{TA} - y_{TF} を測りたいのですね。ここで y_{TF} は、「キャンペーンを受けた処理群がキャンペーンを受けなかった世界線での、キャンペーン後の時点での値」とでもいえばいいでしょうか。
キャンペーン前キャンペーン後
対照群 y_{CB} y_{CA}
処理群 y_{TB} y_{TF}(観測不可)
 y_{TA}
それで、ここでは y_{TF} - y_{TB} = y_{CA} - y_{CB} という仮定を置きます。処理群の人たちがもしキャンペーンを受けなかったとしたら、変化は対照群の人たちと同じであったはずだ、という仮定ですね。これが正しい状況かは慎重に判断しないといけませんが…。ただ、その仮定さえ認めれば、キャンペーンの効果は y_{TA} - y_{TF} = y_{TA} - y_{TB} - (y_{CA} - y_{CB}) と、観測データのみから計算することができます。何のことはない、処理群の成長度から対照群の成長度を差し引いただけですね。だから「差の差」というわけです。変化の大きさではなく変化率が同じであったという仮定 y_{TF}/y_{TB} = y_{CA}/y_{CB} を置いてもいいです。その場合、キャンペーンの効果は y_{TA}/y_{TF} = (y_{TA}/y_{TB})/(y_{CA}/y_{CB}) になりますね。処理群の成長率を対照群の成長率で割ることになります。…しかし、何か共変量 x_{td} があるなら、 y_{TF} の推定に機械学習的な手法を用いるとよいかもしれないというような提案がありますね。対照群でモデルを学習して処理群に適用すればよいと。

(その2があれば)つづく