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

MoT TechTalk #9 タクシーアプリのビジネスデータ分析

GO Inc. dev
December 13, 2021

MoT TechTalk #9 タクシーアプリのビジネスデータ分析

■ 内容
・タクシーアプリ『GO』のビジネス課題
・異質性とバイアスを考慮した分析手法

■ YouTube
https://youtu.be/DCyl6NpbDFM

■ connpass
https://jtx.connpass.com/event/230987/

GO Inc. dev

December 13, 2021
Tweet

More Decks by GO Inc. dev

Other Decks in Technology

Transcript

  1. #mot_tech_talk Mobility Technologies Co., Ltd. お知らせ 2 1. 質問はYouTubeのコメント欄にお願いします 適宜、お答えしていきます

    2. Twitterへの投稿の際は #mot_tech_talk を付けてください 3. 最後にはアンケートの回答協⼒よろしくお願いします 抽選で10名様にタクシーアプリ『GO』の2000円分クーポンが当たります!
  2. #mot_tech_talk Mobility Technologies Co., Ltd. 登壇者紹介 4 因果推論を覗いたら 計量経済学の沼に ハマってしまいました

    島⽥哲朗 秋⽉達樹 ⼊社したら統計学の沼に ハマってしまいました (楽しい) masaki gota モデレーター GOのプロダクト マネージャーしてます
  3. Mobility Technologies Co., Ltd. #mot_tech_talk 5 前半 因果推論⼊⾨ 後半 因果推論の施策事例

    「シンプソンのパラドクス」を例に、古典的な統計学では取り扱えなかった問題を 因果推論で取り扱う⽅法を学びます 統計的因果推論の⼿法のひとつであるDiffirence-in-differences(DID)を 実際の分析に適⽤した事例を紹介します
  4. Mobility Technologies Co., Ltd. #mot_tech_talk 8 Agenda 1 MoTのデータアナリスト 2

    因果推論しないと、失敗するケース 3 因果関係を記述する⽅法 4 因果効果を明らかにする 5 機械学習と因果推論の違い 6 前半のまとめ
  5. #mot_tech_talk Mobility Technologies Co., Ltd. タクシーアプリ『GO』とは? 10 乗⾞位置を指定する タクシーを呼ぶ タクシーに乗る

    料⾦を⽀払う n ユーザの位置とタクシーの位置を把握し、それらをマッチングさせる技術で成り⽴っている
  6. #mot_tech_talk Mobility Technologies Co., Ltd. データアナリストとデータサイエンティスト 11 n 両者のロール・スキルは重なる部分も⼤きく、企業によって定義はバラバラ n

    MoTでは厳密なロール・スキルの定義は無く、重複することもある MoTでは ⼀般的には • RCT、ベイズモデリング、因果推論 • 機械学習(予測・分類) • 地理空間データ解析 • CV、強化学習、最適化 • 機械学習(予測・分類) • 地理空間データ解析 データアナリスト データサイエンティスト • 集計や可視化、効果検証 • Webアナリストやグロースハッカーを 含む場合も ロール スキル ロール スキル • ビジネス意思決定に関わる分析 • 機械学習モデルのプロダクト実装 • SQL • 統計解析 • 可視化 • データサイエンス⼒ • データエンジニアリング⼒ • ビジネス⼒ スキルチェックリスト ver.4 https://www.datascientist.or.jp/common/docs/skillcheck_ver4.00_simple.xlsx • データの収集 • 分析、機械学習モデル構築
  7. #mot_tech_talk Mobility Technologies Co., Ltd. データアナリストが直⾯するビジネス課題 12 n コロナが収束したとして、今年の12⽉のタクシー実⾞数はどの程度になるだろうか? n

    もしコロナが無かったとしたら、去年の12⽉のタクシー実⾞数はどの程度になるだろうか? n アプリのUIを変更したが、ユーザのクリック率は向上しただろうか? n サーバーのマッチングロジックを変更したが、ユーザのキャンセル率は減少しただろうか? n クーポンを配ったが、ユーザの実⾞率は向上しただろうか? 問いはシンプルだが、回答に困るビジネス課題を因果推論で解決する
  8. #mot_tech_talk Mobility Technologies Co., Ltd. 失敗するケース「クーポン付与の効果測定」 14 n 実⾞数を上げるためクーポン付与したが、効果があったか知りたい Treatment

    介⼊ • クーポン付与 • クーポンなし Condition 共変量 • アプリ起動数多い • アプリ起動数少ない Outcome 結果 • 実⾞した • 実⾞しなかった UserID Treatment Condition Outcome 1001 1002 1003 1004 … 付与 付与 なし なし … 多い 多い 少ない 少ない 実⾞した しなかった しなかった しなかった … … 分析対象データ
  9. #mot_tech_talk Mobility Technologies Co., Ltd. ダメなクロス集計(1/2) 15 n Conditionごとに⾒ると「クーポン付与」の⽅が実⾞率が⾼い n

    普通に考えたら、全体でも「クーポン付与」の⽅が実⾞率が⾼くなるはず Treatment クーポン付与 クーポンなし Condition 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 起動数少 起動数多
  10. #mot_tech_talk Mobility Technologies Co., Ltd. ダメなクロス集計(2/2) 16 n でも全体で⾒ると「クーポンなし」の⽅が実⾞率が⾼く、Conditionごとの結果と⽭盾する Treatment

    クーポン付与 クーポンなし Condition 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 19% 105⼈/550⼈ 16% 240⼈/1500⼈ 起動数少 起動数多 Total
  11. #mot_tech_talk Mobility Technologies Co., Ltd. クロス集計だと⽭盾を⽣じる 17 n 「2つの集団である仮説が成⽴しても、集団全体では正反対の仮説が成⽴する」ことを シンプソンのパラドクスと呼ぶ

    n このデータから「クーポンの効果があったか」という問いに、古典的な統計学では答えることが できない Treatment クーポン付与 クーポンなし 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 19% 105⼈/550⼈ 16% 240⼈/1500⼈ 起動数少 起動数多 Total 矛 盾 Condition クロス集計だとうまくいかないケースも因果推論ならうまく扱える
  12. #mot_tech_talk Mobility Technologies Co., Ltd. 結果が異なるの2つのシナリオ 19 n 真逆の結論に繋がる2つのシナリオが考えられる n

    背後のデータ⽣成過程はデータには表れない シナリオ1 シナリオ2 アプリの挙動が 遅くなった • 起動数に応じてクーポンが付与された • クーポンがアプリ挙動を遅くして起動数が減った 起動数少 起動数多 クーポンなし クーポン付与 クーポンなし クーポン付与 起動数少 起動数多
  13. #mot_tech_talk Mobility Technologies Co., Ltd. 因果グラフで因果関係を記述できる 20 n データの裏にある因果を記述するために、因果グラフを導⼊する ※

    統計的因果推論において因果グラフは必須では無いが、因果構造の定性的な理解とグラフ理論の操作による同時分布の因数分解などに役⽴つ ※ 因果グラフがDAG(Directed Acyclic Graph)であることを前提とした場合の理論が発展している X Y Yの値を決定する関数にXが使われているとき、XはYの直接原因であるといい、 変数Xのノードから変数Yのノードへ⽮印を引いて表す X Y XがYの原因の直接原因であるとき、XはYの原因であるという 変数同⼠の独⽴は因果関係が無いことを意味し、従属であれば因果関係か相関関係がある 左図の分岐経路で、ZとYはおそらく従属であり、相関関係はあるが因果関係は無い Yが変化したとすると直接原因であるXも変化しているはずで、Xの変化はZに変化をもたらすた めおそらく従属である 因果グラフ上で従属関係が存在する経路をパスといい、この場合Z↔X↔Yにパスがあるという Z Y X 直接原因 原因 因果関係 とパス
  14. #mot_tech_talk Mobility Technologies Co., Ltd. データ⽣成過程を因果グラフで表現 21 n 「起動数」から「クーポン」への因果の向きがそれぞれ異なる n

    因果グラフはデータアナリストが考える因果構造の仮定で、どちらを妥当と判断するかは任される データ⽣成過程1 データ⽣成過程2 起動数 クーポン 実⾞数 因果パス 交絡パス • 起動数に応じてクーポンが付与された • 起動数がクーポン付与の原因 • クーポンがアプリ挙動を遅くして起動数が減った • クーポン付与が起動数の原因 起動数 クーポン 実⾞ 因果パス 因果パス ※ データから因果グラフを同定する問題は「統計的因果探索」と呼ばれる問題に帰着する ⼀般的にデータから因果グラフを同定することは困難なため、ドメイン知識などを活⽤して因果グラフを仮定する ※ “All models are wrong, but some are useful.”の考えで因果グラフを仮定する 交絡パスは因果関係が無い従属のパス クーポン付与されていたとすると、おそらく起動数は少なくて 実⾞数も少ないという関係にあるとすると、起動数を通じて従属
  15. #mot_tech_talk Mobility Technologies Co., Ltd. 因果効果 22 n 因果グラフの構造によっては「調整」を⾏わないと因果効果を推定出来ない データ⽣成過程1

    データ⽣成過程2 • 起動数ごとの結果を⾒る必要 • 因果効果は調整をしなければ不明 • 全体の結果を⾒る必要 • 因果効果は3% クーポン付与 クーポンなし 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 19% 105⼈/550⼈ 16% 240⼈/1500⼈ 起動数少 起動数多 Total クーポン付与 クーポンなし 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 19% 105⼈/550⼈ 16% 240⼈/1500⼈ 起動数少 起動数多 Total 因果効果は19%-16%=3% 因果効果は??%
  16. #mot_tech_talk Mobility Technologies Co., Ltd. 因果グラフにおける「調整」 26 n ある変数に条件付けを⾏うと、条件付き独⽴により因果グラフの構造⾃体が変化する n

    着⽬する2変数の因果パス以外のパスを条件付けにより切る操作を「調整」と呼ぶ ※ 複雑な調整では「バックドア調整基準」や「フロントドア調整基準」などを使⽤する 起動数 クーポン 実⾞数 因果パス 交絡パス 起動数 クーポン 実⾞数 因果パス 起動数で条件付け 条件付き独⽴とは、以下の関係が全ての取り得る値で成り⽴つことと同義 𝑃 実⾞数 = 5 クーポン = 付与, 起動数 = 10 = 𝑃(実⾞数 = 5|起動数 = 10)
  17. #mot_tech_talk Mobility Technologies Co., Ltd. 調整して因果効果を求める n 起動数で調整の結果、因果効果は6.5%と推定できる 𝔼 𝑌

    𝑑𝑜 𝑇 = 𝑡 = ( ! 𝔼 𝑌 𝑡, 𝑐 𝑃(𝑐) たとえばクーポン付与の場合の実⾞数を知りたい 起動数 クーポン 実⾞数 因果パス = 𝔼!𝔼 𝑌 𝑡, 𝑐 起動数で調整、つまり条件付けする必要 周辺化すると、ある起動数になる確率をかければ良い クーポン付与 クーポンなし 15% 210⼈/1400⼈ 10% 5⼈/50⼈ 20% 100⼈/500⼈ 30% 30⼈/100⼈ 19% 105⼈/550⼈ 16% 240⼈/1500⼈ 起動数少 起動数多 Total Causal 19.4% 12.9% 1450 2050 ×0.15 + 600 2050 ×0.30 ≈ 0.194 1450 2050 ×0.10 + 600 2050 ×0.20 ≈ 0.129 起動数少 の確率 起動数多 の確率 因果効果は19.4%-12.9%=6.5% 27 1450⼈ 600⼈ 2050⼈ ⼈数計
  18. #mot_tech_talk Mobility Technologies Co., Ltd. ポテンシャルアウトカムとは 29 n 「クーポン付与Outcome」と「クーポンなしOutcome」をポテンシャルアウトカムと呼び、 両者の差が因果効果となる

    n ポテンシャルアウトカムは1⼈に対し同時に観測することができないため⽋測となり、 因果効果を求めることが出来ない UserID 1001 1002 1003 1004 … 付与 付与 なし なし … 多い 多い 少ない 少ない 実⾞した しなかった しなかった しなかった … … 実⾞した ? しなかった ? … ? しなかった ? しなかった … ? ? ? ? … Treatment Condition Outcome クーポン付与 Outcome クーポンなし Outcome クーポンなし Outcome クーポン付与 Outcome - 𝑌(1) 𝑌(0) 𝑌 1 − 𝑌(0) 𝑇 𝐶 𝑌 ポテンシャルアウトカム 因果効果
  19. #mot_tech_talk Mobility Technologies Co., Ltd. 平均因果効果(ATE)は求まる 30 n ⽋測データから個別因果効果(ITE)求めることは困難なため、 ほとんどの場合は平均因果効果(ATE)を求める問題に帰着する

    実⾞した ? しなかった ? … ? しなかった ? しなかった … ? ? ? ? … 個別因果効果 ITE:Individual Treatment Effect 𝑌! 1 − 𝑌! (0) 平均因果効果 ATE:Average Treatment Effect 𝔼[𝑌 1 − 𝑌 0 ] クーポン付与 Outcome クーポンなし Outcome クーポンなし Outcome クーポン付与 Outcome - 𝑌(1) 𝑌(0) 𝑌 1 − 𝑌(0)
  20. #mot_tech_talk Mobility Technologies Co., Ltd. 選択バイアスによりATEが簡単には求まらないので調整が必要 31 クーポンの効果を 知りたい⺟集団 クーポンを全員に

    配った場合の実⾞ クーポンを全員に 配らない場合の実⾞ − RCTやABテストとよばれる実験設計 2つの集団が均質であれば、 アウトカムの期待値の差をATEとみなせる − ランダムにクーポンを 配った場合の実⾞ ランダムにクーポンを 配らない場合の実⾞ − 完全データでの ATE ランダム化⽐較 試験データでの ATE ⼿元のデータで のATE? ⼀致 全員にクーポン付与した場合と しなかった場合のポテンシャルアウトカムを 合わせて完全データと呼ぶことがある 完全データは⼊⼿出来ない ある条件でクーポンを 配った場合の実⾞ ある条件でクーポンを 配らない場合の実⾞ 調整が必要 共変量によりクーポン付与が⼀定の 法則で付与されたことで、 ランダムではない⽋測が発⽣しており それを修正するために調整が必要 ⺟集団を代表しない標本により推論が 偏る問題を選択バイアスと呼ぶ
  21. #mot_tech_talk Mobility Technologies Co., Ltd. 選択モデルの考えで調整する 32 n クーポン付与の割当はポテンシャルアウトカムが⽋測するかどうかの変数であると考え、 選択モデルの考えに基づいて、登場する変数の同時分布を分解する

    n 𝑃 𝑌 1 , 𝑌 0 , 𝐶, 𝑇 = 𝑃 𝑇 𝑌 1 , 𝑌 0 , 𝐶 𝑃 𝑌 1 , 𝑌 0 𝐶 𝑃(𝐶) n 𝑃 𝑇 𝑌 1 , 𝑌 0 , 𝐶 :ポテンシャルアウトカムと共変量で条件付けしたときのクーポン割当分布 n 𝑃 𝑌 1 , 𝑌 0 𝐶 :共変量を条件付けしたときのポテンシャルアウトカムの分布 n 𝑃(𝐶):共変量の分布 n ここで強く無視出来る割当(strongly ignorable treatment assignment)条件とよばれる 共変量によってのみクーポンの割当が決まるという仮定を採⽤する n 𝑃 𝑇 𝑌 1 , 𝑌 0 , 𝐶 = 𝑃(𝑇|𝐶) n ベイズの定理より𝑃 𝑇 𝑌 1 , 𝑌 0 , 𝐶 = "($ % ,$(')|*,+)"(*|+) "($ % ,$(')|+) = 𝑃(𝑇|𝐶) n 従って𝑃 𝑌 1 , 𝑌 0 𝑇, 𝐶 = 𝑃(𝑌 1 , 𝑌(0)|𝐶) n さらに周辺化して期待値を取ることで、平均での独⽴性が成⽴する n 𝔼 𝑌 1 , 𝑌 0 𝑇 = 1, 𝐶 = 𝔼 𝑌 1 𝑇, 𝐶 = 𝔼[𝑌(1)|𝐶] n 𝔼 𝑌 1 , 𝑌 0 𝑇 = 0, 𝐶 = 𝔼 𝑌 0 𝑇, 𝐶 = 𝔼[𝑌(0)|𝐶] n 因果効果は以下の様に、因果グラフと同じ計算により求められる n 𝔼 𝑌 1 − 𝑌 0 = 𝔼+ [𝔼 𝑌 1 − 𝑌 0 𝐶 ] = 𝔼+ [𝔼 𝑌 1 𝑇 = 1, 𝐶 − 𝔼 𝑌 0 𝑇 = 0, 𝐶 ]
  22. #mot_tech_talk Mobility Technologies Co., Ltd. 因果推論プロセスの整理 34 1. 着⽬すべき原因と結果の変数を明らかにし、その変数間で明らかにしたい値(Causal Estimand)を定める

    n 今回は、クーポン付与と実⾞数の間の因果効果(Causal Effect)をCausal Estimandに置いていた 2. 識別により、データから推定可能な量(Statistical Estimand)でCausal Estimandを記述でき るか判定する n 識別不能な場合はCausal Estimandを求めることが出来ない n 今回は「調整」によりStatistical Estimandで記述できることが明らかになった n 𝔼 𝑌 𝑑𝑜 𝑇 = 𝑡 = 𝔼, 𝔼 𝑌 𝑡, 𝑐 で、左辺はCausal Estimandで右辺はStatistical Estimand 3. Statistical Estimandをデータから推定する Causal Estimand Statistical Estimand Estimate 推定値 Identification 識別 Estimation 推定 機械学習モデルを作るプロセスとはなにやら違う
  23. #mot_tech_talk Mobility Technologies Co., Ltd. 機械学習と因果推論の違い 36 n 因果効果は機械学習の変数重要度で良いのでは? n

    機械学習モデルをそのまま適⽤すると説明変数間の関係を考慮しないので、原因と考える変数の重要 度は因果効果と⼀致しない T X1 X2 X3 Y 機械学習のイメージ T X1 X2 X3 Y 因果推論のイメージ n 機械学習と因果推論って別物? n 推定時に⾼次元な共変量に対応するため、Causal ForestやDouble Machine Learningなど機械学習と 因果推論の融合が進んでいます n 因果推論も万能のツールではないので、タスクによって使い分ける必要 n どういう場⾯で因果推論使うの? n ビジネス意思決定において操作したい変数は少ない n 操作したい変数と結果変数に着⽬して、操作した場合にどうなるか?という 原因と結果のフレームワークはビジネスの現場で⾮常に役に⽴つ
  24. #mot_tech_talk Mobility Technologies Co., Ltd. 前半のまとめ 38 n 因果推論⼊⾨ n

    クロス集計で失敗する例として「シンプソンのパラドクス」を説明 n 因果関係を記述する⽅法として「因果グラフ」を説明 n 「因果グラフ」と「ポテンシャルアウトカム」の2通りの考えで因果効果が求められることを説明 n 機械学習と因果推論の違い n ビジネスの意思決定に因果推論が役⽴つ n 因果効果は機械学習の単純適⽤では求まらない n 因果推論の推定で機械学習が活躍
  25. Mobility Technologies Co., Ltd. #mot_tech_talk 40 Agenda 7 どんな分析事例だったのか? 8

    分析に取り⼊れた⼿法 9 統計的因果推論 実践編 10 後半のまとめ
  26. #mot_tech_talk Mobility Technologies Co., Ltd. 今回の分析事例の対象とは? 42 ▪ 「付け待ち」や「流し」と呼ばれる従来の⽅法と、アプリでタクシーを⼿配する乗⾞⽅法がある ▪

    いずれでも決済⼿段としてGO Payを利⽤することができる • 付け待ち • 流し • 駅や病院、商業施設などに停まっているタクシーに乗⾞する • 道路を⾛っているタクシーに乗⾞する • アプリ配⾞ 乗⾞⽅法 利⽤できるサービス • アプリを利⽤してタクシーを⼿配する 分類
  27. #mot_tech_talk Mobility Technologies Co., Ltd. GO Payのサービス概要 43 ▪ タクシーの⽀払いをアプリで完結できるサービス

    ▪ 領収書の受け取りも必要なく、⽬的地に着いたら即降りることができる ▪ ※…事前にクレジットカードの登録が必要 アプリを開き GO Payを選択する 後部座席タブレットで GO Payをタップ スマートフォンを タブレットにかざし 情報が連動するまで待つ ⽬的地に着いたら降りる
  28. #mot_tech_talk Mobility Technologies Co., Ltd. GO Payサービスに期待すること 44 n 流しのタクシー利⽤時にもGOアプリの利⽤をして貰う事でアプリへのタッチポイントを増やす

    n 「タクシー料⾦⽀払機能」から「タクシー配⾞機能」 へクロスセルによるユーザーのLTV向上 or アプリへのタッチポイントを増やす タクシー配⾞機能へクロスセル
  29. #mot_tech_talk Mobility Technologies Co., Ltd. 事業課題はなんだったのか 45 n 「タクシー料⾦⽀払機能」と「タクシー配⾞機能」のクロスセルの効果を把握できていない n

    クロスセルを促進するためのマーケティング施策や機能改修を実施すべきか判断できない or • クロスセルは発⽣している? • 効果を上げるための施策を実施した⽅が良い? • 施策を実施するとしたら ROI どのぐらいになる?
  30. #mot_tech_talk Mobility Technologies Co., Ltd. 分析課題への落とし込み 46 n 流しのタクシーで「GO Pay利⽤したユーザー」と「利⽤していないユーザー」の

    その後のアプリ配⾞利⽤回数を⽐較 n 利⽤回数の差を流しのタクシーでGO Payを利⽤した場合の効果量として観察したい 流しのタクシーでGO Payを利⽤したユーザー 流しのタクシーでGO Payを利⽤していないユーザー アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ 3回 1回 アプリ 配⾞ 差分2回が効果量
  31. #mot_tech_talk Mobility Technologies Co., Ltd. 想定される仮説 47 ポジティブな仮説 ネガティブな仮説 •

    アプリへの接触回数が増えるので、アプリ配 ⾞を利⽤してくれるハードルは低くなりそう • GO Pay決済を使える⾞両を流しのタクシーで 探すよりもアプリを使った⽅が確実に呼べる ので便利 • GO Payの場合クーポンの利⽤ができるのでア プリ配⾞時の配⾞⼿数料は気にならない場合 がある • 配⾞⼿数料がかからない流しのタクシーを利 ⽤し続けるため、アプリ配⾞に転換しない • タクシーの供給量が多い場所ではアプリで配 ⾞するよりも流しのタクシーを⾒つける⽅が 楽なため、ユーザーの主な利⽤場所によって はアプリ配⾞への転換が難しい
  32. #mot_tech_talk Mobility Technologies Co., Ltd. 流しのタクシーでGO Payによる⽀払いを強制出来ない 48 n ランダム化⽐較試験(RCT)によるA/Bテストでの効果量の計測が出来ない

    実験群 A 流しのタクシーの⽀払いをGO Payに固定 ⾮実験群 B 流しのタクシーの⽀払いを現⾦に固定 ランダムな割当をするために 流しのタクシーの⽀払い⽅法を こちらから固定することは出来ない
  33. #mot_tech_talk Mobility Technologies Co., Ltd. GO Payを利⽤するユーザーのバイアス 49 n 流しのタクシーでGO

    Payを利⽤するユーザと利⽤しないユーザで、ユーザの質が異なる (バイアスがある)場合、両者を単純⽐較しても正しく効果量を推定できない 流しのタクシーでGOPayを利⽤するユーザーは ⽇頃からタクシーをよく利⽤している? 流しのタクシーでGOPayを利⽤するユーザーは 性別が偏っている?
  34. #mot_tech_talk Mobility Technologies Co., Ltd. 課題の整理 51 分析対象のサービス 当該サービスへの期待 課題

    分析方針 考慮事項 • 流しのタクシーで利⽤されるGO Pay決済 • アプリ配⾞へのクロスセルによるユーザーのLTV向上 • クロスセルの発⽣状況が確認できていない • LTV向上の定量把握ができていない • 流しのタクシーで「GO Pay利⽤したユーザー」と 「利⽤していないユーザー」のその後のアプリ配⾞利⽤回数の⽐較 • ランダム化⽐較試験(RCT)ができない • GO Pay利⽤ユーザは属性にバイアスが考えられる
  35. #mot_tech_talk Mobility Technologies Co., Ltd. つまり何をアウトプットすれば良いのか? 52 n 流しのタクシーで「GO Payを利⽤したユーザー」と「利⽤していないユーザー」の

    その後のアプリ配⾞回数の差 n タクシー利⽤回数などのバイアスを除去して効果量を推定したい 流しのタクシーでGO Payを利⽤したユーザー 流しのタクシーでGO Payを利⽤していないユーザー アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ 3回 1回 アプリ 配⾞ 利⽤回数のバイアス 性別のバイアス … 効果量 この問題を解決する⽅法は?
  36. #mot_tech_talk Mobility Technologies Co., Ltd. 解決するための⼿法とは? 53 n 今回の問題に則した⼿法としてDifference-In-Differences(DID)を採⽤ n

    統計的因果推論の⼿法は多くあるが、重回帰分析で実施できる⼿軽さから利⽤する事が多い 統計的因果推論⼿法 概要 Difference-In-Differences 差分の差分法 経済学・政策評価などでは、介⼊の対象となるグループと⾮対象グループは質的に⼤き く⼤きく異なることが多い。そのため介⼊前の差も測定しておき、「介⼊後の差 − 介⼊ 前の差」によって純粋な政策効果の推定値とすることがある。重回帰分析で実施できる ため、利⽤しやすい。 Propensity Score Matching 傾向スコアマッチング 傾向スコアとは、介⼊が発⽣する確率の事を指す。介⼊が受けられた仕組みに着⽬し、 介⼊の対象となるグループと⾮対象グループのデータの性質をなるべく均⼀にし、介⼊ 効果を推定する解析⼿法。ロジスティック回帰と単回帰分析で実施できる。 Regression Discontinuity Design 回帰不連続デザイン 介⼊が割り振られるルールが決められており、条件を満たす全てのサンプルに介⼊が⾏ われる場合、傾向スコアマッチングなどの⼿法が利⽤出来ない。その場合に、ルールに 利⽤する変数の周辺に存在するサンプルは性質が変わらないことを前提とし、介⼊効果 を推定する解析⼿法。重回帰分析を複数回繰り返し、実施できる。 …
  37. #mot_tech_talk Mobility Technologies Co., Ltd. Difference-In-Differencesの概要 54 n ⼀般的に「特定地域に施した施策(地域毎の補助⾦導⼊)」などの施策効果を推定する際に利⽤ n

    並⾏トレンド仮定や介⼊の事前認知が無いことを前提として利⽤する事ができる n 並⾏トレンド仮定 : 実験群とコントロール群は施策がなかった場合、並⾏の推移をするという仮定 • 𝛽! :前期間のコントロール群のベース値 • 𝛽" :前期間の実験群とコントロール群の差分 • 𝛽# :前期間と後期間のコントロール群の差分 • 𝛽$ :前期間と後期間の実験群の差 − 後期間のコントロール群の差 • 𝜖:予測の誤差項 y = β4 + β5 𝑇 + β6 𝑆 + β7 (𝑇 ( 𝑆) + 𝜖 実験群 コントロール群 Time Outcome Pre-treatment 前期間 Post-treatment 後期間
  38. #mot_tech_talk Mobility Technologies Co., Ltd. 検証の枠組み 55 n DIDで効果量を推定するために、前期間と後期間を下記のように設定 n

    実験群は実験期間中に「流しでGO Payを利⽤したユーザー」を対象とする 実験群 コントロール群 前期間 認証から 28⽇間 アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ アプリ 配⾞ 後期間 観察期間後から 28⽇間 GO Pay利⽤ 観察期間
  39. #mot_tech_talk Mobility Technologies Co., Ltd. 実践編で利⽤するデータ 57 n 実際のデータは公開できないため、ダミーデータを利⽤して説明します n

    実験群とコントロール群のユーザを⽐較し、後期間でのアプリ実⾞回数(after)が どの程度増加するのかを定量的に把握したい user_id pay_flg 実験群の場合1 before after 50000 1 5.0 3.0 50001 0 0.0 0.0 50002 0 1.0 0.0 50003 0 1.0 0.0 50004 0 3.0 0.0 … … … … 実験群 コントロール群 UU数 4,338 45,662 before 平均 20.953 3.594 after 平均 25.038 2.918
  40. #mot_tech_talk Mobility Technologies Co., Ltd. 実践編での設定 58 n ユーザごとにアプリ配⾞回数が1回増えると555円の売上貢献があるとする n

    before、afterの期間はそれぞれ28⽇(約1ヶ⽉)を想定 n 実験群のアプリ配⾞回数のリフトは事前に分かっている user_id pay_flg 実験群の場合1 before after 50000 1 5.0 3.0 50001 0 0.0 0.0 50002 0 1.0 0.0 50003 0 1.0 0.0 50004 0 3.0 0.0 … … … … 実験群 コントロール群 UU数 4,338 45,662 before 平均 20.953 3.594 after 平均 25.038 2.918 後期間への影響 実験群の場合 コントロール群の場合 期待する効果量
  41. Mobility Technologies Co., Ltd. #mot_tech_talk 59 Difference-In-Differencesの実⾏コード import statsmodels.api as

    sm import numpy as np did_df = pd.melt(df,id_vars = ['user_id','pay_flg’] , value_vars = [‘before',’after']) did_df['b1'] = did_df.pay_flg did_df['b2'] = np.where(did_df.variable == before',0,1) did_df['b3'] = did_df.b1 * did_df.b2 x = sm.add_constant(did_df[['b1','b2','b3']]) y = np.log(did_df[‘value’]) ## 対数変換 model = sm.OLS(y,x).fit() model.summary() ダミー変数の作成 Statsmodelsの線形回帰を実⾏
  42. #mot_tech_talk Mobility Technologies Co., Ltd. Difference-In-Differencesの実⾏結果 60 n DIDによる施策効果の推定は0.2889となった n

    つまりGO Payを利⽤したユーザの場合、後期間でのアプリ配⾞回数は28.89%リフトする • 𝛽! :前期間のコントロール群のベース値 • 𝛽" :前期間の実験群とコントロール群の差分 • 𝛽# :前期間と後期間のコントロール群の差分 • 𝜷𝟑 :前期間と後期間の実験群の差 − 後期間のコントロール群の差 • 𝜖:予測の誤差項 パラメータ coef std err t P>|t| [0.025 0.975] 𝛽' 0.7252 0.005 151.494 0.000 0.716 0.735 𝛽% 1.8875 0.016 116.145 0.000 1.856 1.919 𝛽- -0.1397 0.007 -20.643 0.000 -0.153 -0.126 𝛽. 0.2889 0.023 12.572 0.000 0.244 0.334 ※ ダミーデータによる結果
  43. #mot_tech_talk Mobility Technologies Co., Ltd. Difference-In-Differencesの実⾏結果 61 n DIDによる施策効果の推定は0.2889となった n

    つまりGO Payを利⽤したユーザの場合、後期間でのアプリ配⾞回数は28.89%リフトする パラメータ coef std err t P>|t| [0.025 0.975] 𝛽' 0.7252 0.005 151.494 0.000 0.716 0.735 𝛽% 1.8875 0.016 116.145 0.000 1.856 1.919 𝛽- -0.1397 0.007 -20.643 0.000 -0.153 -0.126 𝛽. 0.2889 0.023 12.572 0.000 0.244 0.334 実務上では、パラメータの真値が分からないため、 仮説やドメイン知識に基づいた妥当性判断から、ここで分析を終了する場合もある ※ ダミーデータによる結果
  44. #mot_tech_talk Mobility Technologies Co., Ltd. 推定値に潜むバイアスは存在するのか? 62 n 実務上では、真の効果量が未知のため結果が正しいかは分からない n

    しかし、事前の分析の実験群とコントロール群のbefore/afterの平均が ⼤きくズレている事が分かる 実験群 コントロール群 UU数 4,338 45,662 before 平均 20.953 3.594 after 平均 25.038 2.918 実験群とコントロール群で before / after のアプリ配⾞回数が⼤きくズレている 何かしらのバイアスが存在する?
  45. #mot_tech_talk Mobility Technologies Co., Ltd. 準備したデータに潜むバイアスとは? 63 n 「利⽤回数が多いユーザー程GOPayを利⽤しやすい」というシナリオを想定する n

    もともとのアプリ配⾞回数が多いユーザーは実験群に割り当てられやすいようしている user_id pay_flg 実験群の場合1 before after 50000 1 5.0 3.0 50001 0 0.0 0.0 50002 0 1.0 0.0 50003 0 1.0 0.0 50004 0 3.0 0.0 0% 20% 40% 60% 80% 100% 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 構成⽐ Before(前期間のアプリ利⽤回数) treatment_rate control_rate 実験群である確率 ・1% before < 8 ・50% before >= 8
  46. #mot_tech_talk Mobility Technologies Co., Ltd. 真の推定値は何だったのか? 64 n 準備したデータはDIDによる効果量が約40%になるように設定していた n

    実験群 : beforeの値に対して𝑁(𝜇 = 1.2, 𝜎 = 0.1)から取得した値を掛けている n コントロール群 : beforeの値に対して𝑁(𝜇 = 0.8, 𝜎 = 0.1)から取得した値を掛けている user_id pay_flg 実験群の場合1 before after 50000 1 5.0 3.0 50001 0 0.0 0.0 50002 0 1.0 0.0 50003 0 1.0 0.0 50004 0 3.0 0.0 … … … … 実験群 コントロール群 UU数 4,338 45,662 before 平均 20.953 3.594 after 平均 25.038 2.918 後期間への影響 実験群の場合 𝑁(𝜇 = 1.2, 𝜎 = 0.1) コントロール群の場合 𝑁(𝜇 = 0.8, 𝜎 = 0.1) 期待する効果量 約40%
  47. Mobility Technologies Co., Ltd. #mot_tech_talk 65 バイアスを除いたDifference-In-Differencesの実⾏コード import statsmodels.api as

    sm import numpy as np did_df = pd.melt(df.loc[df.before >= 8,:], id_vars = ['user_id','pay_flg’], value_vars = [‘before',’after']) did_df['b1'] = did_df.pay_flg did_df['b2'] = np.where(did_df.variable == 'bef',0,1) did_df['b3'] = did_df.b1 * did_df.b2 x = sm.add_constant(did_df[['b1','b2','b3']]) y = np.log(did_df['value’]) model = sm.OLS(y,x).fit() model.summary() ダミー変数の作成 Statsmodelsの 線形回帰を実⾏
  48. #mot_tech_talk Mobility Technologies Co., Ltd. バイアスを除いたDifference-In-Differencesの実⾏結果 66 n DIDによる施策効果の推定は0.4168となった n

    つまりGO Payを利⽤したユーザの場合、後期間でのアプリ配⾞回数は41.68%リフトする パラメータ coef std err t P>|t| [0.025 0.975] 𝛽' 2.8263 0.011 264.018 0.000 2.805 2.847 𝛽% 0.0162 0.015 1.068 0.286 -0.014 0.046 𝛽- -0.2597 0.015 -17.151 0.000 -0.289 -0.230 𝛽. 0.4168 0.022 19.382 0.000 0.375 0.459 • 𝛽! :前期間のコントロール群のベース値 • 𝛽" :前期間の実験群とコントロール群の差分 • 𝛽# :前期間と後期間のコントロール群の差分 • 𝜷𝟑 :前期間と後期間の実験群の差 − 後期間のコントロール群の差 • 𝜖:予測の誤差項 ※ ダミーデータによる結果
  49. #mot_tech_talk Mobility Technologies Co., Ltd. バイアスを除外した場合としていない場合 67 n before のアプリ配⾞数によるバイアスを除外した場合と除外しなかった場合

    n 最低限の正負の⽅向は合っていた n より真の値に近い値を推定する事ができた 真の効果 0.4 バイアスを除外した場合 バイアスを除外していない場合 0 回 推定効果 0.4168 上限 0.459 下限 0.375 推定効果 0.2889 上限 0.334 下限 0.244
  50. #mot_tech_talk Mobility Technologies Co., Ltd. Difference-In-Differencesから導き出された結論 68 クロスセルは発⽣している? 効果を上げるための施策実施 の必要性はある?

    ROIはどのぐらいになる? クロスセルの発⽣はしており、実験群のユーザーの場合 GO Pay利⽤後のアプリ配⾞数が40%リフトする GO Payを利⽤していないポテンシャルユーザーが約45,000UU程度 存在するので、利⽤促進やキャンペーンの実施などを 検討した⽅が良い 仮にコントロール群に割り振られた全ユーザーが推定通りの効果 を得られた場合、 全体の利⽤回数は⽉に約44,000回(20%)増加し、 売上が2400万円増えるため、2400万円までなら回収が⾒込まれる ※ ダミーデータによる結果
  51. #mot_tech_talk Mobility Technologies Co., Ltd. 後半のまとめ 70 n RCTによる効果量の推定が難しい事例として、 「クロスセルのユーザーのLTVに対する効果量の推定」事例を紹介しました。

    n 実験群とコントロール群のユーザーの質が異なる場合を説明し、 効果量の推定に 「Difference-In-Differences」 を利⽤した例を紹介しました。 n 効果量の推定をする前に 対象となるデータの分析を事前に⾏い、 バイアスの存在を検知する必要があります。
  52. Mobility Technologies Co., Ltd. #mot_tech_talk 71 ご視聴ありがとうございました n 分析グループではデータアナリストを採⽤中です n

    https://www.wantedly.com/projects/448697 n 今後のMoTイベント案内は Twitter @mot_techtalk のフォローをお願いします n アンケート回答にご協⼒お願いします n 回答者の中から抽選で10名様にGOクーポン¥2,000プレゼント!