Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rで階層ベイズモデル

22,800 views

Published on

Rで階層ベイズモデル

  1. 1. Rで階層ベイズモデル @yokkuns 里 洋平 yohei0511@gmail.com 2013.01.26 第28回Tokyo.R2013年1月26日土曜日
  2. 2. AGENDA ■ 自己紹介 ■ 階層ベイズモデルとは ■ ユーザーの選択行動モデルでの例 ■ 2項ロジットモデル ■ 階層ベイズ2項ロジットモデル2013年1月26日土曜日
  3. 3. AGENDA ■ 自己紹介 ■ 階層ベイズモデルとは ■ ユーザーの選択行動モデルでの例 ■ 2項ロジットモデル ■ 階層ベイズ2項ロジットモデル2013年1月26日土曜日
  4. 4. 自己紹介 ◆ 里 洋平(@yokkuns) ◆ 元Webエンジニアのデータサイエンティスト ・今は主にマーケティング周りを見てる ◆ 統計解析やデータマイニングをビジネスに適用 ・時系列解析とか異常検知とか最適化とか ・いろんなモデルの構築2013年1月26日土曜日
  5. 5. 活動例: 勉強会の主催・執筆 Tokyo.R主催 パッケージ本執筆しました!2013年1月26日土曜日
  6. 6. 活動例: 動画レコメンド 閲覧されている動画の情報を用いておすすめ動画を表示する2013年1月26日土曜日
  7. 7. 活動例: 市場予測 Web上の情報から市場予測2013年1月26日土曜日
  8. 8. 活動例: 異常検知 Anomaly detection 複数時系列から異常な振る舞いを検知する C A 時系列のモデリング 複数時系列の異常検知 B 時系列A 時系列A 異常な振る舞い 時系列B 時系列C 時系列B 時系列C 異常な振る舞いの時系列を検出 例1:トラフィック異常検知 例2:CM効果のノイズ除去 トラフィックA ケースA CM効果 トラフィックB ケースB トラフィックC 調査 ケースC 異常な振る舞いをしている 異常な振る舞いをしているケースを トラフィックの原因を調査する 除外して、CMの効果を算出する 852013年1月26日土曜日
  9. 9. 活動例: 時系列解析と影響分析 TV Commercial Effects 時系列的な振る舞いの特徴から各KPIへのCMの影響度を算出 イベン CM時系列 ト 新規 登録 CM ARPP U ARPU 各KPIの時系列 その他 外部 継続率 要因 ケース 872013年1月26日土曜日
  10. 10. 新たな勉強会 TokyoApache.Pig https://groups.google.com/group/tokyo_apache_pig2013年1月26日土曜日
  11. 11. AGENDA ■ 自己紹介 ■ 階層ベイズモデルとは ■ ユーザーの選択行動モデルでの例 ■ 2項ロジットモデル ■ 階層ベイズ2項ロジットモデル2013年1月26日土曜日
  12. 12. 階層ベイズモデルとは 統計モデルのパラメータに 階層構造を持たせてベイズ推定する高性能なモデル2013年1月26日土曜日
  13. 13. 階層ベイズモデルと他のモデルの比較 超パラメータを確率変数とする事で ノンパラメトリックと同等の頑健性2013年1月26日土曜日
  14. 14. Rで階層ベイズモデルを実行するには bayesmパッケージの rhier***という関数群が階層ベイズモデルの関数2013年1月26日土曜日
  15. 15. 階層ベイズモデルの例: シミュレーション用データ作成 真のCVRとclick数(10∼20くらい)から乱数を使って サンプルデータを作成し、割り算で出したCVRと比較2013年1月26日土曜日
  16. 16. 階層ベイズモデルの例: シミュレーション用データ作成 真のCVRとclick数(10∼20くらい)から乱数を使って サンプルデータを作成し、割り算で出したCVRと比較2013年1月26日土曜日
  17. 17. 階層ベイズモデルの例: シミュレーション用データ作成 真のCVRとclick数(10∼20くらい)から乱数を使って サンプルデータを作成し、割り算で出したCVRと比較2013年1月26日土曜日
  18. 18. 階層ベイズモデルの例: シミュレーション用データ作成 真のCVRとclick数(10∼20くらい)から乱数を使って サンプルデータを作成し、割り算で出したCVRと比較 結構ずれる2013年1月26日土曜日
  19. 19. 階層ベイズモデルの例: 推定結果 個人毎だとclick数がすくないためかなりブレる2013年1月26日土曜日
  20. 20. 階層ベイズモデルの例: シミュレーション用データ作成 真のCVRとclick数(10∼20くらい)から 乱数を使ってサンプルデータを作成する2013年1月26日土曜日
  21. 21. 階層ベイズモデルの例: 階層ベイズ推定 baysemパッケージのrhierBinLogit用のデータを作成2013年1月26日土曜日
  22. 22. 階層ベイズモデルの例: 階層ベイズ推定 rhierBinLogit関数を実行2013年1月26日土曜日
  23. 23. 階層ベイズモデルの例: 推定結果 割り算推定よりはブレが小さそう2013年1月26日土曜日
  24. 24. 階層ベイズモデルの例: 割り算推定と階層ベイズ推定の比較 割り算推定CVRよりも 真のCVRに近くなっている2013年1月26日土曜日
  25. 25. 階層ベイズモデルの例: 割り算推定と階層ベイズ推定の比較 割り算推定CVRよりも 真のCVRに近くなっている2013年1月26日土曜日
  26. 26. AGENDA ■ 自己紹介 ■ 階層ベイズモデルとは ■ ユーザーの選択行動モデルでの例 ■ 2項ロジットモデル ■ 階層ベイズ2項ロジットモデル2013年1月26日土曜日
  27. 27. 参考 Rで学ぶデータサイエンス マーケティング・モデル2013年1月26日土曜日
  28. 28. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている2013年1月26日土曜日
  29. 29. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている2013年1月26日土曜日
  30. 30. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている インストールする インストールしない2013年1月26日土曜日
  31. 31. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている インストールする インストールしない2013年1月26日土曜日
  32. 32. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている インストールする インストールしない2013年1月26日土曜日
  33. 33. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている アイテムAを買う インストールする アイテムBを買う インストールしない アイテムCを買う2013年1月26日土曜日
  34. 34. ユーザーの選択行動モデル ユーザーは様々な選択行動をしている アイテムAを買う インストールする アイテムBを買う インストールしない アイテムCを買う2013年1月26日土曜日
  35. 35. ユーザーの選択行動モデル 選択行動への影響を知る事で 効率的な施策を実行する事が出来る β1 広告 アイテムA β2 レコメンド Model アイテムB ・ ・ ・ アイテムC その他 βn2013年1月26日土曜日
  36. 36. 2項ロジットモデル アイテムを買う・買わないのような 二択の選択行動モデル β1 広告 β2 購入する レコメンド Model ・ ・ ・ 購入しない その他 βn2013年1月26日土曜日
  37. 37. 2項ロジットモデル ロジスティック曲線の回帰モデルで表現 各変数の回帰系数を市場反応パラメータとして解釈する β1 広告 購入する β2 レコメンド 購入確率 Model ・ ・ ・ 購入しない その他 βn2013年1月26日土曜日
  38. 38. Rによる実行: glm関数 一般化線形モデルの関数glmで familyでbinominalを指定 glm(formula, family, data, ...)2013年1月26日土曜日
  39. 39. Rによる実行: データセット mlogitパッケージのKetchupデータセット ケチャップのブランド選択データ 個人ID 購入機会 選択結果 説明変数2013年1月26日土曜日
  40. 40. Rによる実行: データセット ブランドをhuntsとstbの2種類だけに限定 huntsの選択を0、stbの選択を1に変換2013年1月26日土曜日
  41. 41. Rによる実行: 実行結果 stbの購入確率は、huntsの値上がりの影響よりも stbの値引きの方が影響が大きい2013年1月26日土曜日
  42. 42. AGENDA ■ 自己紹介 ■ ユーザーの選択行動モデル ■ 2項ロジットモデル ■ 階層ベイズロジットモデル2013年1月26日土曜日
  43. 43. ユーザー毎にパラメータを知りたい 市場反応パラメータをユーザー毎に求めて ユーザーにあわせた施策を行えるようにしたい β1 広告 購入する β2 レコメンド 購入確率 Model ・ ・ ・ 購入しない その他 βn2013年1月26日土曜日
  44. 44. ユーザー毎にパラメータを知りたい 市場反応パラメータをユーザー毎に求めて ユーザーにあわせた施策を行えるようにしたい βh1 広告 購入する βh2 レコメンド 購入確率 Model ・ ・ ・ 購入しない その他 βhn2013年1月26日土曜日
  45. 45. 2項ロジットモデルの限界 ユーザーによる違いは考慮されていないため 個々で見ると非効率な部分もある2013年1月26日土曜日
  46. 46. 2項ロジットモデルの限界 ユーザーによる違いは考慮されていないため 個々で見ると非効率な部分もある2013年1月26日土曜日
  47. 47. 2項ロジットモデルの限界 ユーザーによる違いは考慮されていないため 個々で見ると非効率な部分もある2013年1月26日土曜日
  48. 48. 2項ロジットモデルの限界 ユーザーによる違いは考慮されていないため 個々で見ると非効率な部分もある2013年1月26日土曜日
  49. 49. 2項ロジットモデルの限界 ユーザーによる違いは考慮されていないため 個々で見ると非効率な部分もある2013年1月26日土曜日
  50. 50. ユーザー毎のパラメータが知りたい 市場反応パラメータはユーザー毎に違うはず しかし、ユーザー毎に推定するほどのデータはない・・ ? ? ? ?2013年1月26日土曜日
  51. 51. ユーザー毎のパラメータが知りたい ユーザーは一人一人違うものの、共通な部分もある 共通部分を全ユーザーの情報を用いて推定する 個人毎に回帰するには データが少ないが・・・2013年1月26日土曜日
  52. 52. ユーザー毎のパラメータが知りたい ユーザーは一人一人違うものの、共通な部分もある 共通部分を全ユーザーの情報を用いて推定する 個人毎に回帰するには データが少ないが・・・2013年1月26日土曜日
  53. 53. ユーザー毎のパラメータが知りたい ユーザーは一人一人違うものの、共通な部分もある 共通部分を全ユーザーの情報を用いて推定する 個人毎に回帰するには データが少ないが・・・2013年1月26日土曜日
  54. 54. ユーザー毎のパラメータが知りたい ユーザーは一人一人違うものの、共通な部分もある 共通部分を全ユーザーの情報を用いて推定する 個人毎に回帰するには 大まかな傾向は全体で推定 データが少ないが・・・ 個人毎に微調整2013年1月26日土曜日
  55. 55. 階層ベイズ2項ロジットモデルの構築2013年1月26日土曜日
  56. 56. 階層ベイズ2項ロジットモデルの構築 yh2013年1月26日土曜日
  57. 57. 階層ベイズ2項ロジットモデルの構築 観測変数yhは個人パラメータβhを持つxhの関数 xh βh yh2013年1月26日土曜日
  58. 58. 階層ベイズ2項ロジットモデルの構築 個人パラメータβhは 共通パラメータVB,Δを持つデモグラ変数zhの関数 zh xh VB βh yh Δ2013年1月26日土曜日
  59. 59. 階層ベイズ2項ロジットモデルの構築 共通パラメータVB,Δも確率変数 多変量正規分布と逆ウィッシャート分布を事前分布とする zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  60. 60. 階層ベイズ2項ロジットモデルのベイズ推定 MCMC法を用いてパラメータを推定する MCMCについては@teramonagiさんの資料を確認2013年1月26日土曜日
  61. 61. 階層ベイズ2項ロジットモデルのベイズ推定 βh,VB,Δについて適当に初期値を設定する zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  62. 62. 階層ベイズ2項ロジットモデルのベイズ推定 VB,Δを固定してβhの事後分布からサンプリング zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  63. 63. 階層ベイズ2項ロジットモデルのベイズ推定 サンプリングされたβhを目的変数とする 多変量回帰モデルからΔの事後分布を得る zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  64. 64. 階層ベイズ2項ロジットモデルのベイズ推定 Δとβhを固定してVBを発生させる zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  65. 65. 階層ベイズ2項ロジットモデルのベイズ推定 M回以降の繰り返しについて それぞれのパラメータを保存する zh xh 事前分布 V0 IW(v0,V0) VB v0 βh yh 事前分布 Σ0 Δ MVN(Δ0,Σ0) Δ02013年1月26日土曜日
  66. 66. Rによる実行例:データセット モデル評価のため、人工データを生成2013年1月26日土曜日
  67. 67. Rによる実行例:階層ベイズ2項ロジットモデルの実行 rhierBinLogit関数を実行する2013年1月26日土曜日
  68. 68. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 Δの推定結果2013年1月26日土曜日
  69. 69. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 Δの分布2013年1月26日土曜日
  70. 70. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 Δの分布2013年1月26日土曜日
  71. 71. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 Δのサンプリング2013年1月26日土曜日
  72. 72. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βh1の推定値2013年1月26日土曜日
  73. 73. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βh2の推定値2013年1月26日土曜日
  74. 74. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βh3の推定値2013年1月26日土曜日
  75. 75. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βh4の推定値2013年1月26日土曜日
  76. 76. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βh5の推定値2013年1月26日土曜日
  77. 77. Rによる実行例:階層ベイズ2項ロジットモデルの実行結果 βhの事後分布2013年1月26日土曜日
  78. 78. AGENDA ■ 自己紹介 ■ 階層ベイズモデルとは ■ ユーザーの選択行動モデルでの例 ■ 2項ロジットモデル ■ 階層ベイズ2項ロジットモデル2013年1月26日土曜日
  79. 79. ご清聴ありがとうございました!2013年1月26日土曜日
  80. 80. APENDIX2013年1月26日土曜日

×