Mímisbrunnr知恵の泉

← 経営戦略 一覧

🎓 レベル:基礎 | 重要度:A(必須)

📎 前提:競争優位とは(持続的競争優位の源泉)(価値の創造 WTP−C と価値の獲得 P−C は別)

要点(BLUF)

1. ファイブフォース=価値の分配を決める構造

第1章で、競争優位はまず価値の楔(WTP − C)を作ることだと見ました。しかし楔を作っても、それを自社が獲得できるとは限りません。買い手が強ければ値下げを迫られ、売り手が強ければ仕入れで持っていかれ、競争が激しければ価格競争で顧客に流出します。5つの力が、創造した価値の分配を決めるのです。

flowchart TD
  ENTRY["新規参入の脅威"] --> RIV["既存企業間の競争"]
  SUB["代替品の脅威"] --> RIV
  BUY["買い手の交渉力"] --> RIV
  SUP["売り手の交渉力"] --> RIV
  RIV --> PROF["業界の収益性(企業が獲得できる価値)"]

2. 価値獲得を数値化する:残存率モデル

各フォースが創造価値の一部を奪い、企業に残るのは残存率(1 − 漏れ)の積だと考えます(説明用のillustrativeモデル)。

企業が獲得する価値=(WTPC)×i=15(1漏れi)\text{企業が獲得する価値} = (\mathrm{WTP} - C) \times \prod_{i=1}^{5} (1 - \text{漏れ}_i)
import numpy as np
import pandas as pd

# ファイブフォース:各フォースが創造価値の一部を奪い、企業に残るのは残存率の積(illustrative)
forces = pd.DataFrame({
    "force": ["新規参入の脅威", "代替品の脅威", "買い手の交渉力", "売り手の交渉力", "既存企業間の競争"],
    "業界A_漏れ": [0.05, 0.05, 0.10, 0.05, 0.10],   # 構造の良い業界
    "業界B_漏れ": [0.15, 0.15, 0.20, 0.10, 0.25],   # 構造の悪い業界
})

created_value = 100.0   # 01-03 の楔(WTP−C)を 100 とする
for col in ["業界A_漏れ", "業界B_漏れ"]:
    retain = np.prod(1 - forces[col].values)   # 残存率の積
    captured = created_value * retain
    print(f"{col}: 残存率 {retain:.3f} → 企業が獲得 {captured:.1f}")

print()
print(forces.to_string(index=False))

出力:

業界A_漏れ: 残存率 0.694 → 企業が獲得 69.4
業界B_漏れ: 残存率 0.390 → 企業が獲得 39.0

   force  業界A_漏れ  業界B_漏れ
 新規参入の脅威    0.05    0.15
  代替品の脅威    0.05    0.15
 買い手の交渉力    0.10    0.20
 売り手の交渉力    0.05    0.10
既存企業間の競争    0.10    0.25

出力の意味:両業界とも創造価値は同じ 100 です。しかし構造の良い業界Aは残存率 0.694 で 69.4 を獲得、圧力の強い業界Bは 0.390 で 39.0 しか残りません。「いくら価値を作るか」(内部・第3章)と「いくら獲得できるか」(外部構造・本章)は別問題であり、魅力のない業界では優れた製品でも利益が外へ漏れる、というのがファイブフォースの数量的な含意です。

3. どの圧力を緩めると効くか:感度分析

業界Bにいる企業が「5つのうちどれに手を打つべきか」を、各漏れを 0.05 ずつ緩和したときの獲得価値の増分で測ります。

import numpy as np
import pandas as pd

# どのフォースを緩和すると獲得価値が最も増えるか(業界Bで感度分析)
forces = ["新規参入の脅威", "代替品の脅威", "買い手の交渉力", "売り手の交渉力", "既存企業間の競争"]
leak_B = np.array([0.15, 0.15, 0.20, 0.10, 0.25])
created_value = 100.0
base = created_value * np.prod(1 - leak_B)

delta = 0.05   # 各フォースの漏れをこれだけ緩和してみる
gain = []
for i in range(len(forces)):
    new_leak = leak_B.copy()
    new_leak[i] = max(0.0, new_leak[i] - delta)
    captured = created_value * np.prod(1 - new_leak)
    gain.append(captured - base)

res = pd.DataFrame({"force": forces, "現状の漏れ": leak_B, "緩和で得る増分": gain})
res = res.sort_values("緩和で得る増分", ascending=False)
print(f"現状の獲得価値:{base:.1f}")
print(res.to_string(index=False, float_format=lambda x: f"{x:.2f}"))

出力:

現状の獲得価値:39.0
   force  現状の漏れ  緩和で得る増分
既存企業間の競争   0.25     2.60
 買い手の交渉力   0.20     2.44
 新規参入の脅威   0.15     2.30
  代替品の脅威   0.15     2.30
 売り手の交渉力   0.10     2.17

出力の意味:残存率は積なので、**いま最も大きく漏れているフォース(既存企業間の競争 0.25)を緩めると、獲得価値の増分が最大(+2.60)**になります。これは「最も拘束している制約(binding constraint)を先に外す」という最適化の発想です。業界分析の実務的な使い方は「5つを均等に眺める」ことではなく、最も価値を奪っている力を特定し、そこへ戦略資源を集中すること——例えば競争緩和なら差別化で同質競争から抜ける(→第4章)、という具体策に落ちます。

⚠️ よくある誤解

関連ノート