需要予測の重要性
製造業のバリューチェーンを俯瞰すると、以下のような流れになります。
生産計画 → 調達 → 製造 → 在庫 → 販売
この中で最初の「生産計画」が間違うと、全体の効率に大きく影響します。
計画が少なすぎれば機会損失、多すぎれば過剰在庫となり、いずれも経営にダメージを与えかねません。受注生産の場合は販売が確定しているため、在庫リスクは小さいですが、見込み生産では、需要を正確に見積もることが極めて重要です。
現実には、多くの中小企業が「去年より5%増で!」というように、社長や店長の経験と勘で生産計画を立てています。しかし、実際の需要にはさまざまな要因が影響します。
- 競合商品の存在
- 消費者の購買意欲(マインド)
- 商品力やブランドの認知度、カニバライゼーション
- 値引きやキャンペーンの有無
- 天候・季節・気温
- 曜日や時間帯、販売員の対応 など
つまり、消費者が商品を手に取るまでには、多くの要素が複雑に絡んでいるのです。
たとえば、「米」や「卵」のように日常的に購入される商品は、比較的需要が安定しています。
一方、新作の音楽やトレンド商品は、ファンの有無やタイミング次第で予測が難しくなる傾向があります。
このように、需要予測は簡単ではありません。ですが、近年はその精度を高めるための環境が急速に整ってきています。
- ビッグデータの整備:売上や購買履歴など、大量のデータを蓄積・活用できるようになった
- データの多様化:POSデータ、天候、SNS、イベント情報などが取得しやすくなった
- モデルの進化と使いやすさの向上:高度な予測モデルを、専門知識がなくても扱えるツールが増えた
筆者も、ある企業の需要予測モデル構築に数年間関わってきました。
その経験から、「適切なデータが揃えば、高精度な予測は十分に可能である」と確信しています。これから数回にわたって、中小企業でも実践できる需要予測の進め方を、具体的にご紹介していきます。
使用データについて
今回は、Kaggleで公開された「M5 Forecasting – Accuracy」というデータセットを使います。
このデータは、アメリカの大手小売業(Walmartとされています)の日別販売実績をもとにしたもので、以下のような構成です:
- sales_train_validation.csv:商品の売上実績(最大1913日分)
- calendar.csv:日付、曜日、祝日、イベント情報など
- sell_prices.csv:商品×店舗×週ごとの販売単価
🔗 Kaggle(https://www.kaggle.com/)は、Googleが提供する世界最大のデータ分析プラットフォームでコンペへの参加や高品質なデータの取得、コード共有が可能となってます。
※ 今回はデータ量の関係から、cat_id=FOODS、state_id=CA(=カリフォルニア州の食品カテゴリ)に絞って使用します。
予測の前に知っておきたい“2つの法則”
需要予測を始める前に、データの傾向を把握しておくことが重要です。
コンビニのお弁当を例に考えてみましょう。
3つのケース:
- 幕の内弁当やのり弁などの定番商品
- 冷製パスタやチーズカツカレーなどの季節商品
- 弁当カテゴリ全体の販売数量(集約値)
どれが一番予測しやすいと思いますか?
筆者の経験では、③ → ① → ②の順で予測しやすくなります。
この理由を説明する2つの法則があります。
🔷 法則①:過去に法則性があるほど予測しやすい
予測モデルは、過去のデータから法則を見つけて未来を予測します。そのため、明確なパターンや傾向があるデータほど精度が高くなります。
また、予測に影響を与える要因(気温・曜日・イベントなど)を明示的にモデルに与える必要があります。これを「特徴量(feature)」といい、どのような特徴量を与えるかが精度に大きく影響します。
逆に、要因が不明確なデータをそのまま使うと、モデルが誤学習してしまうこともあります。
たとえば、コロナ禍の売上低迷を「この商品は売れない」と誤解する可能性があります。
そのような場合は:
- 「この期間は特殊要因(例:コロナ)です」と予測モデルに伝える
- 該当期間のデータを除外する
といったデータクレンジングが必要です。
🔷 法則②:集約されたデータは予測しやすくなる
個別商品の売上はバラつきが大きく、イベントやプロモーションの影響を受けやすいため、予測が難しくなります。
一方で、全体やカテゴリ単位に集約することで、個々のバラつきが平均化され、より安定した傾向が現れやすくなります。
また、商品間の関係性も予測精度に影響を及ぼします。たとえば、店舗の販売スペースには限りがあるため、ある商品が売り切れると、代替商品が代わりに売れるといった カニバライゼーション(Cannibalization) の影響が生じることもあります。
こうした理由から、コンビニ全体の弁当販売数(③)は、個別商品に比べて最も予測しやすいという結果になるのです。
でも現実はそう簡単ではない
「だったら全体の販売数だけ予測すればいいのでは?」と思うかもしれません。
しかし、製造計画や仕入れ計画では個別商品の予測が必要不可欠です。
たとえば:
- 海苔はどれだけ必要か?
- パスタやチーズの在庫は足りるか?
といった判断には商品単位の需要予測が不可欠です。
さらに、店舗別や時間帯別に予測するとなると、難易度は一気に上がります。
日本全体の販売量を予測するよりも難しいことすらあります。
この2つの法則を理解しておくだけでも、今後の分析がぐっと楽になります。
次は、実際のデータを使って、どのような傾向があるかを確認していきましょう。
データの可視化で傾向をつかむ
予測モデルを作る前に、データの傾向を俯瞰して把握することが重要です。
急いで予測精度だけ見て終わるのではなく、以下の観点を確認しておきましょう。
✅ チェックポイント
- 全体の傾向:販売が増える/減るタイミングに法則はあるか?
- 商品別の傾向:商品ごとに売れ方に違いがあるか?
- 異常値:変なデータ、極端なスパイクはないか?
これらのチェックにはグラフによる可視化が最適です。
今回は「QlikView」というBIツールを使って確認しています。
(1)年別・月別の販売傾向
年度ごとに販売数を確認したところ、2011年を除いて毎月ほぼ同じペースで販売されています。
※ 2016年4月でデータが終了。2016年の1〜3月はやや高めの販売量でした。
(2)店舗別の傾向(2015年)
CA_3店舗が最も売上が多く、CA_2店舗は6月から売上が急増している傾向が見られました。
(3)商品別の傾向(2015年)
以下は商品別の月別の販売数量です。
商品数が多いため一見わかりにくいですが、ある程度売れている商品に絞って確認したところ:商品ごとに売上のばらつきが大きく、月によって極端に売れない場合もある商品もあることが分かります。
今回は、ここまでの「データの俯瞰」を行いました。
次回からはいよいよ、実際の予測モデルを使って、どれだけ当たるのかを検証していきます。
コメント