統計的因果推論 から、
CausalML まで走り抜けるスライド
前置き & 免責
● RCT から CausalML へ関連内容を追って辿ります
● DAG や 時系列 など、省略可なものは基本的に省略します
I. 統計的因果推論(ざっくり)
モチベーション - 因果効果を知りたい -
ある介入の有無による、
結果変数 (目的変数) への影響を知りたい
e.g.
商品のキャンペーンを実施した結果、
商品購入率へどのくらい寄与したか知りたい
因果の定義 - ルービンの反実仮想 -
結果変数Y は、潜在的に両方とも存在するとみなす
介入有り
e.g. クーポン配布
介入無し
観測
観測
欠測
欠測
処置群: z=1 対照群: z=0
すべてのパターンは観測できない
ただし、実際に観測できるのは片方だけ
介入有り
e.g. クーポン配布
介入無し
処置群: z=1 対照群: z=0
観測
観測
欠測
欠測
因果効果の定義 - 平均処置効果(ATE) -
● 平均処置効果を以下のように定義
観測
観測
欠測
欠測
の範囲
の範囲
処置群: z=1 対照群: z=0
観測できずに一部が欠測している
● 観測結果だけで計算した場合
観測
観測
欠測
欠測
の範囲
の範囲
処置群: z=1 対照群: z=0
推定が一致しないケース
このとき、2群間に偏りがあると、
真のATE と 観測結果の推定値 が一致しない可能性が出る
処置群
対照群
推定が一致しないケース
プログラム修了後に進学率を調査したところ、
処置群の方が進学率が高かった ⇒ プログラム実施の成果?
保護者の年収
e.g. 教育支援プログラムの効果検証
処置群と対照群の間に、Yに影響を与える偏りがある
⇒ 進学率の違いが、年収の効果 なのか プログラム効果 なのか分からない
保護者の年収
どう考えても、
進学率に影響する
年収の効果が統制されていない
何らかの対処 が必要
1. ランダム化比較試験(RCT)
処置群 と 対照群 をランダムに分配する
※ 年収以外の共変量になり得る変数も、介入有無と独立の関係にさせる
保護者の年収
2群の割り当てと
独立になっている
介入以外の影響を取り除く
上記が一致するので、
観測データ から 平均処置効果 を推定できる!
このとき、Yの平均 と 介入有無 が 独立 になり、
やったかッ!?
終われなかった
RCTが毎回できるとは限らない
● 費用の問題(実験デザインが必要)
● 倫理の問題
● 売上の問題
● 介入有無が先に決まる問題 ... etc
2. 線形回帰 - 交絡変数をコントロールする -
しかし、すべての共変量が統制できれば、
分布が偏っていても が推定できるはず!
解析した真のモデル:
線形モデリング難しすぎ問題
満たすべき仮定が多すぎる
● モデル式が正しい
● 推定した係数が正しい
● 誤差項が所定の分布
● 回帰関数が処置有無を問わず一致
● 誤差分布が処置有無を問わず一致 ...etc
まだ厳しい
3. 傾向スコア
⇒ IPW(逆確率重み付け)推定量をベースに進めます
2群の分布を疑似的にそろえるイメージ
● RCT未考慮のデータでも(比較的良く)推定できる
● とても大事な前提
共変量が所与のとき、割当z と 結果変数 が独立(強く無視できる割り当て)
傾向スコアの求め方
● 傾向スコアの定義
確率p にはロジスティック回帰が使われる例が多い
傾向スコアの逆数で、各サンプルに重み付けをする
IPW推定量を用いた手法
⇒ 重み付けで 処置群 と 対照群 の分布を近似させるイメージ
疑似的なRCTに帰着
強く無視できる割り当て が成立していれば、
傾向スコアで分布の偏りを解消し、疑似的なRCTとして扱える!
● が計算できる
● 処置効果の検定がしたい ⇒ z検定 など
● 信頼区間の推定がしたい ⇒ ブートストラップ法 など
やったかッ!?!!
終われなかった
● 強く無視できる割り当て が成立しないと詰む
未観測の重要な共変量があると、前提(結果変数と介入有無が独立)が崩れて推定できない
⇒ 教育支援プログラムの例で、年収不明かつ他変数で操作できないケース
● 各個人に対する処置効果 が出せない
平均ではなく、個人別の効果が知りたいときもある
● 特定のサンプルが過大評価されて分布を歪める
傾向スコアが高過ぎ or 低過ぎ のデータ(外れ値除去で一定なんとかなる)
II. 機械学習の導入
Uplift Modeling - 機械学習を利用する -
● 結局のところ細かい仮定は置いておいて、
各個人の介入有無による結果変数の差、
● 各個人への処置効果 を推定できる
傾向スコアの課題の内、
強く無視できる割り当て が要求される点は変わらず
原点にして頂点
が予測できれば良い
4. Uplift Modeling - Meta-Learner -
複数ステップで処置効果を予測する
e.g. Two Model Approach (T-Learner)
● 結果変数の予測モデルを、
介入有無別でそれぞれ学習
● 予測値の差を、処置効果と定義
出典)Kunzel et al. (2019)
T-Leaner の学習
観測データからモデルを直接学習しにいく
● で を学習し、
● で を学習する
● 線形モデリングのときと、
やりたいことはだいたい同じ
● モデルの精度が良ければ、
ブラックボックスであっても、
処置効果の予測は達成できる
観測
観測
欠測
欠測
範囲範囲
のの
5. Uplift Modeling - Uplift Tree (Uplift Decision Tree) -
● 下記指標(情報量)を最大化するように、ノードを分割する
出典)Rzepakowski and Jaroszewicz (2012)
Treeモデルをベースに、分割基準を変更する
情報量 (divergence) について
e.g. 結果変数が2値で、情報量(D)にユークリッド距離を選択した場合
対象ノード内のクラスi の確率(処置群のみで計算)
対象ノード内のクラスi の確率(対照群のみで計算)
結果変数Y の取り得る値 {0, 1}
● 情報量のイメージ
あるノード(葉)の中で、処置有無によるYの確率の差 を大きくしたい
出典)Rzepakowski and Jaroszewicz (2012)
不純度を減少 のイメージ(通常の決定木)
処置群
対照群
正例
負例
各ノード内において、
〇 か × に データが偏る ようにする
情報量を増加 のイメージ(今回のケース)
各ノード内において、
〇×別 で 群間の確率の差 を増やす
正例の確率 (処置群) と
正例の確率 (対照群) の差分、
負例の確率 (処置群) と
負例の確率 (対照群) の差分 が、
ノード内で増加してる
処置群
対照群
正例
負例
情報量の変化量
● 情報量の変化量を以下のように定義
ノードの分割候補
● 分割後の情報量は、各ノードへ割り当てられた割合で重み付けする
出典)Rzepakowski and Jaroszewicz (2012)
性能評価の指標: AUUC (Area Under the Uplift Curve)
● 予測スコア で降順ソート後、下記の式でプロット (ROC曲線と似てる)
● 曲線とx軸との面積 (AUUC) が大きいほど高性能と評価
※
最初の t 番目までの観測データで、
下記の差から、累積の平均処置効果を計算する
● 結果変数Y の平均 (処置群)
● 結果変数Y の平均 (対照群)
出典)Gutierrez and Gerardy (2016)
6. CausalML - 今回のゴール -
Uberが公開した因果推論向けOSS
Uplift Modeling の、前述した以下手法他を実装
● Meta-Learner
● Uplift Tree
GitHub:
https://github.com/uber/causalml
Uber のブログ記事:
https://eng.uber.com/causal-inference-at-uber/
III. 比較検証
傾向スコア と Uplift Modeling を比較検証
● 使用データ
岩波DS Vol.3 の クロスセクションデータ
https://github.com/iwanami-datascience/vol3/
● テーマ
ゲームアプリのテレビCMの視聴有無は、以下に影響するか?
● ゲームアプリの利用時間
● ゲームアプリの利用有無
使用データの変数
● 使用した変数(岩波DS Vol.3 に準拠)
属性 該当カラム(予想)
年齢 age
性別 sex
所得、月のお小遣い inc, pmoney
居住地 area_kanto, area_tokai, area_keihanshin
職業 job_dummy1 ..., job_dummy7
家族構成 marry_dummy, child_dummy
fam_str_dummy1 ..., fam_str_dummy4
TV視聴時間の日次平均 TVwatch_day
検証 1 - 1. アプリ利用時間
全件プロット(常用対数で変換)
処置有無別 アプリ利用時間のヒストグラム
● 対照群 (CM視聴無) の方が利用時間が長く(?) 、負の効果ように見える
左図から0を除外
検証 1 - 2. アプリ利用時間のATE
いずれの手法でも、分布の偏りが調整された(共変量が統制された)結果、
CM視聴は正の効果 と推定(予測)された
手法 平均処置効果(ATE) 備考
なし (RCT相当) -629.64 観測データから2群の差をそのまま計算
傾向スコア (IPW) 1503.92 岩波DS Vol.3 の再現
Uplift Modeling (CausalML) 808.30 XGBoost + T-Learner (Meta-Leaner)
Uplift Modeling (CausalML) 897.61 XGBoost + X-Learner (Meta-Leaner)
重回帰(OLS) ※参考 -354.94 adj. R-squared: 0.012,
CM視聴ダミー の p値: 0.389
重回帰で推定するには厳しそう
検証 2 - 1. アプリ利用有無
処置有無別 アプリ利用有無のグラフ
● 処置群の方が若干多いが、ほとんど変わらないように見える
検証 2 - 2. アプリ利用有無のATE
いずれの手法でも、分布の偏りが調整された(共変量が統制された)結果、
より大きく CM視聴は正の効果 と推定(予測)された
手法 平均処置効果(ATE) 備考
なし (RCT相当) 0.002 観測データから2群の差をそのまま計算
傾向スコア (IPW) 0.032 岩波DS Vol.3 の再現
Uplift Modeling (CausalML) 0.022 UpliftRandomForestClassifier +
KL divergence (Uplift Tree)
※ 各レコードの処置効果の全体平均
まとめ
● 傾向スコア や Uplift Modeling を利用することで、
一定の仮定の元で以下を考慮して因果推論ができる
● 「強く無視できる割り当て」相当が成立しないとき、
傾向スコア、Uplift Modeling ともに正しく推定(予測)できない
● 手法や使用した共変量などで予測値がばらつき、
真の効果が推定できるとは限らない点は、Uplift Modeling でも変わらない
● 2群の分布の偏り
● 各個体への処置効果の推定
参考文献
Kunzel et al.,(2019). Metalearners for estimating heterogeneous treatment effects using machine learning.
https://arxiv.org/abs/1706.03461v5
Rzepakowski and Jaroszewicz (2012). Decision trees for uplift modeling with single and multiple treatments.
https://core.ac.uk/download/pdf/81899141.pdf
Gutierrez and Gerardy (2016). Causal Inference and Uplift Modeling A review of the literature.
http://proceedings.mlr.press/v67/gutierrez17a/gutierrez17a.pdf
岩波データサイエンス刊行委員会編 (2016). 『岩波データサイエンス Vol.3』, 岩波書店
(サンプルデータ: https://github.com/iwanami-datascience/vol3/)
星野崇宏 (2009). 『調査観察データの統計科学: 因果推論・選択バイアス・データ融合』, 岩波書店
CausalML
https://github.com/uber/causalml

統計的因果推論からCausalMLまで走り抜けるスライド