エクセルで需要予測を始める方法(来客数の予測)

エクセルで回帰分析を行う方法を紹介します。
回帰分析を使うと飲食店の来客数やスーパーの売れ行きを予測する式を手軽に作れます。
回帰分析を行うことで、休日にお客さんが何人増えて、雨の日に何人減るのか、具体的な数字を知ることができます。
今回は2005年に行われた愛知万博の来場者数を使って回帰分析をしてみます。

エクセルの分析ツールを有効にする方法

エクセルで回帰分析を行うには「分析ツール」を有効にする必要があります。
分析ツールをすでに使える場合はエクセルの分析ツールで重回帰分析を使う方法に進んでください。

はじめにメニューの左上の「ファイル」( ① )を選択します。
エクセルのメニューの画像

次に「オプション」( ② )を選択します。
エクセルのオプションの画像

その次は「アドイン」( ③ )を選択します。
アドインのメニューが右側に表示されたら、下の方にある「設定」ボタン( ④ )を押します。
エクセルのアドインの画像

有効なアドインとして表示された項目の中から「分析ツール」( ⑤ )を選択し、右の「OK」ボタンを押します。
エクセルのアドインの画像2

最初の画面に戻って「データ」のタブ( ⑥ )を選択すると「データ分析」( ⑦ )が表示されるようになります。
エクセルのメニューの画像2

エクセルの分析ツールで重回帰分析を使う方法

ここから分析を始めます。
まずは分析したいデータを用意します。
下の図は2005年に行われた愛知万博の入場者数のデータです。
入場者数のデータの画像
左から3番目のデータは1日の入場者数です。
この数がこの先どうなるか知りたいので、これを「目的変数」と呼びます。

左から4番目のデータは前日までの7日間の平均入場者数です。
翌日の入場者数を予測するためにこのデータを利用することにします(理由は省略します)。
「目的変数」を予測するために使うデータを「説明変数」と呼びます。

右から2番目のデータ「休日」は、2つ目の「説明変数」です。
土日祝日の場合は1、平日の場合は0としています。
回帰分析を行うにはデータが数字である必要があるためです。
(説明変数が2つ以上ある回帰分析が重回帰分析です)

一番右のデータは1日の降水量(単位はミリ/日)です。
これを3つ目の「説明変数」として使います。

データができたらメニューから「データ」タブ( ⑥ )を選択し、「データ分析」( ⑦ )をクリックします。
エクセルのメニューの画像2

下図のような表示が出ますので、「回帰分析」( ⑧ )を選択して「OK」を押します。
エクセルの分析ツールのメニュー画像

すると下のような「回帰分析」のメニューボックスが開きます。
エクセルの回帰分析の画像
「入力Y範囲(Y)」( ⑨ )には、目的変数として”入場者数”とその下のデータ( ⑨' )を選択します。
今回は全てのデータを選択しました。
「入力X範囲(X)」( ⑩ )には、説明変数として”過去7日間の平均入場者数”と”休日”と”1日の降水量”とその下の全てのデータ( ⑩' )を選択します。
次に「ラベル」を選択してチェックを付けます(11)。
最後に右側の「OK」を押すと下のような結果が出力されます。
(見やすくなるように表示する桁を変更しています。実際にはもっとたくさんの桁数の数字が表示されます)
重回帰分析の結果
回帰モデルは「目的変数」=「切片(係数1)」+「説明変数1」×「係数2」+「説明変数2」×「係数3」+・・・となります。
この回帰モデルがどの程度使える計算式になっているか、エクセルの出力結果を見ながら確認していきます。

出力結果(12)の見方
重相関R : 目的変数(入場者数)と説明変数(過去7日間の平均入場者数、休日、1日の降水量)の相関です。
     1に近いほど良い結果です。
     0.887ですので、目的変数と説明変数には強い相関が見られます。
重決定R2 : 決定係数。重相関Rを2乗した値。1に近ければ説明変数を使って目的変数を精度良く予測できます。
      0.788はまずまずの結果です。
      (無駄な説明変数があってもこの数字は大きくなりますので、次の補正R2も確認します)
補正R2 : 説明変数の数を考慮した決定係数。無駄な説明変数があると補正R2は小さくなります。
     回帰モデルの良し悪しは重決定R2よりも補正R2で判断します。
     0.784はまずまずの結果です。
標準誤差 : 回帰モデルの予測誤差の大きさを表します。精度が高いほど小さくなります。
     この回帰モデルを使った入場者数の予測は±2万人くらいは日常的に外れることを想定する必要があります。

出力結果(13)の見方
t値 : t値が大きければ「切片」や「説明変数」は意味があると考えることができます。
   目安は|t値| > 2(t値の絶対値が2を超える)です。
   「切片」のt値は-0.15ですので、この切片(-766)には意味がないかもしれません。
   その他の説明変数はt値の絶対値が2以上ありますので、意味がありそうです。
P値 : 係数が偶然0以外の値になる確率です。
   「切片」のP値は0.88ですので、「切片」の値は使いません(切片の値は本当は0かもしれません)。
   その他の説明変数は0.00ですので使えます。
下限95%と上限95% : 係数の信頼区間。95%の確率で係数がこの範囲内に収まると分析されています。
          2種類ありますが、通常は1つ目だけ見れば十分です。

出力結果を確認した結果「切片」の値は使わないことにします。
入場者数 = 0.989 × 過去7日間の平均入場者数 + 23562(休日のみ)- 720 × 1日の降水量
という計算式が導き出されました。
この式から次のようなことがわかります。
・翌日の入場者数は過去7日間の平均入場者数に近い値になることが予想されます。
・翌日が休日なら約2万4千人入場者数が増えることが予想されます。
・翌日が雨なら、降水量1ミリあたり約700人入場者数が減ることが予想されます。

一応の結果は出ましたが、説明変数を増やしたりデータの取り方を変更して他にも予測式を作成してください。
作った予測式を比較して、一番精度の高い予測式を採用します。
予測式の比較には、補正R2や標準誤差が役に立ちます。
もう一歩進んで赤池情報量基準(AIC)を使う方法もあります(AICの求め方はここでは省略します)。
AICで比較すると無駄な説明変数を減らして予測式をシンプルにすることができます。

予測式の精度を上げるための次のステップ

予測式の精度を上げるには、いくつかの手順が必要です。

1. 説明変数の使い方を変える。
  1日の降水量を説明変数として使いましたが、30ミリの雨と60ミリの雨ではお客さんの数はあまり変わらないかもしれません。
  もしそうなら説明変数の値を考え直す必要があります。
  降水量と入場者数の散布図を描いてみるとヒントが見つかるかもしれません。

2. 有効な説明変数を見つける。
  学校が夏休みの期間や盆休みの期間、3連休の日などはいつも以上に入場者数が増えるかもしれません。
  他に入場者数に影響しそうな要因を考えて検証する必要があります。
  様々な説明変数と目的変数(入場者数)の関係を散布図で描画してみると、意味がありそうな説明変数が見えてきます。
  また、今回は7日間の平均入場者数をベースとしましたが、過去1週間の平日の入場者数をベースとすべきかもしれません。

3. 回帰分析とは別の手法を行う。
  予測式を作る方法は他にもたくさんあります。
  例えばSARIMAモデルやニューラルネットワークなどがあります。
  回帰分析を使った予測式では季節変化のように周期的な変化を表現できません。
  (月曜、火曜、水曜・・・の各曜日や春夏秋冬を説明変数にしてしまうという手はありますが、作業が煩雑になります)
  SARIMAモデルでは季節変化を予測に組み込むことができます。
  ニューラルネットワークはいわゆる人工知能に使われている予測モデルです。
  ニューラルネットワークでは精度の高い予測が期待できますが、なぜそのような結論となったのかわかりにくいという短所もあります。
  手軽さ、精度、わかりやすさなど、それぞれの手法に長所と短所があるため適切な予測手法を選択することが必要です。

参考:統計用語も参考にしてください。