Lab Research 景気循環と経済指標——景気循環の仕組み、主要経済指標、景気予測の基礎
目次

「経済は感情である」——ジョン・メイナード・ケインズの言葉が示すように、経済は数値だけでなく、人々の心理や期待によって動く。景気循環を理解し、経済指標を正しく読むことは、投資判断だけでなく、ビジネス戦略においても不可欠なスキルだ。本稿では、景気循環の仕組みと主要経済指標の見方を体系的に解説する。

経済分析の 3 つの柱

指標 説明
成長 GDP、鉱工業生産 経済活動の規模と拡大・縮小
雇用 失業率、雇用者数 労働市場の健全性
物価 CPI、PPI、コアインフレ インフレ・デフレの動向

1. 景気循環の仕組み

1.1 景気循環の段階

景気は拡張→後退→縮小→回復のサイクルを繰り返す。

        景気拡張局
            /\
           /  \
          /    \ 後退
         /      \
        /        \
回復   /          \  縮小
      /            \
     /              \
    /                \
   /                  \
  景気底入れ          景気ピーク
段階 特徴 経済状況
拡張 GDP 成長加速、雇用改善、設備投資増加 好景気、インフレ圧力
後退 成長鈍化、在庫増加、利益率悪化 転換点、金融引き締め影響
縮小 GDP 減少、失業率上昇、設備投資減少 不況、デフレ圧力
回復 減少幅縮小、雇用底打ち、在庫調整完了 底入れ、金融緩和効果

1.2 景気循環の原因

理論 説明 政策含意
需給ショック 需要または供給の急変が景気変動を引き起こす 需要管理政策
金融サイクル 信用拡大・縮小が資産価格と実体経済に影響 金融政策重視
在庫サイクル 在庫調整(3-4 年)が短期的変動を引き起こす 自動安定化装置
設備投資サイクル 設備投資の波(7-10 年)が中期的変動を形成 産業政策
技術革新サイクル 技術革新の波(50-60 年)が長期的変動を形成 成長戦略

1.3 景気循環の計量化

import numpy as np
import pandas as pd

def calculate_business_cycle_phase(gdp_growth_rates, window=4):
    """GDP 成長率から景気循環の段階を判定"""

    # 移動平均でトレンドを抽出
    trend = pd.Series(gdp_growth_rates).rolling(window=window).mean()

    # 景気拡大・縮小の判定
    phases = []
    for i in range(len(gdp_growth_rates)):
        if i < window:
            phases.append("判定不能")
            continue

        current_growth = gdp_growth_rates[i]
        prev_growth = gdp_growth_rates[i-1]

        if current_growth > 0 and prev_growth > 0 and current_growth > prev_growth:
            phases.append("拡張")
        elif current_growth > 0 and prev_growth > 0 and current_growth < prev_growth:
            phases.append("後退")
        elif current_growth < 0 and prev_growth < 0 and current_growth < prev_growth:
            phases.append("縮小")
        elif current_growth < 0 and prev_growth < 0 and current_growth > prev_growth:
            phases.append("回復")
        else:
            phases.append("転換点")

    return phases

# 例:四半期 GDP 成長率(前四半期比、年率換算)
gdp_data = [2.1, 2.5, 1.8, 0.5, -0.8, -1.5, -0.5, 0.3, 1.2, 2.0]
phases = calculate_business_cycle_phase(gdp_data)

for i, (growth, phase) in enumerate(zip(gdp_data, phases)):
    print(f"Q{i+1}: 成長率 {growth}%, 局面:{phase}")

2. GDP(国内総生産)

2.1 GDP の構成

GDP は一国で生産された付加価値の総額だ。

GDP = 個人消費 + 企業投資 + 政府支出 + 純輸出(輸出 - 輸入)

C    +    I     +    G     +   (X - M)
構成要素 比率(日本) 説明
個人消費(C) 約 55% 家計の最終消費支出
企業投資(I) 約 25% 設備投資、住宅投資、在庫変動
政府支出(G) 約 20% 政府消費、公共投資
純輸出(X-M) 約 0-5% 輸出から輸入を差し引いた額

2.2 実質 GDP と名目 GDP

指標 説明 用途
名目 GDP 現在の価格で評価 金額ベースの経済規模
実質 GDP 基準年の価格で評価(物価調整済み) 実際の生産量変化
def calculate_real_gdp(nominal_gdp, price_index, base_year_index=100):
    """実質 GDP の計算"""
    return (nominal_gdp / price_index) * base_year_index

def calculate_gdp_growth_rate(current_gdp, previous_gdp):
    """GDP 成長率の計算"""
    return ((current_gdp - previous_gdp) / previous_gdp) * 100

# 例:名目 GDP 550 兆円、GDP デフレーター 98(基準年=100)
nominal_gdp = 550  # 兆円
price_index = 98

real_gdp = calculate_real_gdp(nominal_gdp, price_index)
print(f"実質 GDP: {real_gdp:.1f}兆円(基準年価格)")

# 成長率計算
gdp_q1 = 545
gdp_q2 = 550
growth_rate = calculate_gdp_growth_rate(gdp_q2, gdp_q1)
print(f"GDP 成長率:{growth_rate:.2f}%")

2.3 GDP の限界

GDP は経済活動の規模を示すが、福祉や豊かさは測定できない

測定できないもの 説明
家計労働 育児、介護、家事など無償労働
環境コスト 公害、資源枯渇、生物多様性の損失
所得分配 格差、貧困の状況
幸福度 生活の質、満足度

3. 雇用指標

3.1 失業率

失業率は労働力人口に占める失業者の割合だ。

失業率 = 失業者数 / 労働力人口 × 100

労働力人口 = 就業者数 + 失業者数
分類 定義
就業者 仕事をしている人(週 1 時間以上)
失業者 仕事を探しているが見つからない人
労働力人口 就業者 + 失業者(15 歳以上)
非労働力人口 学生、主婦、高齢者など
def calculate_unemployment_rate(employed, unemployed):
    """失業率の計算"""
    labor_force = employed + unemployed
    if labor_force == 0:
        return 0
    return (unemployed / labor_force) * 100

# 例:就業者 6,700 万人、失業者 170 万人
employed = 67_000_000
unemployed = 1_700_000

unemployment_rate = calculate_unemployment_rate(employed, unemployed)
print(f"失業率:{unemployment_rate:.2f}%")  # 約 2.48%

3.2 完全失業率と実質失業率

指標 定義 日本(目安)
完全失業率 就業者を完全に失っている 2-3%
広義失業率 不完全雇用を含む 5-7%

3.3 雇用率と労働参加率

def calculate_labor_force_participation_rate(labor_force, working_age_population):
    """労働参加率の計算"""
    return (labor_force / working_age_population) * 100

def calculate_employment_rate(employed, working_age_population):
    """雇用率の計算"""
    return (employed / working_age_population) * 100

# 例:労働力人口 6,870 万人、生産年齢人口(15-64 歳)7,500 万人
labor_force = 68_700_000
working_age_pop = 75_000_000

participation_rate = calculate_labor_force_participation_rate(labor_force, working_age_pop)
print(f"労働参加率:{participation_rate:.1f}%")  # 約 91.6%

3.4 非農業部門雇用者数(米国)

米国の非農業部門雇用者数は毎月第 1 金曜日に発表され、世界中の市場に影響を与える。

項目 説明
発表 米国労働省、毎月第 1 金曜日 21:30(日本時間)
対象 農業を除く約 14 万 5000 の事業所
市場影響 株価、為替、債券価格に即時反応

4. 物価指標

4.1 消費者物価指数(CPI)

CPI は家計が購入する財・サービスの価格変動を測定する。

CPI = (基準年を 100 とした時の)現在の価格水準

インフレ率 = (当期 CPI - 前期 CPI)/ 前期 CPI × 100
def calculate_inflation_rate(current_cpi, previous_cpi):
    """インフレ率の計算"""
    return ((current_cpi - previous_cpi) / previous_cpi) * 100

def calculate_core_inflation(all_items_cpi, food_energy_cpi):
    """コアインフレ率(食料・エネルギーを除く)"""
    # 実際の計算はより複雑(ウェイト調整が必要)
    return all_items_cpi  # 簡略化

# 例:CPI 前年同月比
cpi_current = 102.5
cpi_previous = 100.0

inflation_rate = calculate_inflation_rate(cpi_current, cpi_previous)
print(f"インフレ率:{inflation_rate:.2f}%")  # 2.50%

4.2 コア CPI とコアコア CPI

指標 除く項目 目的
CPI 総合 なし 家計の総合的な物価負担
コア CPI 生鮮食品 短期的な変動要因を除去
コアコア CPI 生鮮食品・エネルギー 基調的なインフレを把握

4.3 企業物価指数(PPI)

PPI は企業が販売する財・サービスの価格変動を測定する。

# PPI から CPI への転嫁度
def calculate_pass_through_rate(cpi_change, ppi_change):
    """物価転嫁率"""
    if ppi_change == 0:
        return 0
    return (cpi_change / ppi_change) * 100

# 例:PPI 上昇 5%、CPI 上昇 2%
ppi_change = 5.0
cpi_change = 2.0

pass_through = calculate_pass_through_rate(cpi_change, ppi_change)
print(f"物価転嫁率:{pass_through:.1f}%")  # 40%(企業コスト上昇の 40% が消費者へ転嫁)

5. 景気先行指標

5.1 主要先行指標

指標 先行期間 説明
株式価格 6-12 ヶ月 企業収益期待の先行き
新規求人数 3-6 ヶ月 雇用環境の先行き
マネーサプライ 6-12 ヶ月 金融環境の先行き
住宅着工件数 3-6 ヶ月 設備投資・消費の先行き
消費者信頼感 1-3 ヶ月 個人消費の先行き
PMI(購買担当者景気指数) 1-3 ヶ月 製造業・サービス業の景況感

5.2 長短金利差(イールドカーブ)

長短金利差は景気後退の有力な先行指標だ。

def yield_curve_spread(long_term_rate, short_term_rate):
    """イールドカーブのスプレッド(10 年 -2 年)"""
    return long_term_rate - short_term_rate

# 解釈
# スプレッド > 0: 順イールド(景気拡大予想)
# スプレッド < 0: 逆イールド(景気後退予想)

# 例:10 年国債利回り 1.5%、2 年国債利回り 2.0%
spread = yield_curve_spread(1.5, 2.0)
print(f"イールドスプレッド:{spread:.2f}%")  # -0.50%(逆イールド)

if spread < 0:
    print("警告:逆イールド状態、景気後退の可能性")
スプレッド 解釈 歴史的精度
正(順イールド) 景気拡大継続 -
負(逆イールド) 景気後退の先行き 過去 50 年で 7 回中 7 回的中

5.3 PMI(購買担当者景気指数)

PMI は企業の購買担当者の景況感を数値化したものだ。

def interpret_pmi(pmi_value):
    """PMI の解釈"""
    if pmi_value > 50:
        return "景気拡大(50 より大きいほど拡大ペースが速い)"
    elif pmi_value < 50:
        return "景気後退(50 より小さいほど縮小ペースが速い)"
    else:
        return "横ばい"

# 例:製造業 PMI 52.5
pmi = 52.5
interpretation = interpret_pmi(pmi)
print(f"PMI {pmi}: {interpretation}")
PMI 値 解釈
55 以上 景気拡大が明確
50-55 緩やかな拡大
50 横ばい
45-50 緩やかな後退
45 未満 景気後退が明確

6. 金融政策と景気

6.1 中央銀行の政策手段

手段 説明 効果
政策金利 短期金利の誘導 経済活動の調整
量的緩和 国債等の大量購入 長期金利低下、資産価格上昇
フォワードガイダンス 将来の政策方針の示唆 期待形成の誘導
マイナス金利 当座預金に金利課税 銀行の貸出促進

6.2 テイラー・ルール

テイラー・ルールは適切な政策金利を算出する指針だ。

政策金利 = 中立金利 + インフレ率 + 0.5 × (インフレ率 - 目標インフレ率) + 0.5 × GDP ギャップ
def taylor_rule(neutral_rate, inflation_rate, inflation_target, gdp_gap):
    """テイラー・ルールによる適切な政策金利の計算"""
    return (
        neutral_rate +
        inflation_rate +
        0.5 * (inflation_rate - inflation_target) +
        0.5 * gdp_gap
    )

# 例:中立金利 2%、インフレ率 1.5%、目標 2%、GDP ギャップ -1%
appropriate_rate = taylor_rule(
    neutral_rate=0.02,
    inflation_rate=0.015,
    inflation_target=0.02,
    gdp_gap=-0.01
)
print(f"適切な政策金利:{appropriate_rate*100:.2f}%")  # 約 3.25%

6.3 金融政策の伝達経路

政策金利引き下げ
      ↓
短期金利低下 → 長期金利低下
      ↓
資産価格上昇(株式、不動産)
      ↓
家計・企業の富増加
      ↓
消費・投資増加
      ↓
GDP 成長加速

7. 景気予測の手法

7.1 エコノメトリック・モデル

import statsmodels.api as sm

def build_gdp_forecast_model(historical_data):
    """GDP 予測モデル(簡易版)"""

    # 説明変数:金利、財政支出、輸出
    X = historical_data[['interest_rate', 'fiscal_spending', 'exports']]
    y = historical_data['gdp_growth']

    # 回帰分析
    X = sm.add_constant(X)
    model = sm.OLS(y, X).fit()

    return model

# 予測
def forecast_gdp(model, future_values):
    """GDP 成長率の予測"""
    X_future = sm.add_constant(future_values)
    prediction = model.predict(X_future)
    return prediction[0]

# 使用例(擬似データ)
import pandas as pd

data = pd.DataFrame({
    'gdp_growth': [1.5, 2.0, 1.8, 0.5, -0.8, 1.2, 2.5, 1.9],
    'interest_rate': [0.1, 0.1, 0.5, 1.0, 1.5, 1.0, 0.5, 0.3],
    'fiscal_spending': [100, 105, 110, 115, 120, 118, 115, 112],
    'exports': [70, 72, 68, 65, 60, 63, 70, 73]
})

model = build_gdp_forecast_model(data)
print(model.summary())

7.2 景気一致指数と先行指数

指数 目的 構成要素
景気一致指数 現在の景気状況を把握 生産、出荷、雇用など
景気先行指数 将来の景気を予測 株式、新規求人、長短金利差など

7.3 リセッション・インジケーター

def recession_indicator(yield_spread, leading_index, pmi):
    """景気後退確率の簡易計算"""

    # 各指標のスコア(0-1、1 に近いほど後退確率高)
    yield_score = 1.0 if yield_spread < 0 else 0.2
    leading_score = 1.0 if leading_index < 95 else 0.3
    pmi_score = 1.0 if pmi < 45 else (0.5 if pmi < 50 else 0.2)

    # 加重平均
    recession_prob = (
        0.4 * yield_score +
        0.3 * leading_score +
        0.3 * pmi_score
    )

    return recession_prob

# 例:イールド逆転、先行指数低下、PMI50 割れ
prob = recession_indicator(
    yield_spread=-0.5,  # 逆イールド
    leading_index=93,   # 低下
    pmi=48              # 50 割れ
)
print(f"景気後退確率:{prob*100:.1f}%")  # 約 67%

8. 経済指標の見方・使い方

8.1 指標の重要性ランキング

ランク 指標 市場影響 発表頻度
1 雇用統計(米国) 非常に高い 月次
2 CPI(インフレ) 非常に高い 月次
3 GDP 高い 四半期
4 中央銀行政策金利 非常に高い 随時
5 PMI 中〜高い 月次
6 小売売上高 月次
7 鉱工業生産 月次

8.2 市場予想との比較

経済指標は予想値との乖離が重要だ。

def analyze_economic_data(actual, forecast, previous):
    """経済指標の分析"""

    # 予想との乖離
    surprise = actual - forecast
    surprise_pct = (surprise / forecast) * 100 if forecast != 0 else 0

    # 前回との変化
    mom_change = actual - previous
    mom_pct = (mom_change / previous) * 100 if previous != 0 else 0

    # 評価
    if surprise > 0:
        assessment = "ポジティブサプライズ(予想上振れ)"
    elif surprise < 0:
        assessment = "ネガティブサプライズ(予想下振れ)"
    else:
        assessment = "予想通り"

    return {
        'surprise': surprise,
        'surprise_pct': surprise_pct,
        'mom_change': mom_change,
        'mom_pct': mom_pct,
        'assessment': assessment
    }

# 例:米国雇用統計
result = analyze_economic_data(
    actual=250000,      # 実際
    forecast=200000,    # 予想
    previous=180000     # 前回
)

print(f"サプライズ:{result['surprise']:+,}人({result['surprise_pct']:+.1f}%)")
print(f"前回比:{result['mom_change']:+,}人({result['mom_pct']:+.1f}%)")
print(f"評価:{result['assessment']}")

8.3 改定値への注意

経済指標は速報値→確報値で改定されることが多い。

指標 改定幅(目安) 注意点
GDP ±0.5%pt 確報値まで注意が必要
雇用統計 ±3 万人 翌月以降の改定をチェック
CPI ほとんどなし 季節調整の再計算に注意

まとめ

景気循環と経済指標の核心を整理する:

  • 景気循環: 拡張→後退→縮小→回復のサイクルを理解
  • GDP: 経済活動の総合指標、実質と名目を区別
  • 雇用指標: 失業率、労働参加率で労働市場を把握
  • 物価指標: CPI、コア CPI、PPI でインフレを測定
  • 先行指標: イールドカーブ、PMI で景気の先行きを予測
  • 金融政策: 中央銀行の政策が景気に与える影響を理解
  • 指標の使い方: 予想値との乖離、改定値に注意

経済指標は「完璧な予言者」ではない。複数の指標を総合的に判断し、文脈を理解することが、正確な景気予測につながる。

免責事項 — 当記事は情報提供を目的としており、特定の金融商品の売買を推奨するものではありません。投資判断はご自身の責任で行ってください。