Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習を用いた効果検証~傾向スコアとX-Learner~

 機械学習を用いた効果検証~傾向スコアとX-Learner~

2022/07/20のLT資料です。"機械学習×因果推論"手法の1つとして知られるX-LearnerについてLTしました。

参考リンク(自身のブログ)
- 傾向スコアを用いた効果検証
https://zenn.dev/s1ok69oo/articles/c058108acb83e7
- PythonによるX-Learnerの実装
https://zenn.dev/s1ok69oo/articles/58580b8f4fbdf8
- 機械学習で因果推論~Meta-LearnerとEconML~
https://zenn.dev/s1ok69oo/articles/1eeebe75842a50

うとしん

July 20, 2022
Tweet

More Decks by うとしん

Other Decks in Science

Transcript

  1. 効果検証とは 広告を見た場合の売上 広告を見てない場合の売上 効果 iさん Y1 Y0 Y1 - Y0

    計測不可 N人分のデータを利用して、 効果(Y1 - Y0)の 期待値 E(Y1 - Y0) を理論的に算出することは可能 → これが基本的な効果検証のアプローチ
  2. 問題の設定 - 性別x 1 : 1が男性、0が女性 - 過去の購入数x 2 :

    平均6のポアソン分布に従う - 広告閲覧ダミーD - 6(1-x 1 )+x 2 +noise 10以上であれば1, 10未満であれば0 - noiseは平均0, 分散5の正規分布に従う - 売上Y - 2,500×(3(1-x 1 )+x 2 +noise)) + 5,000×D - noiseは一様分布(-5, 5)に従う
  3. 傾向スコアとは - 傾向スコアを用いた因果推論手法には - 傾向スコアマッチング - IPW: Inverse Probability Weighting

    - DR: Doubly Robust などがある(詳細はこちらのZenn記事を参照) 今回はIPW(逆確率重み付け法)を紹介
  4. X-Learnerとは 手順(1/6) - 処置群(D i =1)と対照群(D i =0)にデータを分ける 処置群(広告を見た) 対照群(広告を見てない)

    過去の購入数 性別 売上(Y 1 ) 8 女性 22,500 12 男性 25,000 過去の購入数 性別 売上(Y 0 ) 3 男性 7,500 4 女性 17,500
  5. X-Learnerとは 手順(2/6) - 処置群(D i =1)のデータから Y 1 を予測する回帰モデルM 1

    を作成 - 対照群(D i =0)のデータから M 1 を用いてY 1 の予測値を算出し 実値Y 0 との差を求める - この差が対照群(D i =0)の データにおける効果ATU 対照群(広告を見てない) 過去の購入数 性別 売上(Y 0 ) Y 1 の予測値 Y 1 予測値 - Y 0 (ATU) 3 男性 7,500 11,000 3,500 4 女性 17,500 15,000 - 2,500 処置群(広告を見た) 過去の購入数 性別 売上(Y 1 ) 8 女性 22,500 12 男性 25,000 回帰モデルM 1
  6. X-Learnerとは 手順(3/6) - 対照群(D i =0)のデータから Y 0 を予測する回帰モデルM 0

    を作成 - 処置群(D i =1)のデータから M 0 を用いてY 0 の予測値を算出し 実値Y 1 との差を求める - この差が処置群(D i =1)の データにおける効果ATT 処置群(広告を見た) 過去の購入数 性別 売上(Y 1 ) Y 0 の予測値 Y 1 - Y 0 予測値 (ATT) 8 女性 22,500 19,750 2,700 12 男性 25,000 32,000 7,000 対照群(広告を見てない) 過去の購入数 性別 売上(Y 1 ) 3 男性 7,500 4 女性 17,500 回帰モデルM 0
  7. X-Learnerとは 手順(4/6) - 回帰モデルM 1 の目的変数をATT(D i =1の時の広告効果), - 回帰モデルM

    0 の目的変数をATU(D i =0の時の広告効果) とした回帰モデルM ATT とM ATU を算出 処置群(広告を見た) 過去の購入数 性別 ATT 8 女性 2,700 12 男性 7,000 対照群(広告を見てない) 過去の購入数 性別 ATU 3 男性 3,500 4 女性 - 2,500 M ATT M ATU
  8. X-Learnerとは 手順(6/6) - 処置群(D i =1)・対照群(D i =0)を含む全データ(i=1, 2, …,

    N)で M ATT とM ATU を用いてATT i とATU i を予測値を算出し、 傾向スコアe(X i )で重み付けした和を効果と推定する → 個別の因果効果を推定できるため、非線形な因果関係も捉えることが可能 個別の効果 = e(X i ) × (ATU i の予測値) + {1 - e(X i )} × (ATT i の予測値)
  9. Pythonによる実装 - ATT: 処置群(D i =1)における実値Y 1 と予測値Y 0 の差

    - ATU: 対照群(D i =0)における予測値Y 1 と実値Y 0 の差を算出
  10. Pythonによる実装 D i =0,1の全データ(i=1, 2, …, N)からATT i とATU i

    を求める回帰モ デル(ランダムフォレスト) M ATT とM ATU を構築する