Pro Yearly is on sale from $80 to $50! »

Introduction to Causal Inference

Introduction to Causal Inference

第10回 意思決定のためのデータ分析勉強会 online の登壇資料です、以前にも同様な資料をあげていますが、こちらは範囲を絞ってより平易にしたものです。

https://ishikettei.connpass.com/event/176578/

8fa31051503b09846584c49cd53d2f80?s=128

Asei Sugiyama

June 20, 2020
Tweet

Transcript

  1. Introduction to Causal Inference Asei Sugiyama

  2. 要旨 統計的因果推論では、介⼊を⾏ったときのアウトカムと⾏わなかったと きのアウトカムの差である介⼊効果を扱う ⽋損値となっている観測できなかったアウトカムをうまく扱うことで、 平均的な介⼊効果の算出ができる アップリフトモデリングでは、機械学習を⽤いて⽋損値を補完すること で平均的な介⼊効果の算出を⾏う 複雑な⼿法を使うと応⽤範囲が広がるが、問題設定、データ処理、結果 の解釈の妥当性を⽰すことが困難になる

  3. ⾃⼰紹介 杉⼭ 阿聖 Software Engineer @ Repro AI Labs 機械学習基盤の設計構築

    統計的因果推論の検証 TensorFlow User Group TFX : Issue ⽴てたり PR ⽴てたり docs-l10n : 翻訳 & レビュー 機械学習図鑑 共著
  4. ⽬的 データから意思決定を⾏う際に注意すべき選択バイアスと、それに統計 的因果推論の枠組みで機械学習を⽤いて、正しく意思決定を⾏うための アルゴリズムについて紹介します

  5. TOC . 統計的因果推論で扱う問題 <- . 機械学習の統計的因果推論への応⽤ . 実務で直⾯している課題 . まとめ

  6. 統計的因果推論で扱う問題 例 1. マーケターの業務における仮説⽴案 例 2. 広告メールの効果測定 問題設定

  7. 例 1. マーケターの業務における仮説⽴案 マーケターはライトユーザーに「真実の瞬間」を体験してもらうこと で、⾃サービスのヘビーユーザーになってほしい ライトユーザーとヘビーユーザーの過去の⾏動履歴を収集する ヘビーユーザーのみが⾏っていて、ライトユーザーが⾏っていない⾏動 を特定する ユーザーの⾏動に関する仮説⽴案を⾏い、ライトユーザーにその⾏動を 促すような施策の検討を⾏う

    施策の効果を A/B テストで検証すると、効果が出たり、効果が出なかっ たりする
  8. 例 2. メール施策の効果測定 メール施策の効果があるかどうか、A/B テストを⾏って確かめたい そのアプリはメールアドレスの登録が必須ではなく、メールで通知を受 け取りたいヘビーユーザーのみがメールアドレスを登録している このときに、メール施策の効果検証を次のような A/B テストで⾏いたい

    介⼊群: アプリユーザーのうち、メールを送信したユーザー群 対照群: アプリユーザーのうち、メールを送信しないユーザー群 介⼊群の結果が有意に良かったとして、これは効果があったのだろう か?それとも、ヘビーユーザーの傾向を⾒ているだけだろうか?
  9. 問題設定 (1/5) 何かの検証を⾏った結果、次のようなデータが⼿に⼊ったものとする id( ) 共変量 ( ) 介⼊変数 (

    ) アウトカム( ) このようなデータから介⼊を⾏ったときの効果を知りたい i X Z Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  10. 問題設定 (2/5) 本質的に知りたいものは 番⽬のユーザーに対して介⼊を⾏ったときの アウトカム と介⼊を⾏わなかったときのアウトカム の差 なので次のようなデータが必要 ( はなくても良い)

    id( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) i Yi1 Yi0 Y − i1 Yi0 Z i X Z Y0 Y1 1 X1 Z1 Y10 Y11 ⋮ ⋮ ⋮ ⋮ ⋮ N XN ZN YN 0 YN 1
  11. 問題設定 (3/5) 下記のデータのうち、アウトカム と を同時に知ることはできな いので、アウトカムは半分程度が⽋損した状態になっている id( ) 共変量 (

    ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) null null Yi0 Yi1 i X Z Y0 Y1 1 X1 Z = 1 0 Y10 2 X2 Z = 2 1 Y11 ⋮ ⋮ ⋮ ⋮ ⋮
  12. 問題設定 (4/5) ⽋損していたとしても、⽋損 が等しくランダムに起こって いるのなら、介⼊効果の期待 値 はわかる (⽋損していない , で

    平均を取り、差を計算すれば 良い) A/B テストはこの状況 E[Y − i1 Y ] i0 Yi0 Yi1
  13. 問題設定 (5/5) , の⽋損が共変量 によって偏りがある場合に は、平均を取ると選択バイア スが⽣じてしまう この状況下で介⼊効果である ATE や

    CATE を推定したい Yi0 Yi1 X E[Y − 1 Y ] 0 E[Y − 1 Y ∣X = 0 x]
  14. 最近 Twitter で⾒かけた例 https://twitter.com/we sternpalace/status/12 72754555990601729

  15. 因果関係が無条件にわかるわけではない 問題設定からわかるように、介⼊がアウトカムに与えるメカニズムにつ いて説明を⾏うわけではない 介⼊を⾏ったことがアウトカムに影響を与えるメカニズムについては、 ⼈⼿で理論を構築する必要がある あくまで今知りたいのは次の 2 つ . ATE

    (Average Treatment Effect) . CATE (Conditional ATE) E[Y − 1 Y ] 0 E[Y − 1 Y ∣X = 0 x]
  16. 前提条件 A/B テストができないケースを想定する 例 1. 過去のデータだけで考えなければいけない 例 2. A/B テストのコストを⽀払えない

    A/B テストができるケースでは⾏えば良い マーケターの例は 例 1. に相当 例 2. は公共施策 (電気料⾦や税⾦) のように影響範囲の⼤きなものや、 がん患者への新療法の治験のように、重篤だからといって何もしないわ けには⾏かないものが相当する
  17. 今⽇は話さないこと 傾向スコア を導⼊する 傾向スコアマッチング : 傾向スコアを⽤いて、⽋損が等しくランダムに ⽋損した状態になるようにデータの件数を削って揃える IPW : 傾向スコアを⽤いて、⽋損ができるだけ等しくランダムに⽋損し

    た状態になるようにデータの件数を重み付け平均を⽤いて⽔増しして揃 える (ウェイトバック) 詳しくは 岩波 DS vol.3 を参照 e(x) = P (Z = 1∣X = x)
  18. まとめ 統計的因果推論では、介⼊によるアウトカムの変化量を知りたい 直接にはわからないので、平均である ATE や CATE を推定する id( ) 共変量

    ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) null null i X Z Y0 Y1 1 X1 Z = 1 0 Y10 2 X2 Z = 2 1 Y11 ⋮ ⋮ ⋮ ⋮ ⋮
  19. TOC . 統計的因果推論で扱う問題 . 機械学習の統計的因果推論への応⽤ <- . 実務で直⾯している課題 . まとめ

  20. 機械学習の統計的因果推論への応⽤ 機械学習 アップリフトモデリング S-learner T-learner X-learner 機械学習の枠組みについてはある程度知っているという前提で話します

  21. 機械学習 与えられた特徴量と⽬的変数 の組から、特徴量と⽬的変数 の関係を表す関数 を学習す るプログラム (教師あり学習) f

  22. アップリフトモデリング 次のようなデータから、介⼊を⾏ったときのアウトカムの予測モデル と介⼊を⾏わなかったときの予測モデル を機械学習により求める アップリフト のモデル を と から求める id(

    ) 特徴量 ( ) 介⼊有無 ( ) アウトカム( ) τ1 τ0 Y − 1i Y0i τ τ1 τ0 i X Z ∈ {0, 1} Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  23. アップリフトモデリング 仕事で始める機械学習に記述 がある 書籍では次のとおり . ⼀部のユーザーのデータか ら と を学習 .

    残りのユーザーについて を計算 . 効果が⾒込めるユーザーに 施策を⾏う τ1 τ0 τ (X) − 1 τ (X) 0
  24. 因果推論との関連 アップリフトモデリング: と における⽋損値を機械学習で作った モデル と を利⽤して埋め、効果を算出するイメージ id( ) 共変量

    ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) Y0 Y1 τ1 τ0 i X Z Y0 Y1 1 X1 Z = 1 0 Y10 τ (X ) 1 1 2 X2 Z = 2 1 τ (X ) 0 2 Y11 ⋮ ⋮ ⋮ ⋮ ⋮
  25. アップリフトモデリングの例 . T-learner . S-learner . X-learner 詳細は Metalearners for

    estimating heterogeneous treatment effects using machine learning を参照 (X-learner の提案を⾏った論⽂)
  26. T-learner → 元データを に応じて 2 つに分割 それぞれについて から を予測する機械学 習モデル

    , を作る Z X Y μ (X) 0 μ (X) 1 E[Y − 0 Y ∣X = 1 x] = μ (x) − 1 μ (x) 0
  27. S-learner から を予測する機械学習モデル を作成する id( ) 特徴量 ( ) 介⼊有無

    ( ) アウトカム( ) (X, Z) Y τ(X, Z) E[Y − 0 Y ∣X = 1 x] = τ(X, 1) − τ(X, 0) i X Z ∈ {0, 1} Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  28. S-leaner, T-learner のここがダメ 介⼊群 ( ) /⾮介⼊群 ( ) が著しく偏っている

    ときに、機械学習モデルの性 能が保証できない Z = 1 Z = 0
  29. X-learner . T-learner 同様に 2 つのモデル , を作成 . と

    を 実測値 を⽤いて計算 . , の予測モデル と を作成 . CATE の推定モデル (x) μ ^0 (x) μ ^1 = D ~ i0 Y − 0i (X ) μ ^1 i = D ~ j1 Y − 1j (X ) μ ^0 j Y , Y 0i 1j D ~ i0 D ~ i1 τ (x) 0 τ (x) 1 τ(x) = e(x)τ (x) + 1 (1 − e(x))τ (x) 0
  30. もっとやさしく S-learner, T-learner, では実測値があるところもモデルの出⼒に置き換 えていたのを、X-learner では⽋損だけを埋めるようにした 埋めたあとでアウトカムの差 , を計算し、再度モデルを作成 id(

    ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) D ~ i0 D ~ i1 i X Z Y0 Y1 1 X1 Z = 1 0 Y10 τ (X ) 1 1 2 X2 Z = 2 1 τ (X ) 0 2 Y11 ⋮ ⋮ ⋮ ⋮ ⋮
  31. X-learner のここがす ごい 2 つの CATE 推定モデルを対 照群と介⼊群の実測値を⽤い てそれぞれ作成 2

    つのモデルをアンサンブル することで、それぞれが得意 な箇所を両⽅ともに使える
  32. ⽐較 X-learner がもっとも性能が 良かった

  33. TOC . 統計的因果推論で扱う問題 . 機械学習の統計的因果推論への応⽤ . 実務で直⾯している課題 <- . まとめ

  34. 実務で直⾯している課題 妥当な問題設定を⾏うことが難しい データ処理の妥当性を⽰すことが難しい 結果の解釈が難しい

  35. 妥当な問題設定を⾏うことが難しい A/B テストが⾏えればこの⼿法は必要ない ルールベースで介⼊/⾮介⼊が分かれるようなケースは適⽤が難しい 全ユーザーにクーポンを配布、利⽤するかはユーザー次第なら OK 特定の条件を満たしたユーザーに贈答品を送る、は NG ⼀般的な機械学習よりも変数が 1

    つ多い (介⼊有無) 学習直後に、⽬の前の課題に適⽤できるかどうか分からず悩む、という のは実際にあった
  36. データ処理の妥当性を⽰すことが難しい 統計的因果推論はさまざまな⼿法が提案されている それぞれの⼿法で推定される ATE の値が結構違う データの処理を⾏う⼀連の⼿続きの中で、何をチェックすればいいのか 定められていない 例えば、今⽇の X-learner は機械学習モデルを

    5 個も作るが、それら の性能評価をどう⾏うのか不明 データの処理を⾏う⼀連の⼿続きの標準がないので、他⼈の計算結果と の⽐較が困難
  37. 結果の解釈が難しい ⼀般的な統計的検定⼿法 (例えば t 検定) が使えないため、出⼒結果を解 釈する⽅法について都度⾃分で考える必要がある よくわからない結果が得られたとき、その理由を知ることが困難 データの収集⾃体のミス データを処理したプログラムのバグ

    共変量がアウトカムの結果になっている (問題設定の不備) etc. 実際、過去に⾏った結果と⽭盾する結果を得て、どちらも正しいという 結論に⾄ったケースがあった
  38. Recap 統計的因果推論では、介⼊を⾏ったときのアウトカムと⾏わなかったと きのアウトカムの差である介⼊効果を扱う ⽋損値となっている観測できなかったアウトカムをうまく扱うことで、 平均的な介⼊効果の算出ができる アップリフトモデリングでは、機械学習を⽤いて⽋損値を補完すること で平均的な介⼊効果の算出を⾏う 複雑な⼿法を使うと応⽤範囲が広がるが、問題設定、データ処理、結果 の解釈の妥当性を⽰すことが困難になる