医療職からデータサイエンティストへ

統計学、機械学習に関する記事をまとめています。

因果推論の基本事項〜広告をみたから商品を買ったのか?それとも....〜

ビジネスの世界で、ある事象に関する原因と結果の因果関係を推論することはとても重要な要素です。最近では機械学習手法に多くの注目が集まっており、予測さえできればそれで良いと思うかもしれません。

しかし!

原因と結果の関係性を正しく推定し仮説を導くことは、今後重要性を増してくるでしょう。AIブームが一巡しつつありますが、機械学習と因果推論の組みわせに関する研究も出てきているようですので、次にくるのは因果推論ではないかと勝手に思っています。

今回はそんな因果推論に関する基本的な事項を書いていきます。

因果推論の重要性

ビジネスの現場で因果推論が必要な場合を考えてみましょう。

あなたは、商品の広告をどうしたら効率よく消費者に届けることができるかを考えなければなりません。そこで、過去に蓄積されたデータを集めて、どこにどんな広告を出したら商品が売れたのかを調べることにしました。

すると、どうやらある商品Xに関してはスマホサイトから買う人が多いようです。あなたは、商品Aを売るためにはスマホに広告を流すことが効率の良い方法であると上司に報告しました。

しかし、本当にそうでしょうか?

こんな問題に対しては、因果推論テクニックがとても役に立ちます。まずは、因果の推定に必要な基本事項をおさえていきましょう。

因果推論の基本事項

交絡因子と見せかけの因果

先ほどの広告問題に対して、スマホに広告を出せば売れると短絡的に考えるのは慌てん坊のすることです。

例えば、その商品Xが比較的若い人がよく買う商品であった場合、スマホの広告をみたから買ったのではなく、そもそも商品Xをよく買う若者が買い物をするツールがスマホであった可能性もあります。

これでは広告の有無が商品の購入に影響を与えているのかはわかりません。概念図にまとめると以下のようになります。

因果推論

つまり、年齢が若いほどスマホの広告をよく目にする機会が多く、商品Xを買うことも多いため、一見するとスマホの広告と商品の購入に因果関係を見出してしまいます。この年齢という変数を交絡因子と呼びます。

有名な交絡因子の例え話に、薄毛の人ほど年収が高い、それじゃあみんな薄毛になろうという話があります。

これはスマホ問題と同じように年齢という変数が交絡因子として存在するため、年齢が高いほど年収が高く、かつ薄毛になりやすいため、薄毛と年収に見せかけの因果が見えてしまうのです。

因果と相関は別ですよとは、よく耳にする話ですね。

反事実(Counterfuctual)と根本的問題

さて、それではスマホ広告の効果と商品購入の因果関係はどのように調べれば良いでしょうか?

一番確実なのは、クローン技術を使う、もしくはタイムマシンですね。

例えば田中さんのクローンを作って、田中Aさんにはスマホ広告を配信、もう一方の田中Bさんには配信しない、として、田中Aさんが商品を購入し、田中Bさんが商品を購入しなければ、広告に効果があったと言えます。

もしくは、田中さんに広告を配信して商品購入の有無を確認し、タイムマシンで過去に戻った後、今度は広告を配信せずに商品購入の有無を確認して、調べることもできそうです。これで問題解決です。

とはなりませんね。これは現実的に不可能です。田中さんに広告を配信すれば、配信しなかった田中さんの購買行動を観察することはできません。つまり、現実的にはデータから正確な因果推論をすることは不可能なのです。これを根本的問題といい、広告配信した場合の広告配信しなかった場合のことを反事実(Counterfuctual)と言います。

無作為化介入と観察データ

それでは、スマホ広告の効果を調べる方法はないのでしょうか?お手上げでしょうか?

そんなことはありません。実は、このスマホ問題を調べる方法には大きく分けて二つの方法があります。

一つは観察されたデータを使うことです。すでに蓄積されたデータからスマホの広告が配信された人とされていない人の2グループを特定し、その2グループの間で商品Xの購入率に差があるかどうかを調べる方法です。

しかし、ここにも問題があります。広告が配信された人とそうではない人で特性が違った場合に、交絡因子によって見せかけの因果関係が出てしまう可能性があるということです。

都会の女子大生には多くの広告が配信されていたけれど、地方のおじさんたちには広告があまり配信されていなかった、などという場合です。これではどの要因が購入率に影響しているのか分かりません。

因果推論

もう一つの方法として、無作為化介入というものがあります。一般的にはABテストやランダム化試験と呼ばれるものですね。 これは、広告を配信するグループとしないグループを無作為に割り当て、購買率に違いがあるかどうか調べる方法です。

この方法を使えば、年齢や性別、居住地、性格などなど全てがランダムに2グループに分かれ、違いはスマホの広告配信の有無のみであるため、購買率に違いが出ればそれは広告の効果であると推測できます。

因果推論

実は根本的問題がある現実世界では、この無作為化介入がもっとも妥当性の高いデータを得ることができる因果推論テクニックなのです。詳しくは後述します。

観察データが必要な理由

じゃあ、因果推論にはなんでも無作為化すればいいじゃんと、思われるかもしれませんが、そういう訳にも行きません。例えば、介入にはとてもコストがかかるためランダムに割り当てて検証することができないと言った場合には、無作為化介入を行うことができません。

他には倫理的に問題がある場合などです。タバコと肺がんの因果を推論するためにタバコを吸わせる群とそうではない群に分けて長期間観察するなんてことはできません。

一方で観察データであれば、自然発生的に得られるデータのため、入手がしやすく、たくさんのデータを集めることができます。

このように無作為化には様々な制約がありますが、観察データであれば比較的容易に入手できるため、観察データを使った因果推論に関して様々なテクニックが開発されています。特に近年のビックデータはまさに観察データであり、そこから原因と結果を推察できればとても大きなメリットですよね。

因果推論に必要な前提条件

さて、ここからはもう少し詳しく因果推論に必要な前提条件を紹介していきます。少し細かい話になるので、補足的にお読み頂ければと思いますが、今後においても重要な概念になりますのでお付き合い頂ければ幸いです。

交換可能性(Exchangeability)

交換可能性(Exchangeability)とは、現実と反事実の条件を交換しても、結果が同じであることが期待されることを意味します。

具体的な式で見てみましょう。交換可能性とは以下のような条件が成り立つことを意味します。

因果推論

Eは期待値を表し、  購買あり^{広告あり}は、広告を配信した場合の購買率、 |\,広告あり は条件付き確率を表します。

つまり、 E\left[ 購買あり^{広告あり}\,|\,広告あり \right]は、広告を配信した人たちの中で、広告を配信した場合の購買率と解釈でき、これは現実です。

逆にイコールで結ばれた反対側は、広告を配信しなかった人たちの中で広告を配信した場合の購買率と解釈でき、こちらは反事実です。

これの意味するところは、現実世界で広告配信をした人たちの購買率と、仮に広告配信をしなかった人たちに広告を配信した場合の購買率が同じになることが期待される場合に、交換可能性が成り立つという意味です。

この条件は逆の場合も成り立つ必要があります。

 E\left[ 購買あり^{広告なし}\,|\,広告なし\right] =   E\left[ 購買あり^{広告なし}\,|\,広告あり\right]

例えばクローン人間田中さんであれば、田中Aさんに広告を配信した場合の購買行動と、田中Bさんに広告を配信した購買行動は同じであることが期待されます。この場合では、田中AさんとBさんは交換可能性が成り立ちます。

しかし、女子大生とおっさんではそうはいきません。”全身脱毛今ならお得!”という広告配信を女子大生にする場合とおっさんにする場合で、購買結果が同じになることはあり得ません。このような場合は、交換可能性が成り立っていません。

因果推論をする上では、交換可能性が成り立っている場合のみ、原因と結果を推論することができるのです。

それでは、無作為化介入の場合はどうでしょうか?無作為化介入の場合には、広告配信の有無と関係なく、その人の年齢や性別などの属性はランダムに割り振られます。

そのため、広告配信があったグループAと配信のなかったグループBを入れ替えても同様の購買結果になることが期待され、交換可能性が成り立つので、因果関係を推論することができます。これがクローン作成もタイムマシンもない現実世界において、無作為化介入が妥当とされる理由になります。

-----4/6追記------

一貫性(Consistency)

次の前提条件を一貫性(Consistency)です。一貫性とは介入が与える影響が全て同じであることを意味します。

式で見てみるとこんな感じです。

 E\left[ 購買あり^{広告あり}\,|\,広告あり\right] =   E\left[ 購買あり\,|\,広告あり\right]

この式の意味するところは、広告配信をした場合に期待される購買率は、実際に広告を配信した場合の購買率に等しいという意味です。

すごく当たり前のことを言っているようにも聞こえますが、この前提が成り立たない場合があります。それは、異なる広告を配信した場合です。

例えば、ものすごくキャッチーな広告を配信した場合とダサい広告を配信した場合では、同じ介入群の中でも購買率に違いが出る可能性があります。

この場合は、交換可能性が成り立っていたとしても、一貫性が成り立たないため、因果を推論することができません。ただし、全く同じ介入ができていなくても、介入による効果に一貫性があるという前提に自信があれば問題ありません。

観察データの場合も同様に、原因となる事象が結果に対して同じ影響を及ぼすことが期待される時のみ一貫性が成り立ちます。

(ちなみに一貫性が成り立たない介入のことをmultiple versions of treatmentと言います。直訳すると介入複数バージョンですね。)

Positivity

これの日本語直訳は"陽性"となるのですが、かっちょ悪いのでPositivityとしておきます。この前提条件は、因果関係を比較したい全ての群が0ではないことを意味しています。

無作為介入の場合には気にしなくて良いのですが、観察データの場合はPositivityが成り立たない場合があります。それは、原因となる事象に当てはまる人が全て同じ群になってしまう場合です。広告を配信した人のデータしかない場合ですね。

この場合は広告を配信していない人のデータがないため、広告と購買の因果関係を推論することができません。

よく考えると当たり前ですが、例えば、時系列的に広告を配信する前と後で購買率に差があったと聞くと一見広告効果があったように聞こえます。

しかし、広告配信前と後で交換可能性が成り立つという自信があれば問題ありませんが、そもそも景気やその他の影響によって購買率が上がった可能性もあり、やはり広告配信なしのデータが必要になります。

観察データの場合はPositivityも確認しましょう。

-----追記終わり------

まとめ

データは直感的に判断してしまうと誤った解釈になりかねません。因果関係の正確な推定が不可能な現実世界において、原因と結果を議論するには因果推論のテクニックが必要不可欠です。

今回は本当に基本的な事項のみまとめたので、次回からはさらにつっこんだ因果推論テクニックについてまとめていきます。

※本記事は筆者が個人的に学んだことをまとめた記事なります。数学の記法や詳細な理論、筆者の勘違い等で誤りがあった際はご指摘頂けると幸いです。

参考

ハバード大学が無料で公開している因果推論に関するテキストです。RやPythonのコードもあり、これが無料で読めるとは本当にすごいです。本記事の内容もこちらを参考にしています。

https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/

因果推論に関して、おそらく日本で一分かりやすく、しかも丁寧に解説されているブログです。大変参考にさせて頂いてます。

データから因果関係をどう導く?:統計的因果推論の基本、「反事実モデル」をゼロから - Unboundedly

日本語の書籍としては以下の2冊がオススメです。少し難解な部分もありますが、読み応えのある内容になってます。

調査観察データの統計科学―因果推論・選択バイアス・データ融合 (シリーズ確率と情報の科学)

調査観察データの統計科学―因果推論・選択バイアス・データ融合 (シリーズ確率と情報の科学)

統計的因果推論―回帰分析の新しい枠組み (シリーズ・予測と発見の科学)

統計的因果推論―回帰分析の新しい枠組み (シリーズ・予測と発見の科学)