Successfully reported this slideshow.
Your SlideShare is downloading. ×

Rで売上予測のデモ(回帰分析)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 18 Ad

More Related Content

Slideshows for you (20)

Similar to Rで売上予測のデモ(回帰分析) (18)

Advertisement

Recently uploaded (20)

Rで売上予測のデモ(回帰分析)

  1. 1. Rで売上予測のデモ 第⼋回 雑談会 2015/12/22 成⽥裕美
  2. 2. 2 あんただれ︖ • いわゆる統計&分析屋 – 専⾨統計調査⼠ – SAS認定プロフェッショナル ビジネスアナリスト – R, SAS, SPSSなんでもやります • ⼈事・組織系コンサルファーム出⾝ • 三沢市出⾝&在住/2016年1⽉ 開業予定 ‒ ⼦連れ出戻りUターンです♡ 成⽥ 裕美(なりた ひろみ)
  3. 3. 3 データ分析の⽬的 • データを要約する(記述統計、可視化) • 仮説を検証する(統計的仮説検定) • 仮説を創造する(データマイニング) • 未来を予測する(回帰分析、機械学習) ↑今回はコレ
  4. 4. 4 売上予測の重要性 • 売れ残る ⇒ ロスの発⽣ • 売れすぎる ⇒ 機会の損失 過去の実績から未来の売上を予測 経営資源の最適化 根拠(データ)に基づく販売戦略 売れ残っても 売れすぎても 致命傷
  5. 5. 5 統計解析⽤⾔語 R • なんてったってタダ♡ • 世界3⼤統計ソフトウェアの1つ    (R, SAS, SPSS) • オープンソースなので⽇々進化する Rってスゴイんだぜ︕︕︕ 昔は⼤⾦払わないと出来なかった分析がタダで出来ます
  6. 6. 6 Rのデモ ごぼうビールの消費量を予測する 月 平均気温 消費量 百ℓ 1 5.7 2.41 2 6.4 3.91 3 7.9 4.32 4 13.9 5.55 5 19.7 5.63 6 21.6 6.23 7 27.9 8.34 8 29.1 8.39 9 28.1 7.33 12 8.9 4.77 11 13.2 4.95 10 18.5 5.51
  7. 7. 7 散布図&相関係数 相関係数 =0.95 気温が上がるほど 消費量も増える 気温と消費量の 間には強い正の 相関がある
  8. 8. 8 これが回帰分析 すべてのデータからの距離が 最も短くなる予測式を求める
  9. 9. 9 消費量 = 0.19(百ℓ)× 気温(℃) + 2.4 気温が1℃上昇すると、平均消費量が19ℓ増える 回帰分析の結果(1)
  10. 10. 10 回帰分析の結果(2) 切⽚と気温が消費量を予測する上で意味が あるのかを、検定という⼿法で検証 2つとも最⾼ランクの★3つなので、予測の上で ほぼほぼ有効だということがいえる。
  11. 11. 11 回帰分析の結果(3) 決定係数R²は予測式の当てはまりの良さを 表す。(0に近いほど当てはまりが悪く、 1に近いほど当てはまりが良い) 今回0.9なので、だいぶ当てはまりが良い、 つまり精度の⾼い予測式だといえる。
  12. 12. 12 信頼区間と予測区間 ⾚︓信頼区間 予測式の信頼幅 を表します 緑︓予測区間 予測値の取りう る幅を表します データを取り直して同じ分析を 繰り返したとしたら、100回の うち95回はこの範囲内に予測 式・予測値が収まると考えられ ますよ、という意味 ⿊︓予測式
  13. 13. 13 でもね。。。 • たった1つの変数から精度の⾼い予測式が 出来ることは、⾮常にまれ • 実際は、消費量に影響する様々な変数を複 数使って予測するケースがほとんど(重回 帰分析)
  14. 14. 14 最⼤電⼒ (千kw) = 16770.6                 +(181.1 × 最⾼気温)+(125.0 × 最低気温)              - 123.7 (晴) + 101.1 (⾬)     + 6384.6 (⽉) 6269.2 (⽕) 6276.4 (⽔) 6156.9 (⽊) 5942.3 (⾦) 2427.8 (⼟) - 1674.7(⽇祝)- 5614.5 (年末年始)        重回帰分析ってこんな感じ〜
  15. 15. 15 重回帰分析の注意点 • 予測するための変数をたくさん投⼊すれば するほど、理論上は予測精度が⾼くなる • でも変数が増えすぎると、予測式が安定し なくなってヘンテコな係数が出たりする (多重共線性に気をつけろ︕) • いかに少数精鋭の変数を選び出してシンプ ルで美しいモデルを作れるか、ここはまさ にアナリストの腕の⾒せどころ
  16. 16. 16 重回帰分析の発展形 • 今回お話したのは、⼀番単純な線形モデル • 曲線関係を表したり、もっと複雑な関係 (交互作⽤とか)をモデルに組み込んだり、 ⼈⼯知能の⼿法を取り⼊れたりして、デー タ分析の世界はどんどん進化 • でも基本的な原理や考え⽅は共通している
  17. 17. 17 参考︓デモに使⽤したRのコード #---ごぼうビールの売上データ ⽉ <- c(1:12) 気温 <- c(5.7,6.4,7.9,13.9,19.7,21.6,27.9,29.1,28.1,18.5,13.2,8.9) 消費量 <- c(2.41,3.91,4.32,5.55,5.63,6.23,8.34,8.39,7.33,5.51,4.95,4.77) beer <- data.frame(⽉,気温,消費量); beer #---これを散布図にしてみると p1 <- ggplot (beer, aes(x = 気温, y = 消費量)) p1 + geom_point(size = 5)+ labs(title = "気温とごぼうビール消費量の散布図") #---相関係数を算出する round(cor(beer$消費量 , beer$気温),2) #---回帰分析を実⾏してみよう beer.lm <- lm (消費量 ~ 気温, data = beer);summary(beer.lm) #---実測値と予測値を⽐べてみる 実測値 <- beer[,3] ; 予測値 <- round(predict(beer.lm),2);(data.frame(実測値, 予測値)) #---予測値を計算しよう new <- data.frame (気温 = 20) #来⽉の平均気温が20度という予報が出たと仮定 predict(beer.lm, newdata = data.frame(気温 = 20)) #---信頼区間と予測区間 #(conf <- predict(beer.lm, new_dat, interval="confidence")) #信頼区間 #(pred <- predict(beer.lm, new_dat, interval="prediction")) #予測区間 #---信頼区間と予測区間のグラフ new1 <- data.frame("気温"=seq(5,30,0.2)) conf <- predict(beer.lm, new1, interval="confidence") pred <- predict(beer.lm, new1, interval="prediction") matplot(new1$気温, cbind(conf), lty=c(1,2,2), col=c(1,2,2), type="l", xlim=c(5,30), ylim=c(2,10), xlab="気温", ylab="消費量") par(new=T) matplot(new1$気温, cbind(pred), lty=c(1,2,2), col=c(1,3,3), type="l", xlim=c(5,30), ylim=c(2,10), xlab="気温", ylab="消費量")
  18. 18. 18 Fin ご清聴ありがとうございました。 (*´ω`)

×