LESSON

演習:需要予測フレームワークを設計しよう

「理論はわかった。ここからは手を動かしてフレームワークを形にしてほしい。」

田中VPoEがあなたにノートPCを渡す。

「NetShop社の在庫問題を整理し、需要予測の分析計画を立ててくれ。経営会議で使えるレベルのものを頼む。」

ミッション概要

NetShop社の在庫問題に対して、需要予測フレームワークを設計する演習である。在庫コストの定量化から手法選定、分析ロードマップの策定までを一貫して行う。


Mission 1: 在庫コスト分析(10分)

NetShop社には3つの商品カテゴリがある。各カテゴリの在庫コストを算出せよ。

データ:

  • 食品カテゴリ: 月間売上 5,000万円、在庫回転率 12回/年、欠品率 8%、廃棄率 5%
  • 家電カテゴリ: 月間売上 3,000万円、在庫回転率 6回/年、欠品率 3%、廃棄率 1%
  • アパレルカテゴリ: 月間売上 2,000万円、在庫回転率 4回/年、欠品率 5%、廃棄率 10%

タスク:

  1. 各カテゴリの月間欠品損失額を算出する
  2. 各カテゴリの月間廃棄コストを算出する(廃棄品の平均原価率を60%とする)
  3. 在庫回転率を1回改善した場合の保管コスト削減額を概算する
  4. どのカテゴリから優先的に需要予測を強化すべきか、根拠を示して提案する
解答例
import pandas as pd

categories = pd.DataFrame({
    'カテゴリ': ['食品', '家電', 'アパレル'],
    '月間売上': [50_000_000, 30_000_000, 20_000_000],
    '在庫回転率': [12, 6, 4],
    '欠品率': [0.08, 0.03, 0.05],
    '廃棄率': [0.05, 0.01, 0.10],
})

# 月間欠品損失額 = 月間売上 × 欠品率
categories['欠品損失'] = categories['月間売上'] * categories['欠品率']

# 月間廃棄コスト = 月間売上 × 廃棄率 × 原価率(60%)
categories['廃棄コスト'] = categories['月間売上'] * categories['廃棄率'] * 0.6

# 月間在庫額 = 年間売上 / 在庫回転率 / 12 ≈ 月間売上 * 12 / 回転率 / 12
categories['平均在庫額'] = categories['月間売上'] * 12 / categories['在庫回転率']
categories['改善後在庫額'] = categories['月間売上'] * 12 / (categories['在庫回転率'] + 1)
categories['保管コスト削減'] = (categories['平均在庫額'] - categories['改善後在庫額']) * 0.25 / 12

categories['合計損失'] = categories['欠品損失'] + categories['廃棄コスト']

print(categories[['カテゴリ', '欠品損失', '廃棄コスト', '合計損失', '保管コスト削減']].to_string(index=False))

# 結果:
# 食品: 欠品400万+廃棄150万=550万、保管コスト削減 約32万/月
# 家電: 欠品90万+廃棄18万=108万、保管コスト削減 約61万/月
# アパレル: 欠品100万+廃棄120万=220万、保管コスト削減 約60万/月
#
# → 食品カテゴリの合計損失が最大であり、最優先で需要予測を強化すべき
# → ただしアパレルは廃棄率が高く、シーズン性が強いため予測改善余地も大きい

Mission 2: 需要パターン分類(10分)

NetShop社の主要10商品について、需要パターンを分類し、適切な予測手法を提案せよ。

タスク:

  1. 以下の商品の需要パターンを分類する(安定/季節性/トレンド/間欠/新商品)
  2. 各パターンに適した予測手法を1つ以上提案する
  3. 各商品のABCランクを推定する
商品特徴
ミネラルウォーター夏にピーク、冬に落ちる
コピー用紙年間通じてほぼ一定
クリスマスケーキ12月のみ集中
スマートフォン新機種発売時に急増
防災グッズ地震・台風時に急増
日焼け止め4-8月にピーク
ノートPC緩やかに成長
マスク冬にピーク+感染症流行時に急増
季節限定スイーツ2-3ヶ月のみ販売
特注家具月に数件程度、不規則
解答例
商品パターン予測手法ABCランク
ミネラルウォーター季節性SARIMA / ProphetA
コピー用紙安定移動平均 / 指数平滑法B
クリスマスケーキ季節性(極端)前年実績ベースC
スマートフォンイベント駆動LightGBM + イベント特徴量A
防災グッズ間欠需要Croston法 / 安全在庫重視C
日焼け止め季節性SARIMA / ProphetB
ノートPCトレンドHolt法 / LightGBMA
マスク季節性 + 外部要因Prophet + 外部変数B
季節限定スイーツ短期季節性類似商品の実績ベースC
特注家具間欠需要Croston法 / 受注生産C

Mission 3: 分析ロードマップの策定(10分)

Kaggle Store Sales - Time Series Forecastingデータセットを使った需要予測プロジェクトのロードマップを策定せよ。

タスク:

  1. プロジェクトを4フェーズに分割する
  2. 各フェーズのゴール、主要タスク、成果物を定義する
  3. 使用する評価指標を選定し、その理由を述べる
  4. 最終成果物の形式を提案する
解答例
分析ロードマップ

Phase 1: データ理解・EDA(1週目)
  ゴール: Store Salesデータの全体像を把握し、予測方針を決定する
  タスク:
    - データ構造の理解(店舗、カテゴリ、時系列の関係)
    - 時系列分解(トレンド/季節性/残差)
    - 外部変数(石油価格、祝日、地震)の影響分析
    - ACF/PACFによる自己相関分析
  成果物: EDAレポート、予測方針書

Phase 2: モデル構築・比較(2週目)
  ゴール: 複数の予測モデルを構築し、最適なモデルを選定する
  タスク:
    - ベースラインモデル(移動平均)
    - ARIMA/SARIMA
    - Prophet
    - LightGBM + 特徴量エンジニアリング
    - モデル比較・選定
  成果物: 予測モデル群、性能比較レポート

Phase 3: AIエージェント化(3週目)
  ゴール: 需要予測をAIエージェントとして実装する
  タスク:
    - 予測Tool、異常検知Tool、発注最適化Toolの実装
    - LangGraphによるワークフロー構築
    - アラートシステムの設計
  成果物: 需要予測AIエージェント

Phase 4: 評価・改善(4週目)
  ゴール: エージェントの精度と運用品質を担保する
  タスク:
    - 予測精度モニタリングの設計
    - 自動再学習トリガーの設定
    - ビジネスKPIとの連動評価
  成果物: モニタリング計画書、改善提案書

評価指標:
  - RMSLE: Kaggleの公式指標。対数変換で大きな値の影響を抑制
  - MAE: 直感的な誤差の大きさ
  - MAPE: パーセンテージで業務担当者に伝えやすい
  - 選定理由: 複数指標で多角的に評価。ビジネス報告にはMAPE

最終成果物: 需要予測AIエージェント + 在庫最適化戦略レポート

達成度チェック

  • 3カテゴリの在庫コストを正しく算出できた
  • 欠品損失と廃棄コストを定量化できた
  • 10商品の需要パターンを分類し予測手法を提案できた
  • 4フェーズの分析ロードマップを策定できた
  • 評価指標を選定し理由を述べられた

推定所要時間: 30分