feat: Lifetime PD (50yr) - Belkin & Suchower + Vasicek model

- Belkin & Suchower (1998) credit cycle index (Zt) estimation via WLS
- Vasicek single-factor conditional PD/TM model
- Macro-Zt OLS regression with stepwise variable selection
- 3-scenario (boom/neutral/recession) 50yr PD projection
- Statistical validation suite (ADF, Ljung-Box, R2, ARCH)
- BOK ECOS API integration with fallback data
- Visualization module (7 chart types)
- Detailed theoretical methodology docs/methodology.md
This commit is contained in:
Variet Agent
2026-03-10 21:57:34 +09:00
commit 3a9374c61a
39 changed files with 4671 additions and 0 deletions

52
config.yaml Normal file
View File

@@ -0,0 +1,52 @@
# ============================================
# Lifetime PD Model Configuration
# ============================================
# BOK ECOS API
ecos:
api_key: "C5220CGY8FYFDN43B7ON"
base_url: "https://ecos.bok.or.kr/api"
# 주요 통계코드
stat_codes:
gdp_growth: "111Y002" # 국내총생산(실질성장률)
unemployment: "901Y027" # 실업률
base_rate: "722Y001" # 한국은행 기준금리
cd_rate: "817Y002" # CD(91일) 금리
treasury_3y: "817Y002" # 국고채(3년) 수익률
cpi: "901Y009" # 소비자물가지수
composite_leading: "901Y067" # 경기선행지수
# 모형 파라미터
model:
# 자산상관계수 (Basel IRB 기준 0.12~0.24, 기업 평균 ~0.20)
rho: 0.20
# 신용등급 체계 (한국 3사 공통)
rating_grades: ["AAA", "AA", "A", "BBB", "BB", "B", "CCC", "D"]
# 시나리오 설정
scenarios:
upside:
name: "호황 (Upside)"
z_multiplier: 1.0 # Zt = μ + 1.0σ
weight: 0.20 # ECB 방식 확률가중치
base:
name: "중립 (Base)"
z_multiplier: 0.0
weight: 0.50
downside:
name: "불황 (Downside)"
z_multiplier: -1.5 # Fed DFAST 역사적 하위 5%
weight: 0.30
# 50년 수렴 메커니즘
convergence:
pit_horizon: 5 # PIT 적용 기간 (년)
transition_horizon: 10 # TTC로의 전환 완료 기간 (년)
mean_reversion_lambda: 0.3 # Mean-reversion 속도
total_horizon: 50 # 총 예측 기간 (년)
# 출력 설정
output:
save_dir: "results"
figure_dpi: 150
figure_format: "png"