SSブログ

bayesmのcheeseを使ったモデリング、その4~階層ベイズを使った線形回帰モデル [階層ベイズ]

Rの bayesm というパッケージに入っている cheese というデータを使って、いろいろ分析していきたいと思います。

1. 通常の線形回帰モデル
  http://skellington.blog.so-net.ne.jp/2017-11-07
2. RETAILER をフラグ化した線形回帰モデル
  http://skellington.blog.so-net.ne.jp/2017-11-08
3. 機械学習のアプローチ
  http://skellington.blog.so-net.ne.jp/2017-11-09
4. 階層ベイズを使った線形回帰モデル ← 今回
  http://skellington.blog.so-net.ne.jp/2017-11-10

目的変数:VOLUME(販売数量)
観測モデルの説明変数:DISP(陳列の有無), log_PRICE(販売価格のlog), 切片
階層モデル:切片のみ

RETAILERごとに説明変数のβ(係数)を求めることができます。

本当は、RETAILERに関する情報(土地情報, 店舗数)などを追加で用意できると、それらの特徴ごとに、βの傾向を把握することができます。
例えば、地方都市だと、陳列の有無が重要であるとか。

今回の cheese にはそのような情報が含まれていないので、切片のみのモデルとなっています。

【推定結果と実際の値の散布図】


【推定結果と実際の値のピアソンの積率相関係数】
通常の線形回帰モデル:0.098
フラグ化した線形回帰モデル:0.705
ニューラルネットワーク:0.816
決定木(CHAID):0.705
階層ベイズを使った線形回帰モデル:0.961

となって、圧倒的に階層ベイズを使った線形回帰モデルの精度が高いです。

もともと、階層ベイズでモデルを作る場合、モデル作成用データに対して
推定結果と実際の値は非常に近い値になる傾向にあります。

上記の結果は、モデル検証用データ(モデル作成時に使用しなかったデータ)に対しての精度です。

【RETAILERの回帰係数】
機械学習の場合、精度は良いのだが、中身がブラックボックスという欠点がありましたが、
階層ベイズを使った線形回帰モデルは、中身はシンプルな重回帰なので理解もしやすい。

回帰係数のパラメータが共通のものではなく、RETAILERごとに異なっている点が注意です。









nice!(7)  コメント(0) 
共通テーマ:学問

nice! 7

コメント 0