STEP 41:意思決定ツリー

🌳 STEP 41: 意思決定ツリー

複雑な意思決定を構造化し、最適な選択を見つけよう

📋 このステップで学ぶこと

  • 意思決定ツリーの基本概念と構造
  • 3つのノードタイプ(決定・確率・結果)
  • 期待金額価値(EMV)の計算方法
  • ロールバック法による最適解の導出
  • Pythonでの意思決定ツリー実装

🌳 1. 意思決定ツリーとは

なぜ意思決定ツリーが必要なのか

ビジネスでは、「新製品を発売するか」「工場を拡張するか」「マーケティングに投資するか」など、様々な意思決定を迫られます。しかも、それぞれの選択には不確実性(うまくいくかどうか分からない)が伴います。

⚠️ 複雑な意思決定の難しさ

例:新製品の発売判断

選択肢:
A) 大規模に発売(投資額:1,000万円)
B) 小規模にテスト発売(投資額:300万円)
C) 発売しない(投資額:0円)

不確実性:
・市場の反応は?(成功?失敗?)
・競合の動きは?
・経済状況は?

問題:どう判断すればいい?
意思決定ツリーで構造化して分析!

📌 意思決定ツリー(Decision Tree)とは

定義:
意思決定の選択肢と、その結果(不確実性を含む)をツリー構造で表現し、最適な選択を見つけるための分析ツール

意思決定ツリーでできること:

① 複雑な意思決定を視覚化
② 各選択肢の期待値を計算
最適な選択を特定
リスクを定量的に評価

活用シーン:
・新製品の発売判断
・設備投資の意思決定
・マーケティング戦略の選択
・M&Aの判断
・プロジェクトの優先順位付け

意思決定ツリーの3つのノード

💡 ツリーを構成する3つの要素

① 決定ノード(Decision Node)□

自分で選べる選択肢の分岐点
・四角形(□)で表現
・例:「発売する」か「発売しない」か

② 確率ノード(Chance Node)○

自分ではコントロールできない不確実性の分岐点
・丸(○)で表現
・各分岐に確率を付与
・例:「成功(60%)」か「失敗(40%)」か

③ 結果ノード(Terminal Node)△

・ツリーの終端(葉の部分)
・三角形(△)または値で表現
・最終的な結果(利益、損失など)を記載
・例:「利益500万円」「損失200万円」

意思決定ツリーの例

【新製品発売の意思決定ツリー】 成功(60%) → 利益 +500万円 ○ 発売する / □ ──────────────○ \ \ \ 失敗(40%) → 損失 -200万円 \ \ 発売しない → 利益 0円 □ = 決定ノード(自分で選ぶ) ○ = 確率ノード(不確実性) → = 結果ノード(最終結果)
📝 ツリーの読み方

左から右に読む:

1. まず「発売する」か「発売しない」かを決定(□)
2. 「発売する」を選んだ場合、市場の反応という不確実性(○)がある
3. 成功(60%の確率)なら利益500万円、失敗(40%の確率)なら損失200万円
4. 「発売しない」を選んだ場合、利益は0円

💰 2. 期待金額価値(EMV)の計算

EMVとは

EMV(Expected Monetary Value:期待金額価値)は、不確実性がある状況での平均的な結果を表す指標です。各結果の金額に確率を掛けて合計します。

📌 EMVの計算式

EMV = Σ(各結果の金額 × その確率)

例:新製品発売のEMV

成功時の利益:+500万円、確率:60%
失敗時の損失:-200万円、確率:40%

EMV = (+500万円 × 0.6) + (-200万円 × 0.4)
  = 300万円 + (-80万円)
  = 220万円

→ 平均的に220万円の利益が期待できる!

ロールバック法

ロールバック法は、意思決定ツリーの右端(結果)から左端(最初の決定)に向かって計算を進める方法です。

💡 ロールバック法の手順

Step 1:結果ノードの値を確認
各終端の金額を確認する

Step 2:確率ノードのEMVを計算
各分岐の(金額 × 確率)を合計する

Step 3:決定ノードで最適な選択を決める
EMVが最大(または損失が最小)の選択肢を選ぶ

Step 4:左端まで繰り返す
最初の決定ノードまで計算を続ける

具体例で計算してみよう

【計算例:新製品発売の意思決定】 成功(60%) → +500万円 ○ EMV=? 発売する / □ ──────────────○ \ \ \ 失敗(40%) → -200万円 \ \ 発売しない → 0円 【Step 1】結果ノードの確認 ・成功時:+500万円 ・失敗時:-200万円 ・発売しない:0円 【Step 2】確率ノードのEMV計算 EMV = (+500万円 × 0.6) + (-200万円 × 0.4) = 300万円 + (-80万円) = 220万円 【Step 3】決定ノードで比較 ・発売する:EMV = 220万円 ・発売しない:EMV = 0円 【結論】220万円 > 0円 なので「発売する」が最適!
💡 EMVの意味と注意点

EMVの意味:
「同じ状況で何度も意思決定を繰り返したとき、平均的に得られる金額

⚠️ 注意点:
・1回限りの意思決定では、実際の結果はEMVと異なる可能性がある
・リスク回避的な人は、EMVが高くても変動が大きい選択を避けることがある
・確率の推定が重要(確率が変わるとEMVも変わる)

🐍 3. Pythonでの実装

基本的な意思決定ツリーの実装

Step 1:単純な意思決定ツリーの計算

# ============================================ # ライブラリの読み込み # ============================================ import numpy as np # 数学計算用 import pandas as pd # データ処理用 import matplotlib.pyplot as plt # グラフ描画用 # 日本語フォント設定 plt.rcParams[‘font.sans-serif’] = [‘Arial Unicode MS’, ‘Yu Gothic’, ‘Hiragino Sans’] plt.rcParams[‘axes.unicode_minus’] = False # ============================================ # EMV(期待金額価値)を計算する関数 # ============================================ def calculate_emv(outcomes, probabilities): “”” EMVを計算する関数 引数: outcomes: 各結果の金額リスト probabilities: 各結果の確率リスト 戻り値: EMV(期待金額価値) “”” # 確率の合計が1になることを確認 if abs(sum(probabilities) – 1.0) > 0.001: print(“警告: 確率の合計が1ではありません”) # EMV = Σ(金額 × 確率) emv = sum(o * p for o, p in zip(outcomes, probabilities)) return emv # ============================================ # 新製品発売の意思決定 # ============================================ print(“【新製品発売の意思決定ツリー】”) print() # 選択肢1: 発売する outcomes_launch = [5000000, -2000000] # 成功時+500万、失敗時-200万 probs_launch = [0.6, 0.4] # 成功60%、失敗40% emv_launch = calculate_emv(outcomes_launch, probs_launch) print(“選択肢1: 発売する”) print(f” 成功(60%): +{outcomes_launch[0]:,}円”) print(f” 失敗(40%): {outcomes_launch[1]:,}円”) print(f” EMV = {emv_launch:,}円”) print() # 選択肢2: 発売しない emv_no_launch = 0 print(“選択肢2: 発売しない”) print(f” EMV = {emv_no_launch:,}円”) print() # 最適な選択 print(“【最適な選択】”) if emv_launch > emv_no_launch: print(f”→ 「発売する」を選択(EMV差: +{emv_launch – emv_no_launch:,}円)”) else: print(f”→ 「発売しない」を選択(EMV差: +{emv_no_launch – emv_launch:,}円)”)
# 出力結果 【新製品発売の意思決定ツリー】 選択肢1: 発売する 成功(60%): +5,000,000円 失敗(40%): -2,000,000円 EMV = 2,200,000円 選択肢2: 発売しない EMV = 0円 【最適な選択】 → 「発売する」を選択(EMV差: +2,200,000円)

Step 2:複雑な意思決定ツリー(3つの選択肢)

# ============================================ # より複雑な意思決定ツリー # ============================================ # 選択肢が3つある場合 print(“【設備投資の意思決定ツリー】”) print() # 選択肢A: 大規模投資(1億円) print(“選択肢A: 大規模投資(投資額: 1億円)”) investment_a = -100000000 # 投資額 outcomes_a = [ 300000000, # 需要高: 売上3億円 100000000, # 需要中: 売上1億円 -50000000 # 需要低: 売上-5000万円(赤字) ] probs_a = [0.3, 0.5, 0.2] # 需要高30%, 中50%, 低20% # 利益 = 売上 – 投資額 として計算済みの値を使用 profits_a = [o + investment_a for o in outcomes_a] emv_a = calculate_emv(profits_a, probs_a) print(f” 需要高(30%): 利益{profits_a[0]:,}円”) print(f” 需要中(50%): 利益{profits_a[1]:,}円”) print(f” 需要低(20%): 利益{profits_a[2]:,}円”) print(f” EMV = {emv_a:,}円”) print() # 選択肢B: 小規模投資(3000万円) print(“選択肢B: 小規模投資(投資額: 3000万円)”) investment_b = -30000000 outcomes_b = [ 80000000, # 需要高 40000000, # 需要中 10000000 # 需要低 ] probs_b = [0.3, 0.5, 0.2] profits_b = [o + investment_b for o in outcomes_b] emv_b = calculate_emv(profits_b, probs_b) print(f” 需要高(30%): 利益{profits_b[0]:,}円”) print(f” 需要中(50%): 利益{profits_b[1]:,}円”) print(f” 需要低(20%): 利益{profits_b[2]:,}円”) print(f” EMV = {emv_b:,}円”) print() # 選択肢C: 投資しない print(“選択肢C: 投資しない”) emv_c = 0 print(f” EMV = {emv_c:,}円”) print() # 比較と最適選択 print(“【EMV比較】”) print(f”選択肢A(大規模): {emv_a:,}円”) print(f”選択肢B(小規模): {emv_b:,}円”) print(f”選択肢C(投資なし): {emv_c:,}円”) print() # 最大EMVを見つける emvs = {‘大規模投資’: emv_a, ‘小規模投資’: emv_b, ‘投資しない’: emv_c} best_choice = max(emvs, key=emvs.get) print(f”【最適な選択】→ 「{best_choice}」(EMV: {emvs[best_choice]:,}円)”)
# 出力結果 【設備投資の意思決定ツリー】 選択肢A: 大規模投資(投資額: 1億円) 需要高(30%): 利益200,000,000円 需要中(50%): 利益0円 需要低(20%): 利益-150,000,000円 EMV = 30,000,000円 選択肢B: 小規模投資(投資額: 3000万円) 需要高(30%): 利益50,000,000円 需要中(50%): 利益10,000,000円 需要低(20%): 利益-20,000,000円 EMV = 16,000,000円 選択肢C: 投資しない EMV = 0円 【EMV比較】 選択肢A(大規模): 30,000,000円 選択肢B(小規模): 16,000,000円 選択肢C(投資なし): 0円 【最適な選択】→ 「大規模投資」(EMV: 30,000,000円)

Step 3:意思決定ツリーのクラス実装

# ============================================ # 意思決定ツリーをクラスで実装 # ============================================ class DecisionNode: “””決定ノード:自分で選べる選択肢””” def __init__(self, name): self.name = name self.children = {} # 選択肢名: 子ノード def add_option(self, option_name, child_node): “””選択肢を追加””” self.children[option_name] = child_node def evaluate(self): “””最適な選択肢とそのEMVを返す””” results = {} for option, child in self.children.items(): if isinstance(child, (int, float)): results[option] = child else: results[option] = child.evaluate() best_option = max(results, key=results.get) return results[best_option], best_option, results class ChanceNode: “””確率ノード:不確実性を表す””” def __init__(self, name): self.name = name self.outcomes = [] # (確率, 結果値または子ノード) def add_outcome(self, probability, result): “””結果を追加””” self.outcomes.append((probability, result)) def evaluate(self): “””EMVを計算””” emv = 0 for prob, result in self.outcomes: if isinstance(result, (int, float)): emv += prob * result else: emv += prob * result.evaluate() return emv # ============================================ # 例:新製品発売の意思決定ツリーを構築 # ============================================ # 確率ノード(市場の反応)を作成 market_response = ChanceNode(“市場の反応”) market_response.add_outcome(0.6, 5000000) # 成功60%: +500万円 market_response.add_outcome(0.4, -2000000) # 失敗40%: -200万円 # 決定ノード(発売判断)を作成 launch_decision = DecisionNode(“発売判断”) launch_decision.add_option(“発売する”, market_response) launch_decision.add_option(“発売しない”, 0) # 評価を実行 best_emv, best_option, all_results = launch_decision.evaluate() print(“【意思決定ツリーの評価結果】”) print() print(“各選択肢のEMV:”) for option, emv in all_results.items(): print(f” {option}: {emv:,}円”) print() print(f”最適な選択: 「{best_option}」”) print(f”期待されるEMV: {best_emv:,}円”)
# 出力結果 【意思決定ツリーの評価結果】 各選択肢のEMV: 発売する: 2,200,000円 発売しない: 0円 最適な選択: 「発売する」 期待されるEMV: 2,200,000円

感度分析との組み合わせ

意思決定ツリーでは、確率の値が変わるとEMVも変わります。「成功確率がどこまで下がったら、発売しない方が良くなるか」を分析してみましょう。

# ============================================ # 感度分析:確率が変わるとEMVはどう変わる? # ============================================ print(“【感度分析:成功確率とEMVの関係】”) print() success_probs = np.arange(0, 1.05, 0.05) # 0%〜100% emvs_launch = [] for p_success in success_probs: p_fail = 1 – p_success emv = 5000000 * p_success + (-2000000) * p_fail emvs_launch.append(emv) # 損益分岐点(EMV = 0となる確率)を計算 # 5000000 * p + (-2000000) * (1-p) = 0 # 5000000p – 2000000 + 2000000p = 0 # 7000000p = 2000000 # p = 2000000 / 7000000 = 0.286 (約29%) breakeven_prob = 2000000 / 7000000 print(f”損益分岐点: 成功確率 {breakeven_prob*100:.1f}%”) print() print(“成功確率別のEMV:”) for p, emv in zip(success_probs[::4], emvs_launch[::4]): decision = “発売する” if emv > 0 else “発売しない” print(f” {p*100:5.1f}% → EMV {emv:>12,.0f}円 → {decision}”)
# 出力結果 【感度分析:成功確率とEMVの関係】 損益分岐点: 成功確率 28.6% 成功確率別のEMV: 0.0% → EMV -2,000,000円 → 発売しない 20.0% → EMV -600,000円 → 発売しない 40.0% → EMV 800,000円 → 発売する 60.0% → EMV 2,200,000円 → 発売する 80.0% → EMV 3,600,000円 → 発売する 100.0% → EMV 5,000,000円 → 発売する
💡 感度分析の重要な発見

損益分岐点:成功確率 28.6%

意味:
・成功確率が28.6%以上なら「発売する」が有利
・成功確率が28.6%未満なら「発売しない」が有利

実務への示唆:
・市場調査で「成功確率が30%以上」と判断できれば、発売すべき
・確率の推定に自信がなくても、28.6%というラインを意識できる
・この分析を経営層に見せることで、意思決定の根拠を説明できる

💼 4. 実務での活用例

例:マーケティング戦略の意思決定

# ============================================ # 実務例:マーケティング戦略の意思決定 # ============================================ print(“【マーケティング戦略の意思決定ツリー】”) print() print(“背景:”) print(“・新規顧客獲得のためのマーケティング戦略を選択”) print(“・予算は限られているため、1つの戦略のみ実行可能”) print() # 戦略A: デジタル広告キャンペーン print(“【戦略A: デジタル広告キャンペーン】”) print(“投資額: 500万円”) cost_a = -5000000 outcomes_a = { ‘大成功’: {‘prob’: 0.2, ‘revenue’: 20000000}, # 売上2000万 ‘成功’: {‘prob’: 0.5, ‘revenue’: 10000000}, # 売上1000万 ‘失敗’: {‘prob’: 0.3, ‘revenue’: 2000000} # 売上200万 } emv_a = 0 for result, data in outcomes_a.items(): profit = data[‘revenue’] + cost_a emv_a += data[‘prob’] * profit print(f” {result}({data[‘prob’]*100:.0f}%): 売上{data[‘revenue’]/10000:.0f}万円 → 利益{profit/10000:.0f}万円”) print(f” EMV = {emv_a/10000:.0f}万円”) print() # 戦略B: インフルエンサーマーケティング print(“【戦略B: インフルエンサーマーケティング】”) print(“投資額: 300万円”) cost_b = -3000000 outcomes_b = { ‘大成功’: {‘prob’: 0.15, ‘revenue’: 15000000}, ‘成功’: {‘prob’: 0.45, ‘revenue’: 8000000}, ‘失敗’: {‘prob’: 0.4, ‘revenue’: 1000000} } emv_b = 0 for result, data in outcomes_b.items(): profit = data[‘revenue’] + cost_b emv_b += data[‘prob’] * profit print(f” {result}({data[‘prob’]*100:.0f}%): 売上{data[‘revenue’]/10000:.0f}万円 → 利益{profit/10000:.0f}万円”) print(f” EMV = {emv_b/10000:.0f}万円”) print() # 戦略C: 展示会出展 print(“【戦略C: 展示会出展】”) print(“投資額: 200万円”) cost_c = -2000000 outcomes_c = { ‘大成功’: {‘prob’: 0.1, ‘revenue’: 10000000}, ‘成功’: {‘prob’: 0.6, ‘revenue’: 5000000}, ‘失敗’: {‘prob’: 0.3, ‘revenue’: 500000} } emv_c = 0 for result, data in outcomes_c.items(): profit = data[‘revenue’] + cost_c emv_c += data[‘prob’] * profit print(f” {result}({data[‘prob’]*100:.0f}%): 売上{data[‘revenue’]/10000:.0f}万円 → 利益{profit/10000:.0f}万円”) print(f” EMV = {emv_c/10000:.0f}万円”) print() # 比較と推奨 print(“=” * 50) print(“【EMV比較と推奨】”) print(“=” * 50) print(f”戦略A(デジタル広告): EMV {emv_a/10000:.0f}万円”) print(f”戦略B(インフルエンサー): EMV {emv_b/10000:.0f}万円”) print(f”戦略C(展示会): EMV {emv_c/10000:.0f}万円”) print() strategies = { ‘デジタル広告’: emv_a, ‘インフルエンサー’: emv_b, ‘展示会’: emv_c } best = max(strategies, key=strategies.get) print(f”→ 推奨: 「{best}」(EMV: {strategies[best]/10000:.0f}万円)”)
# 出力結果 【マーケティング戦略の意思決定ツリー】 背景: ・新規顧客獲得のためのマーケティング戦略を選択 ・予算は限られているため、1つの戦略のみ実行可能 【戦略A: デジタル広告キャンペーン】 投資額: 500万円 大成功(20%): 売上2000万円 → 利益1500万円 成功(50%): 売上1000万円 → 利益500万円 失敗(30%): 売上200万円 → 利益-300万円 EMV = 460万円 【戦略B: インフルエンサーマーケティング】 投資額: 300万円 大成功(15%): 売上1500万円 → 利益1200万円 成功(45%): 売上800万円 → 利益500万円 失敗(40%): 売上100万円 → 利益-200万円 EMV = 325万円 【戦略C: 展示会出展】 投資額: 200万円 大成功(10%): 売上1000万円 → 利益800万円 成功(60%): 売上500万円 → 利益300万円 失敗(30%): 売上50万円 → 利益-150万円 EMV = 215万円 ================================================== 【EMV比較と推奨】 ================================================== 戦略A(デジタル広告): EMV 460万円 戦略B(インフルエンサー): EMV 325万円 戦略C(展示会): EMV 215万円 → 推奨: 「デジタル広告」(EMV: 460万円)

リスク考慮型の意思決定

⚠️ EMVだけで判断していいの?

EMVが最大の選択肢が常に最適とは限りません。

例:
・戦略A: EMV 460万円だが、失敗時は-300万円の損失
・戦略C: EMV 215万円だが、失敗時は-150万円の損失

リスク回避的な経営者なら、EMVが低くても損失が小さい戦略Cを選ぶかもしれません。

最悪ケースの損失額も考慮した意思決定が重要!

# ============================================ # リスク考慮型の意思決定 # ============================================ print(“【リスク考慮型の意思決定分析】”) print() # 各戦略のリスク指標を計算 strategies_risk = { ‘デジタル広告’: { ‘emv’: emv_a, ‘worst_case’: min([d[‘revenue’] + cost_a for d in outcomes_a.values()]), ‘best_case’: max([d[‘revenue’] + cost_a for d in outcomes_a.values()]), ‘investment’: abs(cost_a) }, ‘インフルエンサー’: { ‘emv’: emv_b, ‘worst_case’: min([d[‘revenue’] + cost_b for d in outcomes_b.values()]), ‘best_case’: max([d[‘revenue’] + cost_b for d in outcomes_b.values()]), ‘investment’: abs(cost_b) }, ‘展示会’: { ‘emv’: emv_c, ‘worst_case’: min([d[‘revenue’] + cost_c for d in outcomes_c.values()]), ‘best_case’: max([d[‘revenue’] + cost_c for d in outcomes_c.values()]), ‘investment’: abs(cost_c) } } print(“戦略比較表:”) print(“-” * 70) print(f”{‘戦略’:<15} {'EMV':>12} {‘最悪ケース’:>12} {‘最良ケース’:>12} {‘投資額’:>10}”) print(“-” * 70) for name, data in strategies_risk.items(): print(f”{name:<15} {data['emv']/10000:>10.0f}万円 {data[‘worst_case’]/10000:>10.0f}万円 {data[‘best_case’]/10000:>10.0f}万円 {data[‘investment’]/10000:>8.0f}万円”) print(“-” * 70) print() # 意思決定基準による推奨 print(“【意思決定基準別の推奨】”) print() # 1. EMV最大化(リスク中立) best_emv = max(strategies_risk, key=lambda x: strategies_risk[x][‘emv’]) print(f”① EMV最大化(リスク中立)→ {best_emv}”) # 2. 最悪ケース最大化(マキシミン基準 – リスク回避) best_maximin = max(strategies_risk, key=lambda x: strategies_risk[x][‘worst_case’]) print(f”② 最悪ケース最大化(リスク回避)→ {best_maximin}”) # 3. 最良ケース最大化(マキシマックス基準 – リスク愛好) best_maximax = max(strategies_risk, key=lambda x: strategies_risk[x][‘best_case’]) print(f”③ 最良ケース最大化(リスク愛好)→ {best_maximax}”) # 4. ROI最大化 best_roi = max(strategies_risk, key=lambda x: strategies_risk[x][‘emv’] / strategies_risk[x][‘investment’]) print(f”④ ROI最大化(効率重視)→ {best_roi}”)
# 出力結果 【リスク考慮型の意思決定分析】 戦略比較表: ———————————————————————- 戦略 EMV 最悪ケース 最良ケース 投資額 ———————————————————————- デジタル広告 460万円 -300万円 1500万円 500万円 インフルエンサー 325万円 -200万円 1200万円 300万円 展示会 215万円 -150万円 800万円 200万円 ———————————————————————- 【意思決定基準別の推奨】 ① EMV最大化(リスク中立)→ デジタル広告 ② 最悪ケース最大化(リスク回避)→ 展示会 ③ 最良ケース最大化(リスク愛好)→ デジタル広告 ④ ROI最大化(効率重視)→ 展示会
📌 意思決定基準の使い分け

① EMV最大化(期待値基準)
・平均的に最も利益が大きい選択
・繰り返し意思決定する場合に有効
・リスク中立的な意思決定者向け

② マキシミン基準(最悪ケース重視)
・最悪の場合でも被害を最小化
・リスク回避的な意思決定者向け
・失敗が致命的な場合に有効

③ マキシマックス基準(最良ケース重視)
・最大のチャンスを追求
・リスク愛好的な意思決定者向け
・ベンチャー企業などで使われる

④ ROI基準(投資効率重視)
・投資額あたりのリターンを最大化
・資金が限られている場合に有効
・複数の投資案件を比較する場合に便利

📝 STEP 41 のまとめ

✅ このステップで学んだこと

1. 意思決定ツリーの基本

  • 複雑な意思決定を構造化して視覚化
  • 3つのノード:決定(□)、確率(○)、結果(△)
  • 選択肢と不確実性を明確に分離

2. EMV(期待金額価値)

  • EMV = Σ(結果の金額 × 確率)
  • ロールバック法で右から左に計算
  • EMVが最大の選択肢が最適(基本)

3. 感度分析との組み合わせ

  • 確率が変わるとEMVも変わる
  • 損益分岐点となる確率を特定
  • 意思決定の頑健性を確認

4. リスク考慮型の意思決定

  • EMVだけでなく、最悪ケースも考慮
  • 意思決定基準の使い分け
  • リスク許容度に応じた選択
💡 意思決定ツリー活用のポイント

効果的に使うためのコツ:

選択肢を漏れなく洗い出す
「やらない」という選択肢も必ず含める

確率は根拠を持って設定
過去データ、市場調査、専門家の意見を活用

感度分析を必ず行う
確率の推定に自信がない場合は特に重要

リスク許容度を明確にする
経営層と事前に合意しておく

結果を共有・説明できる形にする
ツリー図は視覚的で説明しやすい

次のSTEP 42では、「モンテカルロシミュレーション」を学びます。確率分布を使った、より精密なリスク分析を習得しましょう!

🎯 次のステップの予告

STEP 42では、「モンテカルロシミュレーション」を学びます。意思決定ツリーでは確率を「点」で推定しましたが、モンテカルロシミュレーションでは確率を「分布」として扱い、何千回ものシミュレーションで結果の分布を分析します!

📝 練習問題

問題 1 基礎

以下の意思決定ツリーのEMVを計算してください。

選択肢A:新規事業に投資
・成功(40%):利益 +800万円
・失敗(60%):損失 -300万円

選択肢B:投資しない
・利益 0円

どちらを選ぶべきですか?

【解答】

選択肢AのEMV計算:

EMV(A) = (+800万円 × 0.4) + (-300万円 × 0.6)
    = 320万円 + (-180万円)
    = 140万円

選択肢BのEMV:

EMV(B) = 0円

比較と結論:

EMV(A) = 140万円 > EMV(B) = 0円

→ 「選択肢A:新規事業に投資」を選ぶべき

ただし、60%の確率で300万円の損失が発生する点に注意。
リスク回避的な場合は、投資しない選択もありうる。
問題 2 基礎

問題1の意思決定において、「投資する」方が有利になるための成功確率の最低ラインは何%ですか?(損益分岐点の確率を求めてください)

【解答】

損益分岐点の計算:

EMV = 0 となる成功確率pを求める

800万円 × p + (-300万円) × (1-p) = 0
800p – 300 + 300p = 0
1100p = 300
p = 300 ÷ 1100
p = 0.273(約27.3%)

結論:

損益分岐点 = 約27.3%

・成功確率が27.3%以上なら「投資する」が有利
・成功確率が27.3%未満なら「投資しない」が有利

現在の想定(40%)は損益分岐点を上回っているため、
投資する判断は妥当。
問題 3 応用

以下の2段階の意思決定ツリーのEMVを計算してください。

最初の決定:市場調査を行うか

A) 市場調査を行う(費用100万円)
 → 良い結果(70%)の場合:発売決定
   ・成功(80%):利益+500万円
   ・失敗(20%):損失-200万円
 → 悪い結果(30%)の場合:発売中止(0円)

B) 市場調査なしで発売
 ・成功(50%):利益+500万円
 ・失敗(50%):損失-200万円

【解答】

選択肢A:市場調査を行う

Step 1: 発売時のEMV
EMV(発売) = 500万円×0.8 + (-200万円)×0.2
     = 400万円 – 40万円 = 360万円

Step 2: 市場調査の結果別
良い結果(70%)→ 発売 → EMV 360万円
悪い結果(30%)→ 中止 → EMV 0円

Step 3: 市場調査全体のEMV
EMV = 360万円×0.7 + 0円×0.3 – 100万円(調査費用)
  = 252万円 – 100万円
  = 152万円

選択肢B:市場調査なしで発売

EMV(B) = 500万円×0.5 + (-200万円)×0.5
    = 250万円 – 100万円
    = 150万円

比較と結論:

EMV(A) = 152万円
EMV(B) = 150万円

→ 「市場調査を行う」がわずかに有利(差2万円)

市場調査の価値(情報の価値)= 152万円 – 150万円 = 2万円
調査費用100万円に対して、リスク軽減効果がある。
問題 4 実践

あなたは製品マネージャーです。以下の3つの製品戦略から最適なものを選んでください。

戦略1:フルスペック版を開発(開発費800万円)
・大ヒット(20%):売上3,000万円
・普通(50%):売上1,200万円
・不振(30%):売上400万円

戦略2:シンプル版を開発(開発費300万円)
・大ヒット(10%):売上1,500万円
・普通(60%):売上700万円
・不振(30%):売上200万円

戦略3:開発しない
・結果:0円

各戦略のEMV、最悪ケース、最良ケースを計算し、推奨を述べてください。

【解答】

戦略1:フルスペック版

利益計算(売上 – 開発費800万円):
・大ヒット:3,000-800 = 2,200万円
・普通:1,200-800 = 400万円
・不振:400-800 = -400万円

EMV = 2,200×0.2 + 400×0.5 + (-400)×0.3
  = 440 + 200 – 120 = 520万円

最悪ケース:-400万円
最良ケース:+2,200万円

戦略2:シンプル版

利益計算(売上 – 開発費300万円):
・大ヒット:1,500-300 = 1,200万円
・普通:700-300 = 400万円
・不振:200-300 = -100万円

EMV = 1,200×0.1 + 400×0.6 + (-100)×0.3
  = 120 + 240 – 30 = 330万円

最悪ケース:-100万円
最良ケース:+1,200万円

戦略3:開発しない

EMV = 0円
最悪ケース = 最良ケース = 0円

比較表と推奨:

戦略 EMV 最悪 最良
フルスペック 520万円 -400万円 +2,200万円
シンプル 330万円 -100万円 +1,200万円
開発しない 0円 0円 0円

推奨(意思決定基準別):
① EMV最大化 → フルスペック版(520万円)
② リスク回避 → シンプル版(最悪でも-100万円)
③ ハイリターン追求 → フルスペック版(最良2,200万円)

総合推奨:
会社のリスク許容度による。400万円の損失に耐えられるなら
フルスペック版、そうでなければシンプル版を推奨。

❓ よくある質問

Q1: 確率をどうやって推定すればいいですか?
いくつかの方法を組み合わせて推定します。

① 過去データから
・過去の類似プロジェクトの成功率
・業界の平均的な成功率
・自社の実績データ

② 専門家の意見
・社内の経験者にヒアリング
・外部コンサルタントの見解
・デルファイ法(複数専門家の意見を集約)

③ 市場調査
・顧客アンケート
・競合分析
・テストマーケティング

④ 範囲で推定
・最低・最高の確率を設定
・感度分析で影響を確認
・確率に自信がない場合は幅を持たせる

ポイント:完璧な確率推定は不可能。感度分析で確率が変わった場合の影響を確認することが重要!
Q2: EMVが同じくらいの選択肢があった場合、どう選べばいいですか?
EMV以外の基準も考慮して判断します。

① リスク(変動性)を比較
・最悪ケースの損失額を比較
・結果の振れ幅(標準偏差)を比較
・リスク許容度に応じて選択

② 戦略的適合性
・会社の方向性に合っているか
・他の事業とのシナジー
・長期的な成長につながるか

③ 実行可能性
・必要なリソース(人・資金・時間)
・組織の能力とのマッチング
・実行のタイミング

④ オプション価値
・将来の選択肢が広がるか
・撤退・拡大の柔軟性
・学習効果があるか

ポイント:EMVは意思決定の重要な指標だが、唯一の基準ではない。総合的に判断する。
Q3: 意思決定ツリーの結果を経営層にどう説明すればいいですか?
視覚化と数字の両方で説明します。

① ツリー図で全体像を見せる
・選択肢と不確実性を1枚の図で表現
・複雑な意思決定を構造化して理解しやすく

② EMVで比較する
・「選択肢Aは平均○○万円、Bは△△万円」
・差額を明示「AはBより○○万円有利」

③ リスクも説明する
・「最悪の場合は○○万円の損失」
・「ただし、その確率は○%」

④ 感度分析の結果を添える
・「成功確率が○%以上なら有利」
・「確率が多少変わっても結論は変わらない」

⑤ 推奨と根拠を明確に
・「以上の分析から、選択肢Aを推奨します」
・「理由は、EMVが最大で、最悪ケースも許容範囲だからです」

ポイント:数字だけでなく、「なぜその選択が良いのか」のストーリーを説明する。
Q4: 機械学習の「決定木」とは違うものですか?
名前は似ていますが、目的が異なります。

意思決定ツリー(このステップで学んだもの)
・目的:意思決定の最適化
・使い方:将来の選択肢を評価
・確率:人間が設定
・出力:最適な選択肢とEMV
・分野:経営学、OR(オペレーションズリサーチ)

決定木(機械学習)
・目的:分類・予測
・使い方:データからパターンを学習
・確率:データから自動計算
・出力:予測結果(カテゴリや数値)
・分野:データサイエンス、AI

共通点:どちらもツリー構造で分岐を表現する
違い:意思決定 vs 予測という目的の違い

ポイント:文脈によって使い分ける。ビジネスの意思決定には「意思決定ツリー」、データ分析には「決定木」を使う。
📝

学習メモ

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

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