0
100人のための統計解析
和食レストラン編
2014.04.19
@berobero11
第38回R勉強会@東京(#TokyoR)
• Excel で 重回帰 する本
• 問題設定 と サンプルデータ が Good
第2章 和食レストラン
過去3か月に来店経験ある人に対して,
平日夜の利用に関するアンケートデータ(1000人分)
調査
ID
年齢 性別 家族構成
CM
イメージ
来店
回数
利用
金額
定食 麺 丼 デザート
サイド
メニュー
ソフト
ドリ...
書籍の手法&結論
CMイメージ お酒 年齢 定食 女性
• 来店回数×利用金額 を 総利用金額 と定義し,
応答変数 として重回帰
• Rでは以下と同じ
– lm( 総利用金額 ~
年齢 + 性別 + 既婚(子供なし) + 既婚(子供あり) +...
• まず可視化!
• 統計モデリングのススメ
1
2
100人のための統計解析
• まず可視化!
• 統計モデリングのススメ
1
2
はじめは 散布図行列
• corrplot {corrplot}
– キレイ 散布図が表示できない
• pairs {graphics}
– インストール不要 相関係数出すにはカスタム必要
• ggpairs {GGally}
– キレイ {g...
corrplot {corrplot}
pairs {graphics}
ggpairs {GGally}
ggpairs {GGally}
• まず可視化!
• 統計モデリングのススメ
1
2
教科書
通称: 久保本, 久保緑本, 久保岩波本
訂正情報: http://hosho.ees.hokudai.ac.jp/~kubo/ce/IwanamiBookErrata.html
重回帰の 前提条件に 注意
[久保本 3章 図3.9より引用]
平均値がマイナス??
バラつきが正規分布?? だいぶマシ!
[来店回数][利用金額]の分布
来店回数
カウント
利用金額/100
カウント
来店0を混ぜた 重回帰の功罪
1回も夜間に来店したことがなくても
– 常連になりそうな人
– 1回あたりの利用金額が大きそうな人
はいるはず
そこで
 Zero-Inflated Poisson 分布に従うと考える
夜間の来店の可能性 と 常連度 を分離する
一人一人の行動を見たときに,
dZIP {gamlss.dist} を使いました
年齢, 性別, …
来店回数
利用金額
来店回数
利用金額
Rだけでは柔軟なモデリングが難しい
{R2WinBUGS}+ WinBUGS
{rstan}+ Stan
計算時間
来店回数 × 利用金額 の
RMSE (円)
個体差なしモデル 6 min (Stan) 4607
個体差ありモデル 60 min (Stan) 1272
(参考) 重回帰 lm() < 1 s 4623
予測値
(円)
誤差
(円)...
BUGSコードの例
Zero-Inflated Poisson
回帰
結果の分かりやすさのため θ ⇔ 1 -θにして実装しています
キックするRコード
txt読み込んでゴニョゴニョ
dataをセット
parameterをセット
推定させる (MCMCサンプリング)
結果 | 推定値は分布で得られる
結果 | 回帰係数
• 夜間に来店する確率 up:
– 年齢 CMイメージ 女性 定食
• 常連度 up:
– 年齢 デザート CMイメージ 女性
• 1来店あたりの利用金額 up:
– 既婚(子供なし) 女性 既婚(子供あり)
お酒 年齢
結果 | 推定値の間の関係
常連度 と
1来店あたりの利用金額 は
負の相関
• まず可視化!
• 統計モデリングのススメ
1
2
どうしてそういう図になったかよく考える
重回帰では得られない知見がいっぱい
参考URL (予定含む)
• 散布図行列のRコードと説明
– http://heartruptcy.blog.fc2.com/blog-entry-147.html
• BUGSコード, Stanコードと説明
– http://heartrup...
Upcoming SlideShare
Loading in...5
×

100人のための統計解析 和食レストラン編

5,707

Published on

0 Comments
33 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,707
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
53
Comments
0
Likes
33
Embeds 0
No embeds

No notes for slide

Transcript of "100人のための統計解析 和食レストラン編"

  1. 1. 100人のための統計解析 和食レストラン編 2014.04.19 @berobero11 第38回R勉強会@東京(#TokyoR)
  2. 2. • Excel で 重回帰 する本 • 問題設定 と サンプルデータ が Good
  3. 3. 第2章 和食レストラン 過去3か月に来店経験ある人に対して, 平日夜の利用に関するアンケートデータ(1000人分) 調査 ID 年齢 性別 家族構成 CM イメージ 来店 回数 利用 金額 定食 麺 丼 デザート サイド メニュー ソフト ドリンク お酒 5 54 女性 未婚 3 0 0 1 0 1 0 0 0 0 9 46 女性 未婚 2 0 0 1 0 0 0 0 0 0 11 27 女性 未婚 3 0 0 1 1 0 0 0 1 0 12 35 女性 未婚 3 1 2200 1 0 1 0 0 1 0 … … … … … … … … … … … … … … 908 33 男性 既婚(子供なし) 3 0 0 1 1 1 0 0 0 0 965 35 男性 既婚(子供なし) 3 6 700 1 1 1 0 0 0 1 979 46 男性 既婚(子供なし) 4 1 2000 1 1 0 0 1 0 1 987 34 男性 既婚(子供なし) 3 0 0 1 1 1 0 0 0 0 昼夜問わず メニュー注文経験 1来店あたりの 典型的な利用金額 平日夜の来店回数
  4. 4. 書籍の手法&結論 CMイメージ お酒 年齢 定食 女性 • 来店回数×利用金額 を 総利用金額 と定義し, 応答変数 として重回帰 • Rでは以下と同じ – lm( 総利用金額 ~ 年齢 + 性別 + 既婚(子供なし) + 既婚(子供あり) + CMイメージ + 定食 + 麺 + 丼 + デザート + サイドメニュー + ソフトドリンク + アルコール, data=d) • 結論: 総利用金額upするには,
  5. 5. • まず可視化! • 統計モデリングのススメ 1 2 100人のための統計解析
  6. 6. • まず可視化! • 統計モデリングのススメ 1 2
  7. 7. はじめは 散布図行列 • corrplot {corrplot} – キレイ 散布図が表示できない • pairs {graphics} – インストール不要 相関係数出すにはカスタム必要 • ggpairs {GGally} – キレイ {ggplot2}に慣れが必要 ☺ ☹ ☺ ☹ ☺ ☹
  8. 8. corrplot {corrplot}
  9. 9. pairs {graphics}
  10. 10. ggpairs {GGally}
  11. 11. ggpairs {GGally}
  12. 12. • まず可視化! • 統計モデリングのススメ 1 2
  13. 13. 教科書 通称: 久保本, 久保緑本, 久保岩波本 訂正情報: http://hosho.ees.hokudai.ac.jp/~kubo/ce/IwanamiBookErrata.html
  14. 14. 重回帰の 前提条件に 注意 [久保本 3章 図3.9より引用] 平均値がマイナス?? バラつきが正規分布?? だいぶマシ!
  15. 15. [来店回数][利用金額]の分布 来店回数 カウント 利用金額/100 カウント
  16. 16. 来店0を混ぜた 重回帰の功罪 1回も夜間に来店したことがなくても – 常連になりそうな人 – 1回あたりの利用金額が大きそうな人 はいるはず そこで
  17. 17.  Zero-Inflated Poisson 分布に従うと考える 夜間の来店の可能性 と 常連度 を分離する 一人一人の行動を見たときに,
  18. 18. dZIP {gamlss.dist} を使いました
  19. 19. 年齢, 性別, … 来店回数 利用金額 来店回数 利用金額
  20. 20. Rだけでは柔軟なモデリングが難しい {R2WinBUGS}+ WinBUGS {rstan}+ Stan
  21. 21. 計算時間 来店回数 × 利用金額 の RMSE (円) 個体差なしモデル 6 min (Stan) 4607 個体差ありモデル 60 min (Stan) 1272 (参考) 重回帰 lm() < 1 s 4623 予測値 (円) 誤差 (円) 以降では 個体差なしモデル を紹介
  22. 22. BUGSコードの例 Zero-Inflated Poisson 回帰 結果の分かりやすさのため θ ⇔ 1 -θにして実装しています
  23. 23. キックするRコード txt読み込んでゴニョゴニョ dataをセット parameterをセット 推定させる (MCMCサンプリング)
  24. 24. 結果 | 推定値は分布で得られる
  25. 25. 結果 | 回帰係数 • 夜間に来店する確率 up: – 年齢 CMイメージ 女性 定食 • 常連度 up: – 年齢 デザート CMイメージ 女性 • 1来店あたりの利用金額 up: – 既婚(子供なし) 女性 既婚(子供あり) お酒 年齢
  26. 26. 結果 | 推定値の間の関係 常連度 と 1来店あたりの利用金額 は 負の相関
  27. 27. • まず可視化! • 統計モデリングのススメ 1 2 どうしてそういう図になったかよく考える 重回帰では得られない知見がいっぱい
  28. 28. 参考URL (予定含む) • 散布図行列のRコードと説明 – http://heartruptcy.blog.fc2.com/blog-entry-147.html • BUGSコード, Stanコードと説明 – http://heartruptcy.blog.fc2.com/blog-entry-148.html
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×