Rで階層ベイズモデル


                    @yokkuns 里 洋平
                  yohei0511@gmail.com
                2013.01.26 第28回Tokyo.R


2013年1月26日土曜日
AGENDA

    ■ 自己紹介

    ■ 階層ベイズモデルとは

    ■ ユーザーの選択行動モデルでの例

           ■ 2項ロジットモデル

           ■ 階層ベイズ2項ロジットモデル

2013年1月26日土曜日
AGENDA

    ■ 自己紹介

    ■ 階層ベイズモデルとは

    ■ ユーザーの選択行動モデルでの例

           ■ 2項ロジットモデル

           ■ 階層ベイズ2項ロジットモデル

2013年1月26日土曜日
自己紹介

  ◆ 里 洋平(@yokkuns)


 ◆ 元Webエンジニアのデータサイエンティスト
      ・今は主にマーケティング周りを見てる



 ◆ 統計解析やデータマイニングをビジネスに適用
      ・時系列解析とか異常検知とか最適化とか

      ・いろんなモデルの構築


2013年1月26日土曜日
活動例: 勉強会の主催・執筆


                   Tokyo.R主催




                パッケージ本執筆しました!




2013年1月26日土曜日
活動例: 動画レコメンド

                閲覧されている動画の情報を用いておすすめ動画を表示する




2013年1月26日土曜日
活動例: 市場予測

                Web上の情報から市場予測




2013年1月26日土曜日
活動例: 異常検知
                              Anomaly detection

                    複数時系列から異常な振る舞いを検知する

                                                                            C
                                                                            A
        時系列のモデリング               複数時系列の異常検知                                  B

      時系列A                             時系列A

                                                                        異常な振る舞い
      時系列B


      時系列C                      時系列B          時系列C

                                 異常な振る舞いの時系列を検出




                例1:トラフィック異常検知                   例2:CM効果のノイズ除去

                    トラフィックA                          ケースA
                                                              CM効果
                    トラフィックB                          ケースB

                    トラフィックC      調査                  ケースC

                     異常な振る舞いをしている                    異常な振る舞いをしているケースを
                     トラフィックの原因を調査する                  除外して、CMの効果を算出する
                                                                                  85
2013年1月26日土曜日
活動例: 時系列解析と影響分析
                        TV Commercial Effects

                時系列的な振る舞いの特徴から各KPIへのCMの影響度を算出
                                                   イベン
                CM時系列                               ト

                                          新規
                                          登録


                              CM                   ARPP
                                                    U




                                          ARPU

            各KPIの時系列
                                                          その他
                                                           外部
                                   継続率
                                                           要因




                                                 ケース




                                                            87

2013年1月26日土曜日
新たな勉強会




          TokyoApache.Pig
          https://groups.google.com/group/tokyo_apache_pig




2013年1月26日土曜日
AGENDA

    ■ 自己紹介

    ■ 階層ベイズモデルとは

    ■ ユーザーの選択行動モデルでの例

           ■ 2項ロジットモデル

           ■ 階層ベイズ2項ロジットモデル

2013年1月26日土曜日
階層ベイズモデルとは

                統計モデルのパラメータに
       階層構造を持たせてベイズ推定する高性能なモデル




2013年1月26日土曜日
階層ベイズモデルと他のモデルの比較

                超パラメータを確率変数とする事で
                ノンパラメトリックと同等の頑健性




2013年1月26日土曜日
Rで階層ベイズモデルを実行するには
                 bayesmパッケージの
          rhier***という関数群が階層ベイズモデルの関数




2013年1月26日土曜日
階層ベイズモデルの例: シミュレーション用データ作成
    真のCVRとclick数(10∼20くらい)から乱数を使って
     サンプルデータを作成し、割り算で出したCVRと比較




2013年1月26日土曜日
階層ベイズモデルの例: シミュレーション用データ作成
    真のCVRとclick数(10∼20くらい)から乱数を使って
     サンプルデータを作成し、割り算で出したCVRと比較




2013年1月26日土曜日
階層ベイズモデルの例: シミュレーション用データ作成
    真のCVRとclick数(10∼20くらい)から乱数を使って
     サンプルデータを作成し、割り算で出したCVRと比較




2013年1月26日土曜日
階層ベイズモデルの例: シミュレーション用データ作成
    真のCVRとclick数(10∼20くらい)から乱数を使って
     サンプルデータを作成し、割り算で出したCVRと比較
                             結構ずれる




2013年1月26日土曜日
階層ベイズモデルの例: 推定結果

          個人毎だとclick数がすくないためかなりブレる




2013年1月26日土曜日
階層ベイズモデルの例: シミュレーション用データ作成
                真のCVRとclick数(10∼20くらい)から
                乱数を使ってサンプルデータを作成する




2013年1月26日土曜日
階層ベイズモデルの例: 階層ベイズ推定

     baysemパッケージのrhierBinLogit用のデータを作成




2013年1月26日土曜日
階層ベイズモデルの例: 階層ベイズ推定

                rhierBinLogit関数を実行




2013年1月26日土曜日
階層ベイズモデルの例: 推定結果

                割り算推定よりはブレが小さそう




2013年1月26日土曜日
階層ベイズモデルの例: 割り算推定と階層ベイズ推定の比較
                 割り算推定CVRよりも
                真のCVRに近くなっている




2013年1月26日土曜日
階層ベイズモデルの例: 割り算推定と階層ベイズ推定の比較
                 割り算推定CVRよりも
                真のCVRに近くなっている




2013年1月26日土曜日
AGENDA

    ■ 自己紹介

    ■ 階層ベイズモデルとは

    ■ ユーザーの選択行動モデルでの例

           ■ 2項ロジットモデル

           ■ 階層ベイズ2項ロジットモデル

2013年1月26日土曜日
参考

                Rで学ぶデータサイエンス
                マーケティング・モデル




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




                  インストールする




                  インストールしない




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




                  インストールする




                  インストールしない




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




                  インストールする




                  インストールしない




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




                              アイテムAを買う

                  インストールする


                              アイテムBを買う


                  インストールしない
                              アイテムCを買う




2013年1月26日土曜日
ユーザーの選択行動モデル


                ユーザーは様々な選択行動をしている




                              アイテムAを買う

                  インストールする


                              アイテムBを買う


                  インストールしない
                              アイテムCを買う




2013年1月26日土曜日
ユーザーの選択行動モデル

                     選択行動への影響を知る事で
                効率的な施策を実行する事が出来る

                       β1
                広告
                                    アイテムA

                      β2
          レコメンド

                            Model   アイテムB
                ・
                ・
                ・
                                    アイテムC
            その他        βn




2013年1月26日土曜日
2項ロジットモデル

                アイテムを買う・買わないのような
                     二択の選択行動モデル

                      β1
                広告


                     β2            購入する
          レコメンド

                           Model
                ・
                ・
                ・                  購入しない

            その他       βn




2013年1月26日土曜日
2項ロジットモデル

                    ロジスティック曲線の回帰モデルで表現
   各変数の回帰系数を市場反応パラメータとして解釈する


                       β1
                広告                                 購入する


                      β2
          レコメンド




                                    購入確率
                            Model
                ・
                ・
                ・
                                           購入しない
            その他        βn




2013年1月26日土曜日
Rによる実行: glm関数

                 一般化線形モデルの関数glmで
                   familyでbinominalを指定




                glm(formula, family, data, ...)




2013年1月26日土曜日
Rによる実行: データセット

                mlogitパッケージのKetchupデータセット
                   ケチャップのブランド選択データ

                個人ID   購入機会   選択結果   説明変数




2013年1月26日土曜日
Rによる実行: データセット

                ブランドをhuntsとstbの2種類だけに限定
                huntsの選択を0、stbの選択を1に変換




2013年1月26日土曜日
Rによる実行: 実行結果

        stbの購入確率は、huntsの値上がりの影響よりも
                stbの値引きの方が影響が大きい




2013年1月26日土曜日
AGENDA




   ■ 自己紹介

   ■ ユーザーの選択行動モデル

           ■ 2項ロジットモデル

           ■ 階層ベイズロジットモデル


2013年1月26日土曜日
ユーザー毎にパラメータを知りたい

                市場反応パラメータをユーザー毎に求めて
           ユーザーにあわせた施策を行えるようにしたい


                      β1
                広告                                購入する


                     β2
          レコメンド




                                   購入確率
                           Model
                ・
                ・
                ・
                                          購入しない
            その他       βn




2013年1月26日土曜日
ユーザー毎にパラメータを知りたい

                市場反応パラメータをユーザー毎に求めて
           ユーザーにあわせた施策を行えるようにしたい


                      βh1
                広告                                 購入する


                     βh2
          レコメンド




                                    購入確率
                            Model
                ・
                ・
                ・
                                           購入しない
            その他       βhn




2013年1月26日土曜日
2項ロジットモデルの限界

                ユーザーによる違いは考慮されていないため
                  個々で見ると非効率な部分もある




2013年1月26日土曜日
2項ロジットモデルの限界

                ユーザーによる違いは考慮されていないため
                  個々で見ると非効率な部分もある




2013年1月26日土曜日
2項ロジットモデルの限界

                ユーザーによる違いは考慮されていないため
                  個々で見ると非効率な部分もある




2013年1月26日土曜日
2項ロジットモデルの限界

                ユーザーによる違いは考慮されていないため
                  個々で見ると非効率な部分もある




2013年1月26日土曜日
2項ロジットモデルの限界

                ユーザーによる違いは考慮されていないため
                  個々で見ると非効率な部分もある




2013年1月26日土曜日
ユーザー毎のパラメータが知りたい

                市場反応パラメータはユーザー毎に違うはず
   しかし、ユーザー毎に推定するほどのデータはない・・


                                  ?


                              ?
                         ?




                         ?




2013年1月26日土曜日
ユーザー毎のパラメータが知りたい
       ユーザーは一人一人違うものの、共通な部分もある
           共通部分を全ユーザーの情報を用いて推定する

                 個人毎に回帰するには
                データが少ないが・・・




2013年1月26日土曜日
ユーザー毎のパラメータが知りたい
       ユーザーは一人一人違うものの、共通な部分もある
           共通部分を全ユーザーの情報を用いて推定する

                 個人毎に回帰するには
                データが少ないが・・・




2013年1月26日土曜日
ユーザー毎のパラメータが知りたい
       ユーザーは一人一人違うものの、共通な部分もある
           共通部分を全ユーザーの情報を用いて推定する

                 個人毎に回帰するには
                データが少ないが・・・




2013年1月26日土曜日
ユーザー毎のパラメータが知りたい
       ユーザーは一人一人違うものの、共通な部分もある
           共通部分を全ユーザーの情報を用いて推定する

                 個人毎に回帰するには   大まかな傾向は全体で推定
                データが少ないが・・・      個人毎に微調整




2013年1月26日土曜日
階層ベイズ2項ロジットモデルの構築




2013年1月26日土曜日
階層ベイズ2項ロジットモデルの構築




                     yh




2013年1月26日土曜日
階層ベイズ2項ロジットモデルの構築

           観測変数yhは個人パラメータβhを持つxhの関数



                              xh


                         βh   yh




2013年1月26日土曜日
階層ベイズ2項ロジットモデルの構築
                個人パラメータβhは
         共通パラメータVB,Δを持つデモグラ変数zhの関数


                       zh    xh

                 VB
                       βh    yh
                 Δ



2013年1月26日土曜日
階層ベイズ2項ロジットモデルの構築
                     共通パラメータVB,Δも確率変数
 多変量正規分布と逆ウィッシャート分布を事前分布とする


                               zh   xh
    事前分布
                V0
    IW(v0,V0)            VB
                v0
                               βh   yh
   事前分布         Σ0       Δ
  MVN(Δ0,Σ0)
                Δ0


2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定
                MCMC法を用いてパラメータを推定する
        MCMCについては@teramonagiさんの資料を確認




2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定

                βh,VB,Δについて適当に初期値を設定する



                             zh   xh
    事前分布
                 V0
    IW(v0,V0)          VB
                 v0
                             βh   yh
   事前分布          Σ0    Δ
  MVN(Δ0,Σ0)
                 Δ0


2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定

          VB,Δを固定してβhの事後分布からサンプリング



                          zh   xh
    事前分布
                V0
    IW(v0,V0)        VB
                v0
                          βh   yh
   事前分布         Σ0   Δ
  MVN(Δ0,Σ0)
                Δ0


2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定
                サンプリングされたβhを目的変数とする
                多変量回帰モデルからΔの事後分布を得る


                           zh   xh
    事前分布
                 V0
    IW(v0,V0)         VB
                 v0
                           βh   yh
   事前分布          Σ0   Δ
  MVN(Δ0,Σ0)
                 Δ0


2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定

                 Δとβhを固定してVBを発生させる



                           zh   xh
    事前分布
                V0
    IW(v0,V0)        VB
                v0
                           βh    yh
   事前分布         Σ0   Δ
  MVN(Δ0,Σ0)
                Δ0


2013年1月26日土曜日
階層ベイズ2項ロジットモデルのベイズ推定
                     M回以降の繰り返しについて
                 それぞれのパラメータを保存する


                             zh      xh
    事前分布
                V0
    IW(v0,V0)           VB
                v0
                             βh      yh
   事前分布         Σ0      Δ
  MVN(Δ0,Σ0)
                Δ0


2013年1月26日土曜日
Rによる実行例:データセット

                モデル評価のため、人工データを生成




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行

                rhierBinLogit関数を実行する




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                Δの推定結果




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                Δの分布




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                Δの分布




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                Δのサンプリング




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βh1の推定値




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βh2の推定値




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βh3の推定値




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βh4の推定値




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βh5の推定値




2013年1月26日土曜日
Rによる実行例:階層ベイズ2項ロジットモデルの実行結果

                βhの事後分布




2013年1月26日土曜日
AGENDA

    ■ 自己紹介

    ■ 階層ベイズモデルとは

    ■ ユーザーの選択行動モデルでの例

           ■ 2項ロジットモデル

           ■ 階層ベイズ2項ロジットモデル

2013年1月26日土曜日
ご清聴ありがとうございました!




2013年1月26日土曜日
APENDIX




2013年1月26日土曜日

Rで階層ベイズモデル