因果推論の考え方

この記事は Monoxer Advent Calendar 2024 23日目の記事です。

はじめに

モノグサでData Scientistをやっている力徳と申します。

モノグサには、今年の8月からjoinしていますが、その前の会社では、R&D Engineer、Data Engineer、Data Scientist、ML Engineer、NLP Engineerとしてたくさん(笑)の会社で働いておりました。

簡単にいうと、データ分析に関わる雑用係をいろんな会社でやっていました(笑)

そのときに、biz系組織の方々からよく要望としてもらっていたのが

  • KPIを押し上げる”ドライバー”を見つけたい!
  • データから"ビジネスインサイト"を抽出したい!
  • 施策の効果を検証したい!

などです。

これはだいたいどこの会社でも言われてました。これらの問題はKPIのような目的変数と因果関係がある"変数"を見つける、もしくは、その因果関係を推定する問題として捉えることができ、因果推論と呼ばれるデータサイエンスのテクニックを適用することができます。

今回は、この因果推論についてうす〜く解説したいと思います。

相関と因果の違い

まず、相関と因果は異なるという話を聞いたことがある方は多いのではないでしょうか? 下の図はその説明によく利用される 国別の「1人当たり年間チョコレート消費量と人口10万人当たりのノーベル賞受賞者」の関係性を示した散布図です。

縦軸が人口10万人当たりのノーベル賞受賞者、横軸が1人当たり年間チョコレート消費量を表しています。この散布図からチョコレートの消費量とノーベル賞受賞者数には相関があり、さらにそれはチョコレートの成分が脳に良い影響を及ぼしているからだという仮説を 参考情報[1]の不定期メモでは主張していたようです。

しかし、[2]の解説記事でも紹介されているように、チョコレートをたくさん食べるとその効果として頭がよくなり国のノーベル賞受賞者数が増加する、つまり、チョコレートの消費量とノーベル賞受賞者数には原因と結果の関係、因果関係があるというのは考えづらく、それぞれの量に共通する影響因子(交絡因子)がある、つまり疑似相関の可能性が高そうだと考えられます。

直感的にはそれっぽいですが、この相関と因果の違いをきちんと判別するフレームワークはあるでしょうか? このフレームワークが因果推論と呼ばれる統計学の1分野です。相関や相関係数なども統計学で曖昧性なく定義されているように、因果効果も統計学の言葉で定義することができます。

因果効果の定義

ルービンによる因果モデルにおいて、ある対象者 $i$に対する(潜在的)結果変数 $y_i$へのある処置$z$の因果効果は、それぞれの場合の結果変数の差として表現されます。

$$ y_{i, z=1} - y_{i, z=0} $$

ここで、$z=1$は因果の原因となるある処置を施した場合を表し、$z=0$は処置を施さなかった場合を表します。

処置を施されたグループは処置群(Treatment Group)、施されなかったグループは対照群(Control Group)と呼ばれます。ここで注意するのは、必ずしもこの比較が同一対象に対して全く同じ条件でできないということです。 例えば、ガンの治療薬のある患者への効果の因果関係を確かめるために、同じ患者$i$に治療薬を投薬した場合と、しなかった場合を比較することはできません。

ある勉強方法と学力向上の因果関係を推定するために、同じ学生$i$に対して、その勉強法を試した場合と試さなかった場合を同時に比較することはできません。

このようなどちらか片方の処置が実現され、他方の処置が実現されない場合には上の因果効果はどのように評価したらよいでしょうか?

答えは,1個人、1対象の因果効果を測定するのではなく、公平に選別された多人数からなる処置群と対照群での平均をもって因果効果の推定値とすることです。

$$ E(y_{z=1}) - E(y_{z=0}) $$

ここで、$E$は処置群、対照群それぞれの結果変数の平均(期待値)を表します。

これは、50%/50%で完全にランダムに分割されたユーザーに対するAB testであり、Webサービスなどの施策の効果検証によく使われている手法です。

AB testによる効果の検証が施策の結果への因果を推論と同等であることがわかると思います。

では、AB test、ランダムに処置群と対照群に割り当てて比較することが難しい場合、もしくは、完全にはランダムに割り当てていることが保証できない場合はどうすればよいでしょうか?

医学、教育の分野では倫理的な理由などから完全にランダムなAB testを実施することが難しい場合が多々あります。 また、AB testとして完全に計画されてない設定で得られた観察データからある処置効果の因果効果を推定したい場合があります。

この場合に使用できるテクニックの1つが傾向スコアとIPW推定量です。

傾向スコア、IPW推定量

傾向スコア、IPW(Inverse Probability Weighting)推定量による因果の推論は、大雑把にいうと"仮想的"なAB testを実施することと言えます。

そもそも、因果効果とは

  1. ある同一対象に対して処置を施す場合と施さない場合でその結果の差として因果を定義できます。
  2. それができない場合、完全にランダムに分けられた処置群、対照群の平均の差として因果効果を推論します。

2.のAB testでは対象を完全にランダムに分けることで、それぞれの対象のグループは特性的に偏っているとは考えらないと状態になっています。十分なサイズがあれば、処置群と対照群には"同じ"ような特性を持った対象がいて、その”同じ”ような特性を持ったペア同士の結果の差として効果を推定していたわけです。

2.のAB test, 完全にランダムに処置群と対照群に分けられない場合は、同じように”似た”対象を特定し、その”似ている”者同士で結果の差を推定、因果推論を行います。対象が処置群に割り当てられる確率を”傾向スコア”といい、この傾向スコアを使って、公平に結果の差の平均を推定する方法が IPW推定による因果推論です。

傾向スコア

対象$i$の共変量を $\boldsymbol{x}_i=(x_1, x_2,\cdots, x_k)$とし, $z_i$を処置の割り付け変数, $y_i$を結果変数とします。共変量というのは対象$i$の特徴、特性を示すもので、機械学習の文脈では特徴量、素性、説明変数と呼ばれるものです。例えば、あるサービスのユーザーの年齢、性別などのデモグラフィック情報や利用履歴情報だったりします。

AB testの様に、ランダムに分けられているわけではない処置群と対照群の$n$個のデータ $D$ がある場合

$$ D = \left\{ (y_i, z_i, \boldsymbol{x}_{i}) \mid i = 1, 2, \cdots, n \right\} $$

傾向スコア$e_i$は対象 $i$ の割り付け変数 $z=1$への割り付け確率 $$ e_i = P(z=1|\boldsymbol{x_i}) $$ として定義されます。データ$D$があるのでロジスティク回帰のような確率出力できる2値分類器により容易に推定することができます。

傾向スコアを使う理由の”お気持ち”はどのようなものでしょうか。今の場合処置群と対照群がランダムに割り当てられているわけではなく、単純に各群の結果変数の平均の差を取った場合”偏り”がある可能性があります。この”偏り”を補正する目的で傾向スコアが導入されました。

”強く無視できる割当条件”と呼ばれるある条件を処置群、対照群が満たしている場合、因果効果はIPW推定量と呼ばれる 傾向スコア $e_i$による重み付け推定値で推定できます。

因果効果のIPW推定量

IPW(Inverse Probability Weighting)推定量もRubinによる導入されました。前節からの説明と同じく、因果効果は以下のように"公平"な結果変数の差(の平均)として定義されます:

$$ y_{z=1} - y_{z=0} $$

AB testの場合はランダムに2群に分けてられるので”公平”性が満たされているので平均の差がそのまま因果効果を示していました。 偏りのありえる場合では傾向スコア$e_i$(の逆数)で重み付けすることでこの偏りを調整することができます。

$$ \begin{aligned} \widehat{E}(y_{z=1}) &= \frac{\sum_{i=1}^n \frac{z_i y_i}{e_i}}{\sum_{i=1}^n \frac{z_i}{e_i}}, \\ \widehat{E}(y_{z=0}) &= \frac{\sum_{i=1}^n \frac{(1-z_i) y_i}{1-e_i}}{\sum_{i=1}^n \frac{(1-z_i)}{1-e_i}} \end{aligned} $$

として傾向スコアで重み付け平均 $\widehat{E}(y_{z=1,0})$を使って形式的にはAB testの場合と同じ様に

$$ \widehat{E}(y_{z=1}) - \widehat{E}(y_{z=0}) $$

として、"強く無視できる割り付け"条件を満たしいる場合には因果効果を推定できます。

傾向スコアによるIPW推定量から因果フォレストへ

因果効果を推定する場合

  1. AB testを実行し、結果の平均の差で判定する
  2. AB testのようにランダムに2群を分けることが困難な場合は、傾向スコアによる重み付き平均の差で判定する

の2つを利用することができました。フレームワークとしては決まっており容易に因果推論を行うことができます。 ただし、2.の傾向スコアを用いて因果効果の推定をする場合は、傾向スコア推定の性能に大きく依存している問題があります。つまり、傾向スコアの推定値の信頼性が大きくない場合は因果効果の推定の信頼性も低くなる可能性があります。また、その影響度合いもはっきりとはわかってない状況です。また、最終的な推定値を得るために、独立な傾向スコアの推定と因果効果の推定の2段階の推定を行っていることも好ましい方法でないとも考えられます。

このような背景のもとで、最近、機械学習の手法をベースにした因果効果の推定手法が開発されました。それが決定木やランダムフォレストをベースにした因果ツリー、因果フォレストです。参考情報[5],[6],[7]

これら決定木ベースの因果推論手法は傾向スコアを用いる手法に比べて以下の優位性を持っています。

  1. 因果効果の推論用に通常の決定木、ランダムフォレストとほぼ同じ学習で推論器を構築できる。
  2. 得られた因果ツリー、因果フォレストは統計的に好ましい性質を持っていることが(ある条件のもとで)数学的に証明されている。
  3. この因果ツリー、因果フォレストを使って、全体としての処置の因果効果の推定はもちろん、各対象に対して影響を個別に推定できる。(異質処置効果の推定)

特に2.の統計的に好ましい性質(漸近正規性とそれに基づく信頼区間の推定)は実用上有益であり、傾向スコアが持っていなかった特性です。

また、統計的機械学習分野では1つのブレークスルーとして評価されていて、今後の学術上の発展と、実ビジネスへの応用も期待されています。

最後に

今回、因果推論の考え方を傾向スコアとそのIPW推定量といっしょにうす〜く解説しました。また、最新の因果推論の技術である因果ツリー、因果フォレストについてもこれまたうす〜く紹介しました。

この因果フォレストについては1、2年前から知っており、その漸近正規性の証明をぜひ理解したいと思っていました。今回のアドベントカレンダーの記事の執筆の話があって、真っ先に思い浮かんだテーマがこの因果フォレストでした。一ヶ月くらいあれば、証明の理解ができるだろうと踏んでいたのですが。。。。その証明が難解すぎて、このようなうす〜い紹介になってしまいました。

モノグサではデータドリブンな物事の進め方は普通になっており、AB testによる効果検証や学力の向上の効果の推定などにもデータ分析の手法、考え方が広く利用されています。

このような、データサイエンティストには夢のような環境であるモノグサ株式会社では 一緒に働く仲間を募集しています。私に因果フォレストの漸近正規性の証明を教えてくださる方お待ちしています!

参考情報

  1. Messerli FH. Chocolate consumption, cognitive function, and Nobel laureates. N Engl J Med. 2012 Oct 18;367(16):1562-4. doi: 10.1056/NEJMon1211064. Epub 2012 Oct 10. PMID: 23050509.
  2. チョコレートを食べると ノーベル賞がもらえるか?
  3. 統計的因果探索 (機械学習プロフェッショナルシリーズ)
  4. 調査観察データの統計科学: 因果推論・選択バイアス・データ融合 (シリーズ確率と情報の科学)
  5. Estimation and Inference of Heterogeneous Treatment Effects using Random Forests
  6. ランダムフォレストによる因果推論と最近の展開
  7. EconML

qiita.com

careers.monoxer.com