なぜ今、需要予測と販売データ分析が重要なのか
在庫の過不足は企業収益に直結する課題です。欠品が続けば機会損失が生まれ、過剰在庫はキャッシュフローを圧迫します。この問題を構造的に解決するのが、販売データをもとにした科学的な需要予測です。
本記事では、予測に必要なデータ項目の整理から、主要な予測手法の比較、運用フロー、KPI設定までを体系的に解説します。データ担当者・バイヤー・SCM担当者など、仕入れ精度の向上を目指すすべての方に向けた実践的な内容です。
需要予測の土台|販売データ項目の定義と整備
押さえるべき主要な販売データ項目
需要予測の精度は、インプットとなるデータの品質に大きく依存します。まず、どのような項目を収集・管理すべきかを明確にしておく必要があります。
| 項目 | 定義 |
|---|---|
| SKU(商品コード) | 商品を識別する最小単位のコード(JAN・GTINなど) |
| 販売数量 | 指定期間(日次/週次/月次)に販売された数量 |
| 販売金額 | 同期間における売上高(売上原価・利益は別途管理) |
| 顧客数 | ユニーク顧客数(重複なし) |
| 購買頻度 | 顧客あたりの購入回数や年換算頻度 |
| 返品数/返品率 | 返品件数、または返品額÷販売総額×100% |
| プロモーション情報 | キャンペーン実施日・割引率・対象SKU・期間 |
| 価格 | 商品の単価(時期・店舗別の価格変動も記録) |
| 販売チャネル | 店舗・ECサイト・卸などの経路 |
| 商品属性(マスタ) | カテゴリ・ブランド・サイズ・色・単位あたり数など |
特に重要なのは「販売×SKU×店舗×日次」という粒度でデータを管理することです。この粒度が保たれていないと、後工程の分析精度が大きく低下する可能性があります。欠測率やマスタの整合率も合わせてモニタリングする習慣が求められます。
データ品質チェックで見落としがちなポイント
- チャネル名の表記揺れ(「EC」「ネット」「オンライン」など)は統一する
- SKUコードの変更履歴を管理しないと、過去データと接続できなくなる
- プロモーション情報の欠落は、需要の急増を異常値として誤検知する原因になる
- 返品データの非同期(購入日≠返品日)は期間集計をずらす可能性がある
データ整備は地味な作業ですが、予測精度を左右する最重要ステップです。
需要把握に欠かせない指標と計算式
基本的なトレンド・季節性指標
需要の構造を理解するために、以下の指標を定期的に算出・可視化することが有効です。
移動平均(MA)
過去N期間の販売数量の平均値を算出し、短期的なトレンドを把握します。単純移動平均は理解しやすい反面、急変に対して反応が遅くなる特性があります。
季節指数
各月(または週)の需要傾向を全期間平均と比較した比率です。たとえば「7月の需要は年間平均の1.3倍」といった形で季節性の強さを定量化できます。
成長率(前年比)
前年同月比の成長率 = (今年売上 − 昨年同月売上)÷ 昨年同月売上 × 100%
長期のトレンド把握には年平均成長率(CAGR)が有効です。
在庫効率を測る指標
在庫回転率
在庫が一定期間に何回入れ替わったかを示します。
在庫回転率 = 売上原価 ÷ 平均在庫金額
回転率が高いほど在庫効率が良いと判断できますが、高すぎると欠品リスクが高まる可能性があります。
欠品率
需要があったにもかかわらず在庫がなかった割合を示します。
欠品率 = 欠品件数 ÷ 総注文数 × 100%
欠品率が高い状態が続くと、機会損失のみならず顧客満足度の低下にもつながる可能性があります。
在庫日数
在庫日数 = 365日 ÷ 在庫回転率
品切れや余剰在庫の目安となる指標であり、SKU別・カテゴリ別に比較することで優先対応箇所を特定できます。
リードタイム変動(標準偏差)
調達リードタイムの平均と標準偏差を把握することで、安全在庫の設定根拠が明確になります。標準偏差が大きいほど、多めの安全在庫が必要になる傾向があります。
過去データを活用した需要予測手法の比較
時系列分解(トレンド・季節性の抽出)
需要データをトレンド成分・季節成分・残差に分解する手法です。STL分解(Seasonal-Trend decomposition using LOESS)などが代表的です。
利点: 各成分を可視化でき、どの要因が需要変動を引き起こしているかを直感的に把握できます。
限界: 突発的なイベント(大規模セール・災害など)への対応は難しく、分解後の予測には別途手法が必要です。
指数平滑法(シングル/ホルト/ホルト・ウィンターズ)
直近の観測値に大きな重みをかけて平滑化する手法です。
- シングル指数平滑法: トレンドも季節性もないデータに適します
- ホルト法(二重指数平滑法): トレンドのあるデータに対応
- ホルト・ウィンターズ法: トレンドと季節性の両方を同時に考慮できます
利点: 実装が比較的容易で、データが少なくても動作しやすい。
限界: 外的ショック(突然の需要変化)には対応しにくい特性があります。
ARIMA/SARIMAモデル
自己回帰(AR)と移動平均(MA)を組み合わせた統計モデルです。SARIMAは季節性(Seasonal)を加えた拡張版です。
非定常データを差分化して定常にしてから適用するため、トレンドや季節性を持つ販売データに向いています。予測値とともに信頼区間が算出できるため、不確実性を定量的に示せる点が強みです。
利点: 統計的根拠が明確で、信頼区間を提示できます。
限界: 十分な履歴データ(数年分)が必要で、外部要因のモデル化が難しい面があります。前処理(定常化・パラメータ選定)にも一定の知識が求められます。
回帰分析(外部変数を含む需要予測)
価格・販促施策・天候・広告費など、需要に影響を与える説明変数を回帰モデルに組み込む手法です。
たとえばキャンペーン実施有無をダミー変数(0/1)として投入することで、販促効果を需要予測に直接反映させることができます。因果関係を定量化できる点が大きな強みです。
利点: 外部要因の影響を明示的にモデル化できます。
限界: 多変数の場合、変数選定・多重共線性への対処など高度な統計知識が必要です。
クラスタリング・RFM・コホート分析
これらはSKUや顧客を類型化し、グループ別の予測精度を高めるための補助的手法です。
- クラスタリング(K-means等): 売れ筋・死に筋・季節品などに商品を分類し、グループ特性に合ったモデルを選択できます
- RFM分析: 顧客をRecency(最終購買日)、Frequency(購買頻度)、Monetary(購買金額)でセグメント化し、需要トリガーを理解します
- コホート分析: 同時期に購入開始した顧客群の継続・離脱傾向を追跡し、将来の需要を推計します
これらは単独での予測モデルというより、需要の構造理解と既存モデルの精度向上を支援するアプローチです。
Croston法(間欠需要への対応)
注文がまばらにしか発生しない商品(スローモーバー)には、通常の時系列手法は適しません。Croston法は需要発生間隔と需要量を分けてモデル化する手法で、このような間欠需要に特化しています。
低頻度・高単価商品や部品類の在庫管理において有効な選択肢の一つです。
需要予測プロジェクトの実践フロー
7ステップの予測サイクル
データ収集 → 前処理・可視化 → 指標計算・特徴量作成 → モデル選定・学習
→ 予測と評価 → KPI設定・運用ルール化 → 実行・モニタリング(→ループ)
ステップ1:データ収集
POS・在庫・マスタ・販促情報を一元化。チャネルをまたぐデータは特に整合性確認が重要です。
ステップ2:前処理・可視化
欠損値の補完(前後値補間、ゼロ埋め、除外など)、外れ値の検出と処理、SKU・店舗コードの名寄せを実施します。
ステップ3:指標計算・特徴量作成
移動平均・季節指数・前年同期比・キャンペーンラグ変数などを追加。これが予測精度の差を生む重要な工程です。
ステップ4:モデル選定・学習
目的(短期予測・中長期計画・補充発注など)とデータ特性から手法を複数選択し、精度ベンチマークを実施します(例:ARIMA vs ETS vs Prophet)。
ステップ5:予測と評価
テスト期間での予測結果を生成し、誤差指標(MAE・MAPE・WAPEなど)で評価します。精度不足のSKUは別モデルやヒューリスティック補正を検討します。
ステップ6:KPI設定・運用ルール化
予測結果を安全在庫・発注点に変換し、発注ルール(定量発注・定期発注)に落とし込みます。
ステップ7:実行・モニタリング
運用後は週次・月次で実績と予測を比較し、欠品率・回転率・予測精度(WAPE等)をKPIとして継続監視します。
安全在庫と発注ルールの設計
安全在庫の計算方法
安全在庫は欠品を許容する確率(欠品許容率)から逆算するZ値(安全係数)と需要・リードタイムの変動を組み合わせて算出します。
計算式の例:
安全在庫 ≒ Z値 × 需要量の標準偏差 × √(リードタイム + 発注間隔)
たとえば、欠品許容率5%(Z値=1.65)、需要量の標準偏差が5個、リードタイム5日、発注間隔7日の場合:
| 欠品許容率 | 需要σ | リードタイム | 発注間隔 | 安全係数 | 安全在庫 |
|---|---|---|---|---|---|
| 5%(Z=1.65) | 5個 | 5日 | 7日 | 1.65 | 約29個 |
この安全在庫量は、リードタイムの変動が大きい商品や需要変動の激しい季節品では、さらに余裕を持たせる設計が求められる可能性があります。
発注点と経済的発注量(EOQ)の設定
発注点の算出:
発注点 = 予測リードタイム中の需要 + 安全在庫
たとえば予測需要が5個/日、リードタイムが5日、安全在庫が29個であれば、発注点は54個となります。
経済的発注量(EOQ):
発注コストと保管コストのバランスが最適になる発注量を求める公式です。
EOQ = √(2 × 発注費用 × 年間需要量 ÷ 年間保管費用)
たとえば年需要15,000個・発注費用22,500円・保管費用300円の場合、EOQは約1,500個という計算になります。
KPI設計と予測精度の継続改善
設定すべきKPIの例
| カテゴリ | KPI例 |
|---|---|
| 予測精度 | WAPE(加重絶対誤差率)・MAE(平均絶対誤差)・MAPE |
| 在庫効率 | 在庫回転率・在庫日数・滞留在庫率 |
| 欠品 | 欠品率・欠品起因の機会損失(推計) |
| 納品 | OTIF(オンタイム・イン・フル)・リードタイム分布 |
| データ品質 | 欠測率・マスタ整合率 |
予測精度指標だけでなく、在庫効率・欠品・データ品質を横断的に管理することが実務上の重要なポイントです。
ツール・ソフトウェアの選択
| ツール | 特徴 | 適した規模 |
|---|---|---|
| Excel | FORECAST.ETS関数で簡易予測可。手軽だが大量データには不向き | 小規模 |
| Power BI | ホルト法ベースの時系列予測機能搭載。ダッシュボード共有が容易 | 中規模〜 |
| Tableau | 指数平滑ベースの自動予測機能。可視化・多次元分析に強み | 中〜大規模 |
| Python/R | statsmodels・Prophet・scikit-learnで高度なモデル構築が可能 | データサイエンスチームがいる組織 |
| 需要予測SaaS | AI/機械学習による自動予測・発注提案。開発不要で高精度 | 中小〜大規模小売・卸 |
ツール選定では「何を自動化したいか」「どこまで内製化するか」を先に定義することが重要です。
リスク管理と注意点
予測を歪める主なリスクとその対策
データ品質の劣化
欠損・入力ミス・マスタ不整合が積み重なると予測が大きく歪む可能性があります。データクリーニングのルールを整備し、欠測率・マスタ整合率を定期的に監視する仕組みが有効です。
外部ショック(景気変動・気象・パンデミック等)
過去データに存在しない事象はモデルが対応しきれない場合があります。天候・経済指標などを説明変数として追加するか、シナリオ分析で感度を確認することが対策になります。
プロモーションバイアス
大規模なセール期間の需要急増をそのままモデルに学習させると、通常期の予測を過大評価する恐れがあります。キャンペーン変数を導入してベース需要と増分を分離することが推奨されます。
過学習(オーバーフィット)
訓練データへの過度な最適化は、未知データへの汎化性能を下げます。交差検証やウォークフォワードテストで汎化性能を事前に確認することが基本的な対策です。
まとめ:需要予測の実装で押さえるべき要点
需要予測の精度向上は一夜にして実現するものではなく、データ整備→指標設計→モデル選定→運用改善のサイクルを継続的に回すことで徐々に精度が高まっていくものです。
本記事のポイントを整理すると以下の通りです。
- 販売データは「SKU×店舗×日次」の粒度で管理し、欠測率・マスタ整合率をモニタリングする
- 在庫回転率・欠品率・リードタイム変動は需要把握の基本指標として定期計測する
- 予測手法は目的とデータ特性で選ぶ。単一手法に固執せず、複数モデルのベンチマークが重要
- 安全在庫はZ値と需要・リードタイムの変動から算出し、発注点・EOQと連携させる
- KPIは予測精度だけでなく在庫効率・欠品・データ品質を横断的に設計する
次のステップとして、自社のデータ粒度を確認し、まず在庫回転率と欠品率の定期計測から始めることをおすすめします。
コメント