HANAWA行政書士事務所のロゴ HANAWA行政書士事務所 建設・製造・産廃業向け 許認可 × 外国人雇用 × 補助金 × 福利厚生
090-3718-2803 9:00-23:00 年中無休(土日祝日・20時以降は事前予約)

コラム

在庫管理におけるAI予測モデル|HANAWAくんと学ぶAI活用実践ラボ第41回

2025年11月5日

在庫予測AIは、企業の発注や消費データを学習して未来の需要を推定し、過剰在庫や欠品を防ぐための有力な手段です。特に季節変動やリードタイムを考…

<p>在庫予測AIは、企業の発注や消費データを学習して未来の需要を推定し、過剰在庫や欠品を防ぐための有力な手段です。特に季節変動やリードタイムを考慮した精度の高い予測は、物流コスト削減に直結します。</p>

<p>本稿の焦点は「在庫予測モデルの入力項目と評価指標を自社で設定できるようになること」です。この記事を通じ、AI導入の仕組みと指標設計を理解し、実務で使える在庫予測の基盤を構築できるようになります。</p>

<hr />
<h2>目次</h2>

<ol>
<li>在庫予測AIの仕組みと目的を理解する</li>
<li>在庫予測モデルの入力データを設計する</li>
<li>AI予測の評価指標を決める</li>
<li>ExcelとPythonでの在庫予測モデル設定例</li>
<li>まとめと次回への布石</li>
</ol>

<hr />
<h2>1. 在庫予測AIの仕組みと目的を理解する</h2>

<p><strong>学習目標:在庫予測AIが発注・消費データをどのように活用し、在庫最適化に貢献するかを理解する。</strong></p>

<h3>在庫予測AIの基本構造</h3>

<p>在庫予測AIとは、過去の発注量や消費量を入力データとして、将来の在庫消費を数値予測するモデルです。主な手法には回帰分析や時系列予測モデル(ARIMA※1、LSTM※2など)が用いられます。</p>

<p>AIは過去データから「季節変動」「トレンド」「異常値の影響」などを学び、需要パターンを抽出します。</p>

<h3>AI導入の目的と効果</h3>

<p>在庫予測AIの最大の目的は、在庫過多によるコスト増と欠品による販売機会損失の両方を最小化することです。</p>

<p>導入効果として、以下が挙げられます。</p>

<ul>
<li>発注サイクルの安定化</li>
<li>リードタイム短縮によるキャッシュフロー改善</li>
<li>消費変動に応じた柔軟な生産・仕入調整</li>
</ul>

<p>これにより、人的判断に依存していた「勘と経験」型の発注業務から脱却できます。</p>

<hr />
<h2>2. 在庫予測モデルの入力データを設計する</h2>

<p><strong>学習目標:在庫予測AIに与えるべきデータ項目を自社で定義できるようになる。</strong></p>

<h3>発注・消費データの整理</h3>

<p>最初に行うべきは、AIが学習に使える形でデータを整えることです。代表的な入力項目は次の通りです。</p>

<table style="width: 701.778px;">
<thead>
<tr>
<th style="width: 162px;">カテゴリ</th>
<th style="width: 243px;">項目例</th>
<th style="width: 276px;">内容</th>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 162px;">基本データ</td>
<td style="width: 243px;">商品ID、店舗ID</td>
<td style="width: 276px;">分析単位の特定</td>
</tr>
<tr>
<td style="width: 162px;">時系列情報</td>
<td style="width: 243px;">日付、週番号、月番号</td>
<td style="width: 276px;">時間軸の整理</td>
</tr>
<tr>
<td style="width: 162px;">消費データ</td>
<td style="width: 243px;">販売数、出庫量</td>
<td style="width: 276px;">過去の実績</td>
</tr>
<tr>
<td style="width: 162px;">発注データ</td>
<td style="width: 243px;">発注数、納品日</td>
<td style="width: 276px;">発注サイクルの記録</td>
</tr>
<tr>
<td style="width: 162px;">外部要因</td>
<td style="width: 243px;">天気、イベント、広告</td>
<td style="width: 276px;">季節変動要因</td>
</tr>
</tbody>
</table>

<p>これらを1行=1日(または1週)単位でまとめることで、AIが学習しやすい形に整えられます。</p>

<h3>季節変動・リードタイムの扱い</h3>

<p>多くの企業が誤るのは、季節変動とリードタイムを無視することです。</p>

<p>たとえば冬に売れる商品(防寒具や鍋の素)は季節的ピークを持ちます。このような周期的特徴は、「月」や「週番号」などのカレンダー情報を特徴量としてAIに渡すことで学習されます。</p>

<p>また、リードタイム(発注から入荷までの日数)は「現在の発注量が数日後の在庫に影響する」遅延構造としてモデルに組み込みます。</p>

<p><strong>例:</strong></p>

<table border="0" cellpadding="1" cellspacing="1" style="width:750px;background-color: #f5f5f5;">
<tbody>
<tr>
<td><code>在庫予測日 = 今日 + リードタイム(日数)</code></td>
</tr>
</tbody>
</table>

<p>こうすることで、「今日の発注がいつ在庫に反映されるか」をAIが理解できる構造になります。</p>

<hr />
<h2>3. AI予測の評価指標を決める</h2>

<p><strong>学習目標:在庫予測モデルの精度を客観的に測る評価指標を理解し、選定できるようにする。</strong></p>

<h3>評価指標の種類と意味</h3>

<p>AIモデルの良否は「どのくらい正確に在庫や消費を予測できたか」で判断します。代表的な評価指標は以下の通りです。</p>

<table style="width: 891.778px;">
<thead>
<tr>
<th style="width: 274px;">指標名</th>
<th style="width: 300px;">数式</th>
<th style="width: 296px;">意味</th>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 274px;">MAE(平均絶対誤差)</td>
<td style="width: 300px;">平均(│実測−予測│)</td>
<td style="width: 296px;">誤差の平均的な大きさ</td>
</tr>
<tr>
<td style="width: 274px;">RMSE(平方平均二乗誤差)</td>
<td style="width: 300px;">√平均((実測−予測)²)</td>
<td style="width: 296px;">大きな誤差を重視する評価</td>
</tr>
<tr>
<td style="width: 274px;">MAPE(平均絶対パーセント誤差)</td>
<td style="width: 300px;">平均(│実測−予測│/実測) × 100</td>
<td style="width: 296px;">相対誤差のパーセント表示</td>
</tr>
</tbody>
</table>

<p>在庫予測ではMAPEが20%未満であれば実務的に高精度といえます。ただし、低販売量の商品では誤差が相対的に大きく見えるため、商品カテゴリごとに分けて評価するのが安全です。</p>

<h3>評価指標設定の注意点</h3>

<ul>
<li>評価データは学習データとは別期間で用意すること(過学習※3防止)</li>
<li>季節性商品はシーズン別評価を行うこと</li>
<li>発注頻度の高い商品ほど、短期予測(週単位)の指標を重視すること</li>
</ul>

<p>このように、自社業務のリズムと評価期間を一致させることが重要です。</p>

<hr />
<h2>4. ExcelとPythonでの在庫予測モデル設定例</h2>

<p><strong>学習目標:現場で扱えるツール(Excel・Python)で在庫予測AIを試作できるようになる。</strong></p>

<h3>Excelでの簡易予測モデル</h3>

<p>Excelでは「FORECAST.ETS」関数を利用して時系列予測が可能です。</p>

<p><strong>構文:</strong></p>

<table border="0" cellpadding="1" cellspacing="1" style="width:750px;background-color: #f5f5f5;">
<tbody>
<tr>
<td><code>=FORECAST.ETS(予測日, 実績範囲, 日付範囲, 季節性, データ完結性)</code></td>
</tr>
</tbody>
</table>

<p>例として、過去12か月の販売数から翌月の消費量を予測できます。この関数は内部で指数平滑法を用いており、季節変動を自動で反映します。</p>

<p><strong>安全注記:</strong><br />
欠損データがある場合は補間(AVERAGE関数など)を行ってから使用する必要があります。</p>

<h3>Pythonでのシンプル予測モデル</h3>

<p>Pythonでは「Prophet」(Meta社開発)や「scikit-learn」の回帰モデルを使うのが一般的です。</p>

<p><strong>例:Prophetによる消費予測コード</strong></p>

<table border="0" cellpadding="1" cellspacing="1" style="width:750px;background-color: #f5f5f5;">
<tbody>
<tr>
<td>
<p>from prophet import Prophet<br />
import pandas as pd</p>

<p># データ読み込み<br />
df = pd.read_csv('sales.csv')<br />
df.rename(columns={'date':'ds', 'sales':'y'}, inplace=True)</p>

<p># モデル学習<br />
model = Prophet()<br />
model.fit(df)</p>

<p># 未来予測<br />
future = model.make_future_dataframe(periods=30)<br />
forecast = model.predict(future)</p>
</td>
</tr>
</tbody>
</table>

<p>出力結果の「yhat」列が予測値となります。</p>

<p><strong>安全注記:</strong><br />
Prophetは日付形式がISO準拠(YYYY-MM-DD)でないとエラーを返すため、事前整形が必須です。</p>

<p>AI導入初期では、Excelで試してパターンを確認し、その後Pythonで自動化する流れが実務的です。</p>

<hr />
<h2>5. まとめと次回への布石</h2>

<p>今回の焦点である「在庫予測モデルの入力と評価指標を決める」ことにより、AI導入の土台が整います。</p>

<p>発注・消費・季節変動・リードタイムといったデータ構造を理解し、精度を数値で把握できるようになることで、在庫最適化の具体的アクションが可能となります。</p>

<hr />
<p>自社へのAI導入や教育支援のご相談は、<strong>HANAWA AIラボ公式問合せフォーム</strong>よりお知らせください。</p>

<hr />
<p>※1 <strong>ARIMA(自己回帰和分移動平均モデル)</strong>:時系列データを過去値と誤差で説明する統計モデル。<br />
※2 <strong>LSTM(長短期記憶ネットワーク)</strong>:過去の時系列情報を保持しながら予測を行うニューラルネットワーク。<br />
※3 <strong>過学習</strong>:AIが学習データに過剰に適応し、新しいデータで精度が落ちる現象。</p>

<hr />
<h2>免責および準拠</h2>

<p>本稿は、2025年11月時点の法令・業界ガイドラインおよび一般的な中小企業運用を前提に執筆しております。各社での導入時には、最新の法令・業界基準や個別システム要件に即した対応、および必要に応じた専門家への確認を行ってください。また、本文中の事例や表現は参考指針であり、必ずしもそのまま適用できるものではありません。</p>

<hr data-end="1323" data-start="1320" />
<p data-end="1355" data-start="1325"><a href="https://hanawa-office.jp/ai-lab/">AIに関するご相談はコチラ</a></p>

<p data-end="2558" data-start="2427"> </p>
前のページに戻る
フォーム 電話 LINE