知見のアーカイブ

需要予測の導入の際に留意事項は?移動平均から最新モデルまで検証

記事

需要予測の導入の際に留意事項は?移動平均から最新モデルまで検証

本記事では、社内の需要予測の取り組みを行う際に検討すべき留意事項をまとめました。また、複数の予測モデルを実データで実際に比較検証を行います。用いたのは小売データであるオープンデータ『M5』で、ウォルマートの3,049商品・10店舗、2011年から2016年までの1,941日分の実売データです。

経験に基づく毎日の勘の発注も、立派な需要予測

需要予測というと専用のシステムの話に聞こえますが、明日はいくつ売れそうだから何個頼んでおこう、と決めている時点で、それはもう需要予測です。 天気を見て多めに入れる、去年の同じ時期を思い出す、先週売れた数をそのまま使う、といった意思決定も需要予測に該当します。

なのでこの記事では、予測をゼロから始める話ではなく、いま人がやっている予測を、どこまで機械に任せられるのか、任せるとしたら何に気をつけるのかという方向で考えます。

何を決めるために予測するのかで、必要なものが変わる

需要予測という一つの技術があるわけではありません。何を決めるために使うのかで、必要な予測期間も、まとめる粒度も変わります。

何を決めるか いつの時点の数字が要るか まとめる粒度
発注と仕入れ 数ヶ月先、企業によっては1年以上先 商品や商品群
人員配置とシフト 2週間から2ヶ月先 拠点や時間帯
物流と在庫配置 輸送のサイクルに従う 拠点別の販売量
生産計画と販売計画 生産・販売計画のサイクルに従う ロット単位に丸められる

発注で予測期間は実務要件に合わせて変わってくる

何日先を当てるかは、発注してから届くまでの時間が決めます。輸入を伴う商材だと、リードタイムが数ヶ月から1年以上になることもありえます。

この期間は、後の需要予測の設計に大きく影響を与えます。3ヶ月先を当てないといけないのに、明日の需要を当てるモデルを作っても仕方ないからです。そして当然ですが、先の未来ほど推定精度は悪化するのが通常です。

人員配置は、在庫と違って直前には動かせない

シフトを組む都合で、必要になるのは2週間前から2ヶ月前あたりでしょうか。企業・グループによって幅があります。在庫なら直前の追加発注で微調整できることもありますが、シフト設計は中々そうはいきません。

物流と在庫配置で当てるのは、拠点別の販売量

物流や在庫移動では、どこにいくつ置くかを決めるので、全社の合計ではなく拠点ごとの数字が必要です。これが次に出てくる粒度の話に直結します。

精度95%の意味とは?精度指標を制するものが需要予測を制する。

ここからが実測を行ってみましょう。まず素朴な予測だけを使って、まとめる粒度だけを変えてみました。手法は、直近の値をそのまま伸ばす、先週の同じ曜日をコピーする、直近N日の平均を取る、といった非常に単純なものです。

粒度で誤差が9倍動く

商品・店舗の組み合わせまで細かく見ると誤差は73.9%、全社合計で丸めると8.6%でした。同じデータ、同じ期間、同じ手法なのに、誤差の数値にはなんと9倍の開きがあります。

つまり精度は、見方によってここまで簡単に変わってしまう指標なのです。精度95%を実現しました、と言われたとき、例えばそれが全社の月次合計の話なのか、商品ごと店舗ごとの日次の話なのかだけでも、難しさがまったく違います。

また、発注のリードタイムが数ヶ月なら、そもそも商品・店舗組み合わせの日次予測は要りません。 必要なのはもっと集約された、もっと先の期間の数字です。細かい粒度で誤差70%という数字は絶望的に見えますが、その粒度を誰も必要としていないなら、悲観する意味がなかったりします。

より実務に近い観点で言えばもうひとつ、細かい粒度でデータを見た時は、評価期間の売上の54.4%が0でした。半分以上の商品が、その日は1個も売れていなかったのです。こうした商品は、平均を当てにいく発想そのものが合わないので、別扱いが要ります。こういった例外の扱いが、実務での需要予測では非常に重要です。

比べるものがないと、良し悪しは判断できない

次に、先ほどの素朴な需要予測手法と、回帰分析、Prophet、LightGBM、そして2026年時点で新しい部類に入る基盤モデルのChronos-2を、同じ条件で比べました。学習期間も評価期間も評価指標も揃えています。

粒度が変われば勝つ手法も入れ替わる

破線が素朴な手法の最良の指標値です。この線を超えられなかった手法が、両方の粒度にあります。

驚くことに、商品・店舗の粒度では、より高度なモデルである回帰やProphet、LightGBMも、直近28日の平均モデルに負けてしまいました。手間をかけて学習させた結果が、平均を取るだけの計算に及ばないということが普通に起きます。そして驚くことに、これは実際に実務でもよく見ることです。

こういった結果は、これは比べる相手を置いて初めて見えます。LightGBMの誤差は69.7%でしたとだけ言われても、良いのか悪いのか誰にも分かりません。同じデータで平均を取るだけだと68.0%だと知って、初めて意味が出るのです。

MAPEが20%以下なら良好、という基準の出どころ

需要予測の記事を読んでいると、MAPEが20%以下なら良好、10%以下なら非常に良い、といった基準をよく見かけます。今回読んだ記事にも複数出てきました。ただし、出典を書いていた記事は1本もありませんでした。

たどると、Lewis (1982) という予測手法の教科書の40ページに行き着きます。ただし、この4段階の区分が経験的に検証されたという証拠は原典側にも見当たらず、MAPEを絶対値で評価すること自体、その後の予測研究では否定的に扱われています。

実務的には、さきほどの粒度で9倍動くという結果を思い出すほうが早いと思います。20%という数字が良いか悪いかは、何をどの粒度で予測しているかを抜きには決まりません。

なお、需要予測でMAPEを使うと、売れない日が多い商品では分母がゼロになって計算が壊れます。この記事で加重平均絶対パーセント誤差を使っているのはそのためです。経済産業省のガイドブックでも、需要予測ではこちらと誤差の分布を見ることが多いと書かれています。

手法ごとの得意不得意を、同じ条件で見てみる

実測と予測を重ねると、それぞれの手法が何をしているかが見えてきます。

実測と予測を重ねる

灰色が実測、色が予測で、その間の面積が外した量です。週ごとの山と谷は、どの手法もだいたい拾えています。

一方で気になるのは、どの手法も山の頂点を低めに見積もっていることです。4つとも共通して、ピークで色の線が灰色の下に来ています。

ここは現場の感覚と食い違うところだと思います。現場からは「ピークが見たい」という要望がよく出ます。ただ実際には、平常時の積み重ねのほうが発注の損得を大きく動かしていることが多く、そしていま見たとおり、ピークはどの手法も苦手です。 要望をそのまま受け取ってピークに寄せた設計にすると、当たらないところに労力を注ぐことになります。

手法ごとの傾向を、実測から整理するとこうなります。

  • 移動平均は、細かい粒度で意外なほど強いです。売れない日が多い商品では、下手に動くより平均に寄せたほうが当たります
  • 先週の同じ曜日をコピーは、集約した粒度で強くなります。曜日の波がはっきり出るからです
  • 回帰は、今回はどの粒度でも素朴な手法に届きませんでした
  • Prophetは集約した粒度で安定しますが、300商品ぶんの学習に58秒かかりました
  • LightGBMは集約した粒度で最も当たりました。ただし細かい粒度では移動平均に負けています
  • Chronos-2は、細かい粒度で唯一、素朴な手法を明確に超えました。しかも学習を一切していません。事前に学習済みのモデルをそのまま当てているだけで、所要時間は5秒でした

学習しないほうが速くて当たる、という逆転が起きています。基盤モデルは重くて遅いという印象があるかもしれませんが、少なくとも今回の条件では逆でした。

ひとつ付け加えると、価格やイベントといった情報を追加で与えても試しましたが、目立った改善はありませんでした。 Prophetは73.9%から75.2%へ、Chronos-2は61.1%から63.0%へ、むしろ悪化しています。情報を足せば当たるようになる、というのは思い込みでした。

うまくいかない理由は、たいてい自社の内側にあります

需要予測の解説記事が挙げる「当たらない理由」を数えてみると、多い順に属人化、天候などの外部要因、データ不足でした。どれも自社の外側に原因を置く説明で、そのまま「だからシステムを入れましょう」に接続します。

実務で詰まるのは、もう少し内側の話だと思っています。

実務上の制約を見落としたまま精度を追ってしまう。 発注ロットが箱単位なら、予測を細かく当てても発注数は丸められます。誤差を半分にしても発注が1箱も変わらないなら、その改善には意味がありません。リードタイム、最低発注量、賞味期限、倉庫の容量。こうした制約を先に並べておかないと、努力の向き先を間違えます。

多めに外すのと欠品するのとで、損の大きさが違う。 多めはある程度許されるが欠品は許されない、という現場は珍しくありません。ところが多くの手法は平均を当てにいくので、設計上ちょうど半分の確率で足りなくなります。どちらに倒すかは、精度とは別に決める必要があります。

現場がいま出している精度を、大きく超えないと使われない。 ベテランの発注を少し上回った程度では、現場は今までのやり方を変えません。逆に、ある水準を下回った瞬間に信頼を失います。超える相手は他社の事例ではなく、隣の席の担当者です。

現場の要望を、そのまま設計に落とさない。 現場は予測精度という概念を持っていないことが多く、この日は多い、この日は少ない、という見方をしています。だからピークが見たいと言います。要望は要望として受け止めつつ、何が損得を決めているのかは別に考える必要があります。

欠品した日の売上を、需要として学習してしまう。 売れなかったのか、置いていなかったのかは、売上データからは区別できません。今回使ったM5にも在庫切れの記録はなく、売上ゼロと欠品が混ざっています。欠品を需要ゼロとして学習すると、予測が下がり、発注が減り、また欠品する、という悪循環になります。

1回の検証で判断すると、運を実力と読み違えます

ここまでの数字は、評価する期間を1本だけ取って測ったものです。それで足りるのかを確かめるため、評価する28日間を6本ずらして繰り返しました。

評価期間を6本ずらしたときのブレ幅

点が各期間の結果、灰色の帯が最良から最悪までの幅です。幅が広く、しかも互いに重なっています。

正直に書くと、これで自分の結論がひとつ崩れました。1本目の期間だけを見たとき、Prophetは先週の同じ曜日をコピーするだけの予測に負けていました。ところが6期間の平均を取ると、Prophetのほうが明確に上でした。1本目がたまたまコピーに有利な期間だっただけです。

つまり、実測をやっている本人が、1期間の結果から誤った結論を出しかけました。良い数字を見せられたら、まず別の期間でも同じかを確かめる、という話です。

期間ごとの勝者も入れ替わりました。店舗の粒度では、6期間のうちChronos-2が3回、LightGBMが3回勝っています。どちらが優れているかは、この実験では決められません。一方、商品×店舗の細かい粒度では順位が安定していて、Chronos-2が6期間すべてで1位でした。順位が運で決まる粒度と、そうでない粒度があります。

もうひとつ共通していたのは、年末年始を含む期間はどの手法も精度が1.5倍ほど悪化したことです。イベント期は誰も当てられない、というのは実測でもそのとおりでした。

未来の情報が混ざっていないか

検証のときにもうひとつ気をつけたいのが、予測したい値そのものが手がかりに紛れ込んでいないか、です。よくあるのは移動平均を作るときで、当日ぶんをずらし忘れると、当てたい数字が特徴量の中に入り込みます。検証の数字は当然良くなりますが、本番では当日の実績はまだ分かりません。

今回読んだ11本のうち、この話に触れていた記事はゼロでした。精度が急に良くなったときほど、疑う価値があります。

予測にかかる費用が、予測で得する額を超えることがあります

経済産業省のガイドブックには年間15万円からという試算が載っていますが、これは中小企業がツールを使って小さく始める前提のもので、相場ではありません。社名は伏せますが、実際にはAIモデルが年間数億円規模になって使えなくなったケースさえあります。

また参考までに、今回の実験で測った所要時間を置いておきます。300商品ぶんを予測するのに、Prophetは58秒、Chronos-2は5秒でした。商品数が数万に増え、それを毎日繰り返すとどうなるかは、この比から想像がつきます。精度を少し上げるために計算量が桁で増えるなら、その改善は割に合わないかもしれません。

始める前に、決めておきたい4つのこと

  • 何を決めるために予測するのかを先に決める。 発注なのか、シフトなのか、拠点への配分なのか。それによって、いつの時点の、どの粒度の数字が要るかが決まります
  • 比べる相手を置く。 先週の同じ曜日をコピーする、直近28日の平均を取る。この程度の計算がどこまで当たるかを先に測っておけば、あとから出てくる数字の良し悪しが判断できます
  • 1回の検証で決めない。 期間をずらして繰り返すと、順位が入れ替わることがあります
  • 精度以外の制約を先に並べる。 発注ロット、リードタイム、欠品をどこまで許すか。精度を追う前に、そもそも何が発注数を決めているのかを確かめます

需要予測そのものに価値があるわけではなく、その先の判断が良くなって初めて意味が出ます。当たっているのに使われない予測を作らないために、最初の設計に時間をかける価値は十分にあると思います。

お役立ち資料
国内99件のAI・データ活用プロジェクトの成功事例をまとめた資料です。 関心のある業界や、気になる関連企業の成功事例の詳細な事例集をご覧にいただけます。
ダウンロードはこちら

この記事の実測について

  • データ:M5 Forecasting Accuracy(Walmartの実売データ、3,049商品×10店舗、1,941日)
  • 学習と評価:時系列順に分割し、直近28日を評価。未来の実績は手がかりに使っていません
  • 指標:加重平均絶対パーセント誤差
  • 検証:評価する28日間を6本ずらして繰り返し
  • 手法:移動平均などの素朴な予測、リッジ回帰、Prophet、LightGBM、Chronos-2
  • LightGBMとProphetはほぼ既定の設定で動かしています。詰めれば数字は変わります
  • 実行環境:一般的なノートパソコン(画像処理装置なし、CPUのみ)

お問い合わせ

下記フォームよりお気軽にお問い合わせください。
担当者より折り返しご連絡いたします。

需要予測データ分析・可視化システム開発