STEP 51:実践プロジェクト2 – 新商品の需要予測

🔮 STEP 51: 実践プロジェクト2 – 新商品の需要予測

新商品発売前に需要を予測し、在庫計画を立てよう

📋 このプロジェクトで取り組むこと

  • 類似商品の過去データ分析
  • 複数の予測手法を組み合わせた需要予測
  • シナリオ分析(楽観・標準・悲観)
  • 在庫計画とリスク分析
  • 役員会議向けプレゼンテーション資料作成

難易度: 実践レベル(予測の不確実性と向き合う)

📊 1. プロジェクトの概要

あなたに与えられたミッション

💼 シチュエーション設定

あなたは中堅家電メーカー「TechHome」の商品企画部に所属しています。
新商品「SmartAir Pro」(スマート空気清浄機)の発売が3ヶ月後に迫っています。

📢 商品企画部長からの依頼:

「SmartAir Proの初年度需要を予測してほしい。
過剰在庫も欠品も避けたい。
楽観・標準・悲観の3シナリオで予測し、
在庫計画と生産計画に反映させたい。
2週間後の役員会議でプレゼンをお願いします。」

新商品の情報:
・商品名: SmartAir Pro(スマート空気清浄機)
・価格: 49,800円(競合の平均的価格帯)
・特徴: AI搭載、スマホ連携、静音設計
・ターゲット: 30-50代の健康意識が高い層

需要予測の難しさを理解する

📌 なぜ新商品の需要予測は難しいのか
新商品の予測が難しい理由:
・過去のデータがない(同じ商品の実績がない)
・市場の反応が読めない(お客様が本当に買うか分からない)
・競合の動きが予測不可(値下げ、新商品投入など)
・外部環境の変化(景気、トレンド、季節など)

だからこそ:
・複数の予測手法を組み合わせる
・シナリオ分析で不確実性に備える
・柔軟に軌道修正できる計画を立てる

目標:
「完璧な予測」ではなく「より良い予測」を目指す

プロジェクトの全体像

💡 プロジェクトの流れ(6つのステップ)
STEP 1: 類似商品の過去データを分析
→ 成功パターンと失敗パターンを学ぶ

STEP 2: 市場分析と競合分析
→ 市場規模とポジショニングを確認

STEP 3: 事前指標を分析
→ 予約数、SNS反応から初期需要を推定

STEP 4: 需要予測モデルを構築
→ 複数手法を組み合わせて予測

STEP 5: シナリオ分析
→ 楽観・標準・悲観の3パターンを作成

STEP 6: 在庫計画とリスク分析
→ 欠品リスクと過剰在庫リスクを定量化

📈 2. STEP 1: 類似商品の過去データ分析

なぜ類似商品を分析するのか

📌 類似商品分析の目的
新商品には過去データがありません。
そこで、「似た商品がどうなったか」を参考にします。

類似商品から学べること:
・初月の販売数はどれくらいだったか
・季節による変動はあるか
・発売後、販売は増えたか減ったか
・成功した商品と失敗した商品の違いは何か

今回のケース:
過去3年間に発売した類似商品(空気清浄機)3つのデータを分析します。

ライブラリの読み込みとデータ準備

まず、必要なライブラリを読み込みます。

# 必要なライブラリを読み込む
import pandas as pd      # データを表形式で扱う
import numpy as np       # 数値計算(乱数生成、統計計算など)
import matplotlib.pyplot as plt  # グラフ描画
from scipy import stats  # 統計検定

# 乱数のシードを固定(再現性のため)
# 同じシードを設定すると、毎回同じ乱数が生成される
np.random.seed(42)

類似商品のデータを作成

過去に発売した3つの類似商品のデータを作成します。実務では、社内の販売データベースから取得します。

# ===== Product A: 3年前発売、成功した商品 =====
months_a = np.arange(1, 37)  # 1〜36ヶ月目

# 販売数 = ベース + トレンド + 季節性 + ノイズ
base_sales_a = 2000        # 基本となる販売数
trend_a = 50               # 月あたりの成長(プラス=成長)
# 季節性: sin関数で12ヶ月周期の波を作る(冬に売れる傾向)
seasonality_a = 300 * np.sin(2 * np.pi * months_a / 12)
# ノイズ: ランダムな変動(平均0、標準偏差150の正規分布)
noise_a = np.random.normal(0, 150, len(months_a))

# 販売数を計算
sales_a = base_sales_a + trend_a * months_a + seasonality_a + noise_a

同様に、普通の商品と失敗した商品のデータも作成します。

# ===== Product B: 2年前発売、普通の商品 =====
months_b = np.arange(1, 25)  # 1〜24ヶ月目
base_sales_b = 1500
trend_b = 30  # 緩やかな成長
seasonality_b = 200 * np.sin(2 * np.pi * months_b / 12)
noise_b = np.random.normal(0, 100, len(months_b))
sales_b = base_sales_b + trend_b * months_b + seasonality_b + noise_b

# ===== Product C: 1年前発売、失敗した商品 =====
months_c = np.arange(1, 13)  # 1〜12ヶ月目
base_sales_c = 800
trend_c = -20  # マイナス = 月を追うごとに減少
seasonality_c = 100 * np.sin(2 * np.pi * months_c / 12)
noise_c = np.random.normal(0, 80, len(months_c))
sales_c = base_sales_c + trend_c * months_c + seasonality_c + noise_c

# 販売数が300を下回らないようにする(最低ライン)
sales_c = np.maximum(sales_c, 300)  # maximum: 2つの値の大きい方を返す

類似商品の実績を集計

# 各商品の実績を表示
print("=" * 60)
print("【STEP 1: 類似商品の分析】")
print("=" * 60)
print()

print("Product A(3年前発売、成功):")
print(f"  • 初月販売: {sales_a[0]:.0f}台")
print(f"  • 12ヶ月累計: {sales_a[:12].sum():.0f}台")
print()

print("Product B(2年前発売、普通):")
print(f"  • 初月販売: {sales_b[0]:.0f}台")
print(f"  • 12ヶ月累計: {sales_b[:12].sum():.0f}台")
print()

print("Product C(1年前発売、失敗):")
print(f"  • 初月販売: {sales_c[0]:.0f}台")
print(f"  • 12ヶ月累計: {sales_c[:12].sum():.0f}台")

統計値を計算して傾向を把握

# 初月販売数の統計
first_month_sales = np.array([sales_a[0], sales_b[0], sales_c[0]])

print()
print("【初月販売数の統計】")
print(f"  平均: {first_month_sales.mean():.0f}台")
print(f"  標準偏差: {first_month_sales.std():.0f}台")
print(f"  範囲: {first_month_sales.min():.0f} - {first_month_sales.max():.0f}台")

# 年間販売数の統計
annual_sales = np.array([
    sales_a[:12].sum(),  # Product Aの初年度
    sales_b[:12].sum(),  # Product Bの初年度
    sales_c[:12].sum()   # Product Cの初年度
])

print()
print("【初年度販売数の統計】")
print(f"  平均: {annual_sales.mean():.0f}台")
print(f"  標準偏差: {annual_sales.std():.0f}台")
print(f"  範囲: {annual_sales.min():.0f} - {annual_sales.max():.0f}台")

実行結果の解釈

📊 類似商品の分析結果
商品 初月販売 初年度累計 評価
Product A 約2,100台 約31,000台 成功
Product B 約1,700台 約22,000台 普通
Product C 約780台 約7,500台 失敗
✅ STEP 1の結論
発見したこと:
・初月販売数は780〜2,100台と幅がある
・初年度累計は7,500〜31,000台(約4倍の差)
・成功商品は月を追うごとに販売が伸びる(トレンドがプラス)
・失敗商品は月を追うごとに販売が減る(トレンドがマイナス)

SmartAir Proへの示唆:
Product Bに近い実績が期待できそう(競合との差別化がある程度ある)
→ 初年度 20,000〜25,000台が一つの目安

📈 3. STEP 3: 事前指標の分析

事前指標とは何か

📌 発売前に得られるヒント
新商品の発売前でも、需要を推測できるデータがあります。

事前指標の例:
事前予約数: 実際に「買いたい」と意思表示した人の数
SNS反応: Twitter、Instagramでの言及数と評判
市場調査: アンケートでの購入意向
展示会での反応: 実機を見た人の評価

今回のデータ:
・事前予約: 1,200件(発売2ヶ月前時点)
・SNS言及: 2,500件(ポジティブ率72%)

事前予約から初月販売を予測

# 事前予約数
pre_orders = 1200

# 過去商品の「事前予約 → 初月販売」の転換率を分析
# 転換倍率 = 初月販売数 / 事前予約数
conversion_data = pd.DataFrame({
    '商品': ['Product A', 'Product B', 'Product C'],
    '事前予約': [800, 600, 400],
    '初月販売': [2000, 1500, 800],
})

# 転換倍率を計算
conversion_data['転換倍率'] = conversion_data['初月販売'] / conversion_data['事前予約']

print("【過去商品の転換率】")
print()
print(conversion_data.to_string(index=False))
print()

# 平均転換倍率を計算
avg_conversion = conversion_data['転換倍率'].mean()
print(f"平均転換倍率: {avg_conversion:.1f}倍")
print()

# SmartAir Proの初月予測
# 事前予約 × 平均転換倍率 = 予測初月販売数
predicted_first_month = pre_orders * avg_conversion
print("【初月販売予測(事前予約ベース)】")
print(f"  {pre_orders}件 × {avg_conversion:.1f}倍 = {predicted_first_month:.0f}台")

転換倍率の意味

📊 転換倍率の解釈
商品 事前予約 初月販売 転換倍率
Product A 800件 2,000台 2.5倍
Product B 600件 1,500台 2.5倍
Product C 400件 800台 2.0倍
平均 約2.3倍

意味: 事前予約した人以外にも、発売日に購入する人がいる。
予約者の2〜2.5倍の人が初月に購入する傾向がある。

✅ STEP 3の結論
事前予約ベースの予測:
・事前予約: 1,200件(過去商品より多い = 好調)
・転換倍率: 約2.3倍(過去平均)
初月予測: 約2,800台

SNS反応:
・言及数2,500件、ポジティブ率72%(良好)
→ 期待感は高い状態

📈 4. STEP 4: 需要予測モデルの構築

複数の予測手法を組み合わせる

📌 なぜ複数手法を使うのか
1つの予測手法だけでは偏りが出ます。
複数の視点から予測し、統合することで精度を高めます。

今回使う3つの手法:
1. 類似商品ベース: 過去の類似商品の実績から予測
2. 市場シェアベース: 市場規模と目標シェアから予測
3. 事前予約ベース: 事前予約数と転換率から予測

それぞれの手法で予測し、加重平均で統合します。

手法1: 類似商品ベース予測

# 手法1: 類似商品ベース予測
# Product B(普通の実績)に近いと仮定

# Product Bの初年度月次販売データを使用
method1_monthly = sales_b[:12] * 1.0  # コピーを作成
method1_total = method1_monthly.sum()

print("【手法1: 類似商品ベース】")
print(f"  根拠: Product Bの実績をベースに予測")
print(f"  初年度予測: {method1_total:.0f}台")

手法2: 市場シェアベース予測

# 手法2: 市場シェアベース予測
# 市場規模と目標シェアから逆算

market_size_yen = 120_000_000_000  # 市場規模: 1,200億円
avg_price = 45000                   # 平均価格: 45,000円
market_size_units = market_size_yen / avg_price  # 台数に換算

target_share = 0.01  # 目標シェア: 1%

# 予測販売数 = 市場規模(台数)× 目標シェア
method2_total = market_size_units * target_share

# 月平均で割り振る(季節性は考慮せず均等配分)
method2_monthly = np.full(12, method2_total / 12)

print("【手法2: 市場シェアベース】")
print(f"  市場規模: {market_size_units:,.0f}台/年")
print(f"  目標シェア: {target_share*100:.1f}%")
print(f"  初年度予測: {method2_total:,.0f}台")

手法3: 事前予約ベース予測

# 手法3: 事前予約ベース予測
# 初月から徐々に減衰すると仮定

method3_first_month = predicted_first_month  # 2,800台(先ほど計算)

# 減衰率: 月あたり5%ずつ減少
decay_rate = 0.95

# 各月の販売数を計算
# 1ヶ月目: 2,800台
# 2ヶ月目: 2,800 × 0.95 = 2,660台
# 3ヶ月目: 2,800 × 0.95^2 = 2,527台
# ...
method3_monthly = np.array([
    method3_first_month * (decay_rate ** i) for i in range(12)
])
method3_total = method3_monthly.sum()

print("【手法3: 事前予約ベース】")
print(f"  初月予測: {method3_first_month:.0f}台")
print(f"  減衰率: 月{(1-decay_rate)*100:.0f}%減")
print(f"  初年度予測: {method3_total:.0f}台")

3つの予測を加重平均で統合

# 加重平均で統合
# 手法1: 30%、手法2: 30%、手法3: 40%の重み付け
# 事前予約は直近の情報なので重視

weights = [0.3, 0.3, 0.4]

# 月次予測の加重平均
base_forecast_monthly = (
    weights[0] * method1_monthly +
    weights[1] * method2_monthly +
    weights[2] * method3_monthly
)

base_forecast_total = base_forecast_monthly.sum()

print("【統合予測(加重平均)】")
print(f"  手法1(類似商品): 30%")
print(f"  手法2(市場シェア): 30%")
print(f"  手法3(事前予約): 40%")
print()
print(f"  初年度予測: {base_forecast_total:,.0f}台")
print(f"  月平均: {base_forecast_total/12:,.0f}台")

月次予測の詳細

# 月次予測をDataFrameで表示
months_forecast = pd.DataFrame({
    '月': range(1, 13),
    '予測販売数': base_forecast_monthly.astype(int),
    '累計': base_forecast_monthly.cumsum().astype(int)
})

print("【月次予測詳細】")
print()
print(months_forecast.to_string(index=False))
✅ STEP 4の結論: 標準予測
3つの手法を統合した結果:

初年度予測: 約25,000台
・初月: 約2,500台
・月平均: 約2,100台

ただし、これは「標準シナリオ」です。
次のステップで不確実性を考慮します。

📈 5. STEP 5: シナリオ分析

なぜシナリオ分析が必要か

📌 予測の不確実性に備える
予測は必ず外れます。重要なのは、
「どれくらい外れる可能性があるか」を把握することです。

3つのシナリオ:
楽観シナリオ: 予想以上にうまくいった場合
標準シナリオ: 計画通りに進んだ場合
悲観シナリオ: 予想より悪かった場合

それぞれのシナリオに確率を割り当てることで、
「期待値」として意思決定に使えるようになります。

3つのシナリオを作成

# 標準シナリオ(先ほど計算したベース予測)
standard_scenario = base_forecast_monthly
standard_total = standard_scenario.sum()

# 楽観シナリオ(標準の130%)
# 市場の反応が期待以上、競合の対抗策なし
optimistic_scenario = base_forecast_monthly * 1.3
optimistic_total = optimistic_scenario.sum()

# 悲観シナリオ(標準の70%)
# 市場の反応が期待以下、競合の価格攻勢
pessimistic_scenario = base_forecast_monthly * 0.7
pessimistic_total = pessimistic_scenario.sum()

print("【3つのシナリオ】")
print()
print(f"楽観シナリオ(確率20%):")
print(f"  • 初年度販売: {optimistic_total:,.0f}台(+30%)")
print(f"  • 想定状況: 市場の反応が期待以上")
print()
print(f"標準シナリオ(確率60%):")
print(f"  • 初年度販売: {standard_total:,.0f}台")
print(f"  • 想定状況: 計画通りに推移")
print()
print(f"悲観シナリオ(確率20%):")
print(f"  • 初年度販売: {pessimistic_total:,.0f}台(-30%)")
print(f"  • 想定状況: 競合の対抗策、品質問題など")

期待値を計算

# 期待値 = Σ(確率 × 各シナリオの値)
# 各シナリオの確率
probabilities = [0.2, 0.6, 0.2]  # 楽観20%、標準60%、悲観20%
scenarios = [optimistic_total, standard_total, pessimistic_total]

# 期待値を計算
expected_value = sum(p * s for p, s in zip(probabilities, scenarios))

print("【期待値の計算】")
print()
print(f"期待値 = 0.2 × {optimistic_total:,.0f}")
print(f"       + 0.6 × {standard_total:,.0f}")
print(f"       + 0.2 × {pessimistic_total:,.0f}")
print(f"       = {expected_value:,.0f}台")
print()
print(f"→ 期待値としては約{expected_value:,.0f}台の販売が見込まれる")

シナリオ分析の結果

📊 シナリオ別予測まとめ
シナリオ 確率 年間販売 想定状況
楽観 20% 約32,500台 市場の反応良好
標準 60% 約25,000台 計画通り
悲観 20% 約17,500台 競合の対抗策
期待値 約25,000台

📈 6. STEP 6: 在庫計画とリスク分析

在庫計画の考え方

📌 欠品と過剰在庫のトレードオフ
在庫計画では、2つのリスクのバランスを取ります。

欠品リスク(在庫が足りない):
・売れるはずの商品がない → 機会損失
・お客様の失望 → ブランドイメージ低下
・コスト: 粗利の100%(売れなかった分)

過剰在庫リスク(在庫が余る):
・保管コストがかかる
・値引き販売が必要
・最悪の場合、廃棄
・コスト: 保管費 + 値引き損

ポイント:
一般的に、欠品コストは過剰在庫コストより高い。
「少し多め」に持つのが基本戦略。

コスト前提を設定

# コスト前提
unit_cost = 25000       # 原価: 25,000円/台
unit_price = 49800      # 販売価格: 49,800円/台
gross_margin = unit_price - unit_cost  # 粗利: 24,800円/台

inventory_cost_per_month = 500   # 在庫コスト: 500円/台/月
stockout_cost = gross_margin     # 欠品機会損失: 粗利と同額
lead_time_months = 2             # 生産リードタイム: 2ヶ月

print("【前提条件】")
print(f"  • 原価: ¥{unit_cost:,}/台")
print(f"  • 販売価格: ¥{unit_price:,}/台")
print(f"  • 粗利: ¥{gross_margin:,}/台")
print(f"  • 在庫コスト: ¥{inventory_cost_per_month:,}/台/月")
print(f"  • 欠品機会損失: ¥{stockout_cost:,}/台")
print(f"  • 生産リードタイム: {lead_time_months}ヶ月")

初回生産量を決定

# 初回生産量の決定
# 最初の3ヶ月分 + 安全在庫10%

# 標準シナリオでの最初3ヶ月の需要
first_3_months_demand = standard_scenario[:3].sum()

# 安全在庫を10%上乗せ
safety_stock_ratio = 1.1
initial_production = int(first_3_months_demand * safety_stock_ratio)

print("【初回生産量の決定】")
print()
print(f"最初3ヶ月の予測需要: {first_3_months_demand:.0f}台")
print(f"安全在庫上乗せ: +10%")
print(f"推奨初回生産量: {initial_production:,}台")
print()
print("この量であれば:")
print("  • 標準シナリオ: 3ヶ月分をカバー + 余裕あり")
print("  • 悲観シナリオ: 4ヶ月分以上の在庫")
print("  • 楽観シナリオ: 2.5ヶ月分(追加生産が必要)")

リスクの定量化

# リスクの定量化

# 楽観シナリオでの欠品リスク
# 需要が予測を超えた場合、初回生産では足りない
optimistic_3_months = optimistic_scenario[:3].sum()
stockout_units = max(0, optimistic_3_months - initial_production)
stockout_loss = stockout_units * stockout_cost

print("【楽観シナリオ発生時(確率20%)】")
print(f"  需要: {optimistic_3_months:.0f}台")
print(f"  生産: {initial_production:,}台")
print(f"  欠品: {stockout_units:.0f}台")
print(f"  機会損失: ¥{stockout_loss/1000000:.1f}M")
print()

# 悲観シナリオでの過剰在庫リスク
pessimistic_3_months = pessimistic_scenario[:3].sum()
excess_inventory = max(0, initial_production - pessimistic_3_months)
# 過剰在庫を3ヶ月間保管するコスト
excess_cost = excess_inventory * inventory_cost_per_month * 3

print("【悲観シナリオ発生時(確率20%)】")
print(f"  需要: {pessimistic_3_months:.0f}台")
print(f"  生産: {initial_production:,}台")
print(f"  過剰在庫: {excess_inventory:.0f}台")
print(f"  在庫コスト(3ヶ月): ¥{excess_cost/1000000:.1f}M")
print()

# 期待損失(リスクの期待値)
expected_loss = 0.2 * stockout_loss + 0.2 * excess_cost
print("【期待損失】")
print(f"  = 20% × ¥{stockout_loss/1000000:.1f}M + 20% × ¥{excess_cost/1000000:.1f}M")
print(f"  = ¥{expected_loss/1000000:.1f}M")

リスク分析の結果

📊 リスク分析まとめ
リスク種類 発生確率 影響額 対策
欠品(楽観時) 20% 約35M円 緊急増産体制を確保
過剰在庫(悲観時) 20% 約2.3M円 マーケティング強化
期待損失 約7.9M円

期待損失7.9M円は、予測売上(約12億円)の0.6%。
許容範囲内のリスクと判断できます。

✅ STEP 6の結論: 在庫計画
推奨:
・初回生産: 約7,700台
・投資額: 約193M円(原価25,000円 × 7,700台)

リスク対策:
1. 月次で販売実績をモニタリング
2. 初月で2,500台を下回ったら生産計画を見直し
3. 複数サプライヤーで緊急増産体制を確保
4. 値引きキャンペーンを事前に準備

📊 7. 役員会議プレゼンテーション

エグゼクティブサマリー

📄 SmartAir Pro 需要予測と在庫計画
【結論・推奨事項】
初回生産7,700台を推奨。
標準シナリオで初年度25,000台の販売を予測。
在庫リスクは限定的で、月次モニタリングで柔軟に対応可能。


【需要予測】
・楽観シナリオ(20%): 32,500台
・標準シナリオ(60%): 25,000台
・悲観シナリオ(20%): 17,500台
・期待値: 25,000台


【予測根拠】
1. 類似商品(Product B)の実績ベース
2. 市場シェア1%目標
3. 事前予約1,200件から推定
4. 3手法の加重平均で算出


【在庫計画】
・初回生産: 7,700台
・投資額: 193M円
・期待損失: 7.9M円(売上の0.6%)


【Next Steps】
◆ 今週中: 役員会議で承認
◆ 来週: サプライヤーに発注
◆ 3ヶ月後: 発売、モニタリング開始

📝 STEP 51 のまとめ

✅ このプロジェクトで学んだこと
  • 類似商品分析: 過去データから成功・失敗パターンを学ぶ
  • 複数手法の統合: 3つの予測手法を加重平均で統合
  • シナリオ分析: 不確実性を楽観・標準・悲観の3パターンで表現
  • 期待値計算: 確率で重み付けして意思決定に使う
  • リスク定量化: 欠品と過剰在庫のコストを計算
  • 在庫最適化: リスクを許容範囲に抑えた生産計画
💡 需要予測プロジェクトの成功ポイント
1. 複数手法を組み合わせる
1つの手法に頼らない。複数の視点から予測し、統合する。

2. 不確実性を認識する
「予測は外れる」前提で、シナリオ分析と期待値を活用。

3. 事前指標を活用
予約数、SNS反応など、発売前に得られるデータを最大限活用。

4. リスクを定量化
「なんとなく心配」ではなく、金額でリスクを把握する。

5. 柔軟な計画を立てる
初回は控えめに、実績を見て軌道修正できる体制を作る。

6. 継続的にモニタリング
発売後は週次で実績を確認し、即座に対応する。

📝 発展課題

課題 発展

発売後3ヶ月が経過。予測より21%下回っています。

実績データ:
• 1ヶ月目: 2,200台(予測2,800台、-21%)
• 2ヶ月目: 2,000台(予測2,500台、-20%)
• 3ヶ月目: 1,800台(予測2,300台、-22%)
• 合計: 6,000台(予測7,600台)

追加情報:
• 顧客レビュー: 4.2/5.0(良好)
• 競合が値下げ(49,800円→39,800円)

あなたのタスク:
1. 乖離原因を分析
2. 残り9ヶ月の予測を修正
3. 対策を提案
4. 役員への報告資料を作成
【分析と対応のアプローチ】
【Step 1: 乖離原因の分析】
・毎月20%以上下回っている → 構造的な問題
・レビューは良好 → 商品自体の問題ではない
・競合が1万円値下げ → これが主要因と推測

【Step 2: 予測の修正】
・実績3ヶ月の平均: 2,000台/月
・競合価格差が続く前提で再計算
・年間予測: 約18,000台(当初25,000台の72%)

【Step 3: 対策案】
A. マーケティング強化(推奨)
 ・差別化ポイント(AI機能)を前面に
 ・投資18M円でROI 567%

B. 値下げ(非推奨)
 ・44,800円に値下げ
 ・利益が大幅に減少

【教訓】
予測は外れる。重要なのは早期発見と軌道修正!

❓ よくある質問

Q1: 新商品の需要予測はどうしてもこんなに外れるものですか?
はい、±20-30%の誤差は普通です。

なぜ予測が難しいか:
・過去データがない
・市場の反応が読めない
・競合の動きが予測不可

重要なのは:
完璧な予測ではなく、「外れた時の対応力」!
週次モニタリングと素早い軌道修正が鍵です。
Q2: 在庫は多めに持つべき?少なめに持つべき?
欠品コストと在庫コストを比較して判断します。

多めに持つべき場合:
・粗利が高い商品(欠品の機会損失が大きい)
・緊急増産が困難
・季節商品(売り逃すと1年待ち)

少なめに持つべき場合:
・粗利が低い商品
・陳腐化リスクが高い(IT製品など)
・緊急増産が容易

計算式で判断:
期待コスト = 欠品確率×欠品コスト + 過剰確率×在庫コスト
Q3: シナリオの確率(20%, 60%, 20%)はどう決めるのですか?
過去の経験と業界知識から設定します。

一般的な配分:
・標準: 50-60%(最もありえるシナリオ)
・楽観/悲観: 各20-25%(極端なケース)

調整のポイント:
・不確実性が高い場合 → 標準を低く、楽観/悲観を高く
・リスクが高い時期 → 悲観の確率を上げる
・専門家の意見も参考に

重要なのは、確率を明示して議論すること。
「なんとなく」ではなく、数字で話す。
📝

学習メモ

ビジネスデータ分析・意思決定 - Step 51

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE