SSブログ

【R stan】ベイズモデル その2:個体差を取り込んだモデル [データサイエンス、統計モデル]

【R stan】ベイズモデル その1:シンプルな線形回帰モデル
https://skellington.blog.ss-blog.jp/2020-04-20

こちらの続き

前回のmodel1は、個体差を考慮しない線形回帰モデル。
ベイズ(MCMC)を使っていますが、通常のlm(線形回帰モデル)と同じでした。

model2とmodel3ですが、どちらも個体差(RETAILER_ID)を取り込んだモデルとなっています。
model2_aとmodel2_bはやっていることはほぼ同じですが、model2_bの方が少しだけ計算が早いです。

model2ですが、個体差を考慮してはいるものの、メカニズムを考慮していません。
階層ベイズモデルではないです。
model3では、RETAILER_IDに共通のメカニズムを考慮した階層ベイズモデルとなっています。

精度比較です。
model 1: ベイズモデル:個体差なしの線形回帰モデル
 RMSE: 6377
 MAE: 2818

model 2a: 個体差を考慮した線形回帰モデル
 RMSE: 3502
 MAE: 943

model 2b: 個体差を考慮した線形回帰モデル b
 RMSE: 3500
 MAE: 942

model 3: 階層ベイズ線形モデル
 RMSE: 3637
 MAE: 970

model2とmodel3は、model1に比べて劇的に精度が向上しています。
model2とmodel3は、あまり変わりませんでした。

その原因ですが、cheeseのデータですが、各RETAILERのサンプルサイズがかなり大きいです。
なので、共通のメカニズムを考えなくでも、個別のRETAILERごとに線形回帰モデルを作っても十分な精度が出ている。
かりに、サンプルサイズが数件しかないようなデータであった場合、model2で作ってしまうとオーバーフィットしてしまう可能性があり、model3のような書き方をする方が良いかと思います。

続きを読む


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