Mímisbrunnr知恵の泉

← 経営戦略 一覧

🎓 レベル:基礎 | 重要度:B(推奨)

📎 前提:業界構造とファイブフォース(業界内の圧力。本ノートは業界の外側のマクロ要因)

要点(BLUF)

1. PEST:業界の外側のうねり

業界構造とファイブフォースが業界の力なら、PEST は業界から全プレイヤーに一様に効く力です。自社だけでなく競合も顧客も同じ波を受けます。

観点
政治 Political規制・税制・補助金・通商政策
経済 Economic景気・金利・為替・所得・物価
社会 Social人口動態・価値観・ライフスタイル
技術 Technological新技術・自動化・特許・代替技術

問題は「重要そうな項目をいくらでも挙げられる」こと。意思決定に使うには重みづけが要ります。

2. 期待影響でランクづけする:影響度 × 発生確率

各要因に、自社利益への影響度(−5〜+5:マイナスは脅威、プラスは機会)と発生確率を割り当て、期待影響に換算します。

期待影響=影響度×発生確率\text{期待影響} = \text{影響度} \times \text{発生確率}
import numpy as np
import pandas as pd

# PEST:マクロ要因を「影響度×発生確率」で期待影響に換算(合成データ)
pest = pd.DataFrame({
    "カテゴリ": ["政治P", "政治P", "経済E", "経済E", "社会S", "技術T", "技術T"],
    "要因":     ["炭素税の強化", "規制緩和", "金利上昇", "円安", "高齢化", "生成AIの普及", "EV化"],
    "影響度":   [-4, 3, -2, 2, -1, 5, 3],     # 自社利益への向き・大きさ(-5..+5)
    "発生確率": [0.7, 0.3, 0.6, 0.5, 0.9, 0.8, 0.6],
})

pest["期待影響"] = pest["影響度"] * pest["発生確率"]
pest = pest.sort_values("期待影響")
print(pest.to_string(index=False, float_format=lambda x: f"{x:.2f}"))
print(f"\n期待影響の純合計:{pest['期待影響'].sum():.2f}")

出力:

カテゴリ      要因  影響度  発生確率  期待影響
 政治P  炭素税の強化   -4  0.70 -2.80
 経済E    金利上昇   -2  0.60 -1.20
 社会S     高齢化   -1  0.90 -0.90
 政治P    規制緩和    3  0.30  0.90
 経済E      円安    2  0.50  1.00
 技術T     EV化    3  0.60  1.80
 技術T 生成AIの普及    5  0.80  4.00

出力の意味:最大の機会は生成AIの普及(+4.00)、最大の脅威は炭素税の強化(−2.80)。期待影響の純合計は +2.80 とわずかにプラスで、このマクロ環境は全体として追い風寄り、と数値で言えます。影響が大きくても確率が低い「規制緩和(影響+3だが確率0.3で+0.90)」が、確率の高い円安(+1.00)に順位で負ける——大きさと起こりやすさの掛け算で見るのがポイントです。

3. 不確実性で扱いを変える:影響度 × 不確実性

期待影響だけでは「確率0.5の要因」の扱いに困ります。起こるか起こらないか読めない(確率が0.5に近い)ほど不確実です。不確実性を 12p11 - |2p - 1|pp=0.5 で最大1、0や1で0)で測り、影響規模と組み合わせて対応方針を分けます。

import numpy as np
import pandas as pd

pest = pd.DataFrame({
    "要因":     ["炭素税の強化", "規制緩和", "金利上昇", "円安", "高齢化", "生成AIの普及", "EV化"],
    "影響度":   [-4, 3, -2, 2, -1, 5, 3],
    "発生確率": [0.7, 0.3, 0.6, 0.5, 0.9, 0.8, 0.6],
})

# 不確実性:確率が 0.5 に近いほど高い(1−|2p−1|)
pest["不確実性"] = 1 - np.abs(2*pest["発生確率"] - 1)
pest["影響規模"] = pest["影響度"].abs()

hi_imp = pest["影響規模"] >= 3
hi_unc = pest["不確実性"] >= 0.6
pest["対応"] = np.where(hi_imp & hi_unc, "シナリオ分析",
                np.where(hi_imp & ~hi_unc, "即対応・投資",
                np.where(~hi_imp & hi_unc, "監視", "様子見")))

print(pest[["要因","影響規模","不確実性","対応"]].to_string(index=False, float_format=lambda x: f"{x:.2f}"))

出力:

     要因  影響規模  不確実性     対応
 炭素税の強化     4  0.60 シナリオ分析
   規制緩和     3  0.60 シナリオ分析
   金利上昇     2  0.80     監視
     円安     2  1.00     監視
    高齢化     1  0.20    様子見
生成AIの普及     5  0.40 即対応・投資
    EV化     3  0.80 シナリオ分析

出力の意味生成AIは高影響だが起こることはほぼ確実(不確実性0.40)→ いま投資。一方、炭素税・規制緩和・EV化は高影響かつ不確実 → シナリオ分析(第8章)の対象です。読めない高影響要因に対しては、当てにいくのではなく複数シナリオで備えるのが定石。確実な高影響トレンドには今すぐ動き、不確実な高影響要因には選択肢を持って待つ——この振り分けがマクロ分析を意思決定につなぐ橋になります。

⚠️ よくある誤解

関連ノート