🎓 レベル:基礎 | 重要度:B(推奨)
📎 前提:業界構造とファイブフォース(業界内の圧力。本ノートは業界の外側のマクロ要因)
要点(BLUF)
- PEST 分析は、業界全体に効くマクロ環境を **政治(Political)・経済(Economic)・社会(Social)・技術(Technological)**の4観点で洗い出すフレームです。
- 列挙して終えると使えません。本テキストは2段階で定量化します。第1に影響度 × 発生確率で「期待影響」に換算し、注力すべき要因を順位づけます。
- 第2に影響度 × 不確実性で要因を 即対応・監視・シナリオ分析に振り分けます。高影響かつ高不確実な要因こそシナリオ分析(第8章)の対象で、ここがマクロ分析と戦略の接続点です。
1. PEST:業界の外側のうねり
業界構造とファイブフォースが業界内の力なら、PEST は業界外から全プレイヤーに一様に効く力です。自社だけでなく競合も顧客も同じ波を受けます。
| 観点 | 例 |
|---|---|
| 政治 Political | 規制・税制・補助金・通商政策 |
| 経済 Economic | 景気・金利・為替・所得・物価 |
| 社会 Social | 人口動態・価値観・ライフスタイル |
| 技術 Technological | 新技術・自動化・特許・代替技術 |
問題は「重要そうな項目をいくらでも挙げられる」こと。意思決定に使うには重みづけが要ります。
2. 期待影響でランクづけする:影響度 × 発生確率
各要因に、自社利益への影響度(−5〜+5:マイナスは脅威、プラスは機会)と発生確率を割り当て、期待影響に換算します。
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に近い)ほど不確実です。不確実性を (=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章)の対象です。読めない高影響要因に対しては、当てにいくのではなく複数シナリオで備えるのが定石。確実な高影響トレンドには今すぐ動き、不確実な高影響要因には選択肢を持って待つ——この振り分けがマクロ分析を意思決定につなぐ橋になります。
⚠️ よくある誤解
- 「PEST は列挙して終わり」ではない:重みづけ(影響度×確率)なしの一覧は意思決定に使えません。本ノートのように数値化して初めて優先順位がつきます。
- 「不確実性が高い=無視」ではない:高影響で不確実な要因こそシナリオ分析の主役です(第8章)。確率を無理に1点で当てにいかないこと。
- 影響度・確率の数値は判断の構造化ツール:正確な予測ではなく、議論を定量的な土俵に乗せ、合意と再現性を得るための道具です。感度分析で結論の頑健性を確認します。
- PEST と5フォースは役割が違う:PEST はマクロ(全業界共通の波)、5フォースは業界固有の力。波が5つの力を動かす因果でつながります。
関連ノート
- 業界構造とファイブフォース(業界内の圧力・前提)/業界収益性の定量化(集中度とHHI)(次のトピック)
- 第8章 不確実性下の戦略(高影響・高不確実な要因のシナリオプランニング・決定木)
- 確率の更新・主観確率の扱いはベイズ統計テキストへ
- 経営戦略テキスト 全体目次