Table of Contents
- Lifetime PD (50년) - 이론적 방법론 상세 문서
- 1. 전체 논리 흐름
- 2. 단계별 상세 이론
- 2.0 3사 전이행렬 전처리 파이프라인
- 원시 데이터 구조
- Step 1: PDF 파싱 → 6×8 추출
- Step 2: WR -> D PD 플로어 보정 + 쟔여 WR 비례 재배분
- Step 3: B이하 → B 매핑
- Step 4: D행 추가 → 7×7
- Step 5: PD 플로어 적용 (KAP 시장 YTM 기반)
- Step 6: CCC 행/열 보간 → 8×8 완성
- 왜 CCC 없이 Zt를 추정하는가?
- 2.1 Through-The-Cycle (TTC) 전이행렬
- 2.2 Belkin & Suchower (1998) — 신용사이클 인덱스 Zt
- 2.3 자산상관계수 ρ
- 2.4 Vasicek 단일팩터 모델 — PIT PD
- 2.5 거시연계 회귀모형: Zt ~ 거시변수
- 2.6 통계적 검증 (엄밀한 관점)
- (a) ADF (Augmented Dickey-Fuller) 검정 — Zt 정상성
- (b) Shapiro-Wilk 검정 — Zt 정규성
- (c) Durbin-Watson / Ljung-Box — 잔차 자기상관
- (d) Breusch-Pagan / ARCH-LM — 이분산
- (e) R² / F-test — 모형 설명력
- 2.7 시나리오 설계 (ECB/Fed 방식)
- 2.8 50년 수렴 메커니즘
- 2.9 Lifetime PD 산출 엔진
- 3. 참고문헌
- 4. 코드 구조 ↔ 이론 매핑
- 5. 부호 규약 참고
Lifetime PD (50년) - 이론적 방법론 상세 문서
목표: 한국 신용등급 전이행렬과 거시경제변수를 결합하여, 미래 경기를 반영한 50년 Lifetime PD를 호황/불황/중립 시나리오별로 산출
1. 전체 논리 흐름
[한국 3사 PDF (한국기업평가/NICE/한신평)]
↓
[전처리: WR 제거 → B이하→B 매핑 → PD 플로어 적용 → 7×7 (AAA~B+D)]
↓
[TTC 전이행렬 산출 (전 기간 평균, 7×7)]
↓
[Belkin & Suchower: Zt 추정 (WLS)] ← [TTC 임계값 (Φ⁻¹)]
↓
[CCC 행/열 보간 (B↔D 사이 PD 보간) → 8×8 완성]
↓
[Zt ~ 거시변수 회귀모형 (OLS + Stepwise)] ← [BOK ECOS 거시경제변수]
↓
[미래 시나리오 (호황/중립/불황)] → [Zt 경로 + Mean-Reversion]
↓
[Vasicek 조건부 전이행렬 (연도별)]
↓
[순차 행렬 곱 → 50년 누적/한계 PD]
↓
[확률 가중평균 PD Term Structure]
↓
[통계적 검증 (ADF, Ljung-Box, R², ARCH)]
2. 단계별 상세 이론
2.0 3사 전이행렬 전처리 파이프라인
한국 3사 PDF에서 추출된 원시 전이행렬은 그대로 사용할 수 없습니다. 아래 6단계 전처리를 거쳐 모형에 투입합니다.
원시 데이터 구조
3사(한국기업평가, NICE, 한신평)의 PDF 전이행렬은 다음 형태입니다:
6행(AAA, AA, A, BBB, BB, B이하) × 8열(AAA, AA, A, BBB, BB, B이하, D, WR)
- CCC 등급은 한국 시장에서 발행체 수가 극소하여 별도 행이 존재하지 않음
- WR(등급취소) 열이 포함되어 있어 행 합이 100%가 되지 않을 수 있음
Step 1: PDF 파싱 → 6×8 추출
data/parse_pdf_matrices.py에서 pdfplumber를 사용하여 3사 PDF에서 연도별 6×8 행렬을 추출합니다.
- 각 기관별 파서 사용 (KR: 텍스트 기반, NICE: 텍스트 기반, SCI: 테이블 기반)
- 추출된 행렬의 행합 유효성 검증 (30~110% 범위)
Step 2: WR -> D PD 플로어 보정 + 쟔여 WR 비례 재배분
WR(등급취소)을 단순 제거하면 부도율이 과소추정됩니다(등급취소 직전 부도 위험). 신규 방법론:
- PD 플로어 보정: 관측 PD < 기준 PD이면, WR에서 부족분을 D열로 이전
- 쟔여 WR 재배분: 남은 WR을 나머지 등급에 확률 비례 재배분
if PD_{observed} < PD_{floor}:
deficit = PD_{floor} - PD_{observed}
transfer = min(deficit, WR)
D += transfer
WR -= transfer
# Remaining WR -> proportional redistribution
p_{ij} = p_{ij} * (sum_non_WR + WR_remaining) / sum_non_WR
Step 3: B이하 → B 매핑
3사 원본에서 "B이하" 범주를 모형의 B등급에 매핑합니다. 결과: 6×7 (AAA, AA, A, BBB, BB, B × AAA~D)
Step 4: D행 추가 → 7×7
D(부도)는 흡수상태로 고정합니다:
D행 = [0, 0, 0, 0, 0, 0, 1]
결과: 7×7 (AAA, AA, A, BBB, BB, B, D) — 이 행렬로 Zt 추정을 수행합니다.
Step 5: PD 플로어 적용 (KAP 시장 YTM 기반)
한국 시장에서 AAA~A 등급의 관측 부도율이 0%인 경우가 대부분입니다. 이는 모집단이 작아 극소확률 이벤트가 관측되지 않은 것일 뿐, 부도 위험이 0이라는 의미가 아닙니다.
KAP 시장 YTM 기반 PD 플로어 (2025-12-31 기준):
| 등급 | 신용스프레드 (bp) | 시장내재 PD | AAA 앵커링 후 PD 플로어 | 방법 |
|---|---|---|---|---|
| AAA | 3.5 | 0.6bp | 5.0bp | 앵커 (Basel III) |
| AA | 5.3 | 0.9bp | 7.0bp | 로그 스케일링 |
| A | 17.7 | 2.9bp | 15.0bp | 로그 스케일링 |
| BBB | 129 | 21.5bp | 92.7bp | 로그 스케일링 |
| BB | - | (외삽) | 160.7bp | 로그 트렌드 외삽 |
| B | - | (외삽) | 416.4bp | 로그 트렌드 외삽 |
- 데이터 출처: KAP(한국자산평가) 공모회사채 1년 YTM
- LGD: 60% (회수율 40%, 한국 시장 기준)
- AAA 앵커: 5bp (Basel III CRE30.4)
- 스케일링:
PD_floor_i = exp(log(PD_raw_i) * scale),scale = log(5bp) / log(PD_raw_AAA) - 투기등급: BBB- 마지막 관측점에서 로그 트렌드 외삽
상세 출처: docs/pd_floor_reference.md 참조
Step 6: CCC 행/열 보간 → 8×8 완성
Zt 추정 완료 후, B등급과 D등급 사이를 보간하여 CCC 행/열을 생성합니다:
PD_CCC = interpolate(PD_B, PD_D=1.0)
- CCC의 PD는 B의 PD와 D의 PD(=100%) 사이에서 보간
- CCC의 전이확률 분포도 B행과 D행의 패턴에서 보간
- 이렇게 생성된 8×8 행렬이 최종 조건부 전이행렬 산출에 사용됩니다
왜 CCC 없이 Zt를 추정하는가?
- 통계적 신뢰도: 한국 시장에서 CCC 등급 발행체가 극소수이므로 관측 전이확률의 표본오차가 매우 큼
- 순환 논리 방지: fabricated CCC 데이터로 Zt를 추정하면, 가짜 데이터가 모형 파라미터에 영향
- 파이프라인 정합성: 관측 데이터(7×7)로 Zt 추정 → 모형 기반 보간(CCC)으로 확장하는 것이 이론-실무 분리 원칙에 부합
2.1 Through-The-Cycle (TTC) 전이행렬
왜 TTC가 필요한가?
연도별 전이행렬은 해당 연도의 경기 상황에 영향을 받아 변동합니다. TTC 전이행렬은 이러한 경기 변동을 평균화하여 "장기 균형" 상태의 전이확률을 나타냅니다. 이것이 Belkin & Suchower 모형에서 기준점(anchor) 역할을 합니다.
산출 방법:
TTC_{ij} = (1/T) × Σ_{t=1}^{T} TM_{ij}(t)
T개 연도의 단순 산술평균 후 행 합이 1이 되도록 재정규화합니다. §2.0의 전처리를 거친 7×7 행렬에 대해 TTC를 산출합니다.
논리적 근거:
- Basel II IRB 프레임워크: PD 추정은 "경기 사이클 전체를 포괄하는 장기 평균"이어야 함 (BCBS §452)
- Moody's/S&P 방법론: 장기 평균 전이행렬을 TTC 기준으로 사용
2.2 Belkin & Suchower (1998) — 신용사이클 인덱스 Zt
핵심 가정 (Merton-Vasicek 프레임워크):
차입자 i의 자산가치 변화를 표준정규 확률변수 X_i로 모델링합니다:
X_i = √ρ × Z + √(1-ρ) × Y_i
여기서:
- Z ~ N(0,1): 체계적 요인 (Systematic Factor) — 모든 차입자에 공통
- Y_i ~ N(0,1): 개별적 요인 (Idiosyncratic Factor) — 차입자 고유
- ρ: 자산상관계수 (Asset Correlation) — 체계적 요인의 설명력
- Z와 Y_i는 상호 독립
왜 이 분해가 필요한가?
- 부도율의 시간적 변동은 개별 기업의 고유 위험뿐 아니라, 경기 상황이라는 공통 요인에도 의존합니다
- 이 공통 요인 Z를 분리하면, 특정 경기 상황(Z=z)에서의 "조건부 부도율"을 계산할 수 있습니다
- 이것이 IFRS 9의 "미래 전망 정보(forward-looking)" 반영의 수학적 기초입니다
임계값(Threshold) 산출:
TTC 전이행렬의 누적확률로부터 등급 경계 임계값을 도출합니다:
d_{i,j} = Φ⁻¹( Σ_{k≤j} TTC_{i,k} )
- Φ⁻¹: 표준정규분포의 역함수
- 이 임계값은 "신용도 X_i가 특정 값 이하로 떨어지면 해당 등급으로 이동"한다는 구조적 모형의 경계입니다
Z-조건부 전이확률:
체계적 요인 Z가 주어진 상태에서의 전이확률 (Belkin convention: Z>0 = 호황):
p_{ij}(Z) = Φ( (d_{i,j} + √ρ × Z) / √(1-ρ) ) - Φ( (d_{i,j-1} + √ρ × Z) / √(1-ρ) )
부호 규약 주의: 본 프로젝트는 Belkin convention(Z>0=호황)을 사용하여 d + √ρ·Z입니다.
Basel/Vasicek convention(Z>0=불황)에서는 d - √ρ·Z이며, 두 규약은 Z의 부호만 다릅니다.
- Z > 0 (호황): 누적확률 증가 → 높은 등급 쪽으로 확률 이동 → 부도율 감소
- Z < 0 (불황): 누적확률 감소 → 낮은 등급 쪽으로 확률 이동 → 부도율 증가
- Z = 0: TTC 전이확률 복원 (무조건부 = 조건부의 기대값)
Zt 추정 (가중최소자승법, WLS):
연도 t의 관측 전이행렬 TM^obs(t)과 모형 예측 전이행렬 TM^model(Z)의 괴리를 최소화하는 Z_t를 추정합니다:
Ẑ_t = argmin_Z Σ_{i,j} w_{ij} × [ p_{ij}^obs(t) - p_{ij}^model(Z) ]²
가중치 w_{ij}:
- 부도 전이확률(D열): 10배 가중 — 부도율이 가장 중요한 리스크 지표
- 대각 원소(잔류확률): 5배 가중 — 안정성 지표로서 중요
- 기타: 1배 — 세부 전이는 상대적으로 덜 중요
추정 결과 해석:
- Zt > 0: 해당 연도는 "좋은 해" — 관측 부도율이 TTC보다 낮음
- Zt < 0: 해당 연도는 "나쁜 해" — 관측 부도율이 TTC보다 높음
- |Zt|의 크기: 경기 편차의 강도 (표준편차 단위)
2.3 자산상관계수 ρ
ρ의 의미:
ρ는 차입자들의 자산수익률이 공통 경기 요인에 의해 얼마나 동시에 움직이는지를 나타냅니다:
- ρ → 0: 분산 완전 — 개별 위험만 존재, 경기 영향 없음
- ρ → 1: 완전 상관 — 모든 차입자가 동일하게 반응
Basel IRB 기준:
- 기업 대출: ρ = 0.12 ~ 0.24 (PD에 따라 역의 관계)
- 본 모형 기본값: ρ = 0.20 (한국 기업부문 중앙값)
ρ 추정 방법:
NLS(비선형최소자승법)으로 ρ와 Zt를 동시 추정할 수 있습니다:
(ρ*, {Zt*}) = argmin_{ρ,{Zt}} Σ_t Σ_{i,j} w_{ij} × [ p_{ij}^obs(t) - p_{ij}^model(Zt, ρ) ]²
외부 루프: ρ 탐색 (bounded, 0.05~0.50)
내부 루프: 각 연도별 Zt 추정 (ρ 고정)
2.4 Vasicek 단일팩터 모델 — PIT PD
TTC PD → PIT PD 변환:
Vasicek 공식은 Belkin & Suchower의 특수한 경우로, 부도율만을 집중적으로 다룹니다:
PD_PIT(Z) = Φ( (Φ⁻¹(PD_TTC) + √ρ × Z) / √(1-ρ) ) [Belkin: Z>0=호황]
PD_PIT(Z) = Φ( (Φ⁻¹(PD_TTC) - √ρ × Z) / √(1-ρ) ) [Basel: Z>0=불황]
본 프로젝트에서는 Belkin convention(+√ρ·Z)을 주로 사용합니다. 이 공식은 다음을 의미합니다:
- PD_TTC: 장기 평균 부도율 — 경기 중립(Z=0)에서의 부도율
- Φ⁻¹(PD_TTC): 부도 임계값을 표준정규 공간으로 변환
- √ρ × Z: 경기 요인이 임계값을 이동시킴
- √(1-ρ)로 나눔: 개별 요인의 분산으로 정규화
수치 예시 (BBB 등급, PD_TTC = 0.38%, ρ = 0.20):
| 시나리오 | Z값 | PD_PIT | 배수 |
|---|---|---|---|
| 심각한 호황 | +2.0 | 0.04% | 0.1× |
| 보통 호황 | +1.0 | 0.13% | 0.3× |
| 중립 | 0.0 | 0.38% | 1.0× |
| 보통 불황 | -1.0 | 0.96% | 2.5× |
| 심각한 불황 | -2.0 | 2.19% | 5.8× |
논리적 근거:
- IMF (2021): IFRS 9/CECL 호환 스트레스 테스트에서 Vasicek 공식 사용
- ECB: 금융안정성 평가에서 단일팩터 모형 기반 PIT PD 산출
- Fed DFAST/CCAR: 스트레스 시나리오에서 PD 조정 시 유사 구조 적용
2.5 거시연계 회귀모형: Zt ~ 거시변수
왜 거시변수와 연결하는가?
Zt는 "신용사이클"이라는 추상적 개념입니다. 이를 관측 가능한 거시경제변수로 설명하면:
- 해석 가능성: Zt의 변동 원인을 이해할 수 있음
- 예측 가능성: 거시 전망치(IMF WEO, KDI 등)를 입력하면 미래 Zt를 예측할 수 있음
- 시나리오 분석: "만약 GDP가 -2%이고 실업률이 5%이면?"이라는 질문에 답할 수 있음
변수 풀 (37개 ECOS 변수):
BOK ECOS 100대 통계지표 및 주요 거시경제변수 37개를 후보 풀로 구성:
- 성장(GDP성장률), 고용(실업률, 고용률), 금리(기준금리, CD, 국고채3Y/10Y, 회사채AA/BBB)
- 물가(CPI, 수입물가, 생산자물가), 경기지수(선행/동행), 심리(CSI, BSI)
- 생산(광공업, 서비스업), 교역(수출/수입, 수출입대GNI비율)
- 환율(원/달러), 통화(M2), 부도(어음부도율/금액), 주식(KOSPI)
- 부동산(주택매매가격), 가계(가계부채)
- 투자(설비투자, 건설투자증감률, 총고정자본형성, 총저축률, 국내총투자율)
- 제조업(평균가동률)
모형 구조 (3변수 강제 지정):
37개 변수에서 3변수 조합 7,770개를 전수 탐색(exhaustive search)하여, 부호 일관성을 만족하는 최적 조합을 선택:
Z_t = β₀ + β₁·USDKRW_t + β₂·RETAIL_SALES_t + β₃·INVEST_RATE_t + ε_t
| 변수 | 구분 | 계수 부호 | 경제적 근거 |
|---|---|---|---|
| USDKRW | 환율 (원/달러) | − | 원화 약세 → 외국인 자본유출, 수입원가 상승 → 기업 부담↑ → Zt↓ |
| RETAIL_SALES | 소매판매액지수 | + | 내수 소비 활성화 → 기업 매출·수익성↑ → Zt↑ |
| INVEST_RATE | 국내총투자율 (%) | + | 투자 확대 → 경기 확장 → 부도 감소 → Zt↑ |
- R² = 0.43 (비표준화), 7/8 검증 통과
- 3변수는 각각 외부충격(환율), 내수(소비), **투자(자본형성)**을 대표
왜 3변수인가?
- 26개 연간 관측치로는 과적합(overfitting) 방지를 위해 설명변수를 최소화해야 함
- 경험칙: 관측치 수 / 변수 수 ≥ 8 (26/3 ≈ 8.7)
- 3변수는 환율·소비·투자라는 서로 다른 경기 측면을 포착
왜 OLS인가?
- 26개 연간 관측치로는 VAR, VECM 등 복잡한 시계열 모형의 자유도가 부족
- OLS는 소표본에서도 BLUE(Best Linear Unbiased Estimator) 조건 하에서 최적
- 잔차 진단으로 OLS 가정 위반 여부를 검증
2.6 통계적 검증 (엄밀한 관점)
(a) ADF (Augmented Dickey-Fuller) 검정 — Zt 정상성
H₀: Zt에 단위근이 존재 (비정상 시계열)
H₁: Zt는 정상 시계열
Zt가 비정상이면 회귀분석의 t-통계량과 R²가 거짓 결과를 낼 수 있습니다 (허위 회귀). 본 모형 결과: p = 0.0000 → 정상 시계열 확인 (Pass)
(b) Shapiro-Wilk 검정 — Zt 정규성
Belkin & Suchower (1998)는 Z ~ N(0,1)을 가정합니다. 추정된 Zt가 정규분포를 따르는지 확인합니다. 본 모형 결과: p = 0.0017 → 비정규 (Fail)
이는 IMF 위기, GFC, COVID 등 극단적 사건으로 인한 비대칭 분포 때문입니다. Belkin 원논문에서도 이 한계를 인정하고 있으며, 실무적으로는 심각한 문제가 아닙니다.
(c) Durbin-Watson / Ljung-Box — 잔차 자기상관
H₀: 잔차에 자기상관이 없음
DW ≈ 2이면 자기상관 없음
Ljung-Box: p > 0.05이면 자기상관 없음
잔차에 자기상관이 존재하면 OLS 표준오차가 과소추정되어 유의성 검정이 왜곡됩니다. 본 모형 결과: DW = 2.235, LB p = 0.2743 → 자기상관 없음 (Pass)
(d) Breusch-Pagan / ARCH-LM — 이분산
H₀: 잔차의 분산이 일정 (등분산)
이분산이 존재하면 OLS 추정량은 여전히 불편이지만, 효율적이지 않습니다. 본 모형 결과: BP p = 0.3951, ARCH p = 0.7885 → 등분산 (Pass)
(e) R² / F-test — 모형 설명력
R² = 1 - (잔차변동/총변동)
F-test H₀: 모든 회귀계수 = 0
본 모형 결과: R² = 0.889, F p = 0.0000 → 거시변수가 Zt 변동의 89%를 설명 (Pass)
2.7 시나리오 설계 (ECB/Fed 방식)
IFRS 9 요구사항 (B5.5.42-44):
ECL 산출 시 복수의 시나리오를 확률 가중하여 반영해야 합니다. "편향 없는(unbiased)" 추정을 위해 호황과 불황 양방향을 모두 고려해야 합니다.
| 시나리오 | Zt 설정 | 가중치 | 학술적 근거 |
|---|---|---|---|
| 호황 | μ + 1.0σ | 20% | ECB: 상위 시나리오에 15-25% |
| 중립 | μ + 0σ | 50% | IMF WEO 기본 전망 |
| 불황 | μ - 1.5σ | 30% | Fed DFAST: 역사적 하위 5% |
가중치 비대칭의 이유:
불황 시나리오에 더 높은 가중치(30% > 20%)를 부여하는 것은:
- 신용 손실 함수의 비선형성 — 불황의 영향이 호황의 이익보다 큼
- ECB/Fed의 감독 관행 — "보수적 추정" 원칙
- 역사적으로 불황의 빈도가 호황보다 약간 높음
2.8 50년 수렴 메커니즘
왜 수렴이 필요한가?
거시경제 예측은 현실적으로 3-5년이 한계입니다 (IMF WEO는 5년 전망). 50년 예측에서는:
- 1~5년 (PIT 구간): 거시 시나리오 기반 Zt 적용 — 가장 신뢰도 높은 구간
- 6~10년 (전환 구간): Mean-reversion으로 점진적 수렴 — 불확실성 증가에 대응
- 11~50년 (TTC 구간): Z = 0 (장기 평균) — 경기 사이클이 반복된다는 가정
Mean-Reversion 공식:
Z_t^adj = Z_t^scenario × exp(-λ × (t - T_pit)) (t > T_pit)
- λ = 0.3: Mean-reversion 속도 — 5년 후 Z가 약 22%로 감소
- T_pit = 5: PIT 적용 종료 시점
학술적 근거:
- Ornstein-Uhlenbeck 과정: 금리/스프레드 모형에서 널리 사용
- Basel III FRTB: 장기 리스크 파라미터의 평균회귀 가정
- IFRS 9 IG: 예측 불가능한 장기 구간에서는 역사적 평균 사용 권장
2.9 Lifetime PD 산출 엔진
핵심 수학:
연도별 조건부 전이행렬을 순차적으로 곱하여 누적 전이확률을 구합니다:
TM_cum(t) = TM(Z₁) × TM(Z₂) × ... × TM(Z_t)
- 누적 PD(t) = TM_cum(t) 의 D열 (마지막 열)
- 한계 PD(t) = Cumulative PD(t) - Cumulative PD(t-1)
- 생존확률(t) = 1 - Cumulative PD(t)
왜 행렬 곱인가? (단순 PD 합산이 아닌 이유)
단순히 연간 PD를 합산하면 "이미 부도한 기업이 다시 부도하는" 이중 계산이 발생합니다. 전이행렬 곱은:
- 부도(D)를 흡수상태로 처리하여 이중 계산을 방지
- 등급 이동(업그레이드/다운그레이드)을 경유한 부도 경로를 모두 포착
- BBB → BB → B → D 같은 다단계 부도 경로를 정확히 반영
확률 가중평균:
PD_weighted(t) = Σ_s w_s × PD_s(t)
= 0.20 × PD_upside(t) + 0.50 × PD_base(t) + 0.30 × PD_downside(t)
3. 참고문헌
| 번호 | 문헌 | 활용 |
|---|---|---|
| 1 | Belkin, B., Suchower, S., & Forest, L.R. (1998). "A One-Parameter Representation of Credit Risk and Transition Matrices" | 핵심 방법론: Zt 추정 |
| 2 | Vasicek, O. (2002). "The Distribution of Loan Portfolio Value" | 조건부 PD 공식 |
| 3 | Merton, R.C. (1974). "On the Pricing of Corporate Debt" | 구조적 모형 기초 |
| 4 | Basel Committee (2005). BCBS 128 "An Explanatory Note on the Basel II IRB Risk Weight Functions" | ρ 파라미터, WCPD |
| 5 | IFRS 9 Financial Instruments (IASB, 2014) B5.5.42-44 | 복수 시나리오 요구사항 |
| 6 | IMF (2021). "IFRS 9 and CECL Compatible Estimation for Top-Down Solvency Stress Testing" | 거시연계 PD 방법론 |
| 7 | ECB (2019). "Macro-financial scenarios for IFRS 9 ECL estimation" | 시나리오 가중치 |
| 8 | Federal Reserve (2023). "Dodd-Frank Act Stress Test Methodology" | 불황 시나리오 설계 |
| 9 | Greene, W.H. (2018). "Econometric Analysis" 8th ed. | OLS 진단, 변수 선택 |
| 10 | Basel Committee (2017). CRE30.4 "Minimum requirements — PD input floors" | PD 플로어 5bp |
| 11 | S&P Global (2024). "2023 Annual Global Corporate Default And Rating Transition Study" | 등급별 장기 평균 부도율 |
| 12 | Moody's (2024). "Annual Default Study — Corporate Default and Recovery Rates" | 등급별 장기 평균 부도율 |
| 13 | EBA/CRR3 (2025). "Capital Requirements Regulation III — IRB Input Floors" | EU PD floor 5bp 법제화 |
4. 코드 구조 ↔ 이론 매핑
| 모듈 | 이론 단계 | 핵심 함수 |
|---|---|---|
data/parse_pdf_matrices.py |
§2.0 PDF 파싱·전처리 | parse_kr(), parse_nice(), postprocess_matrix() |
data/transition_matrices.py |
§2.0-2.1 TTC 산출 | load_transition_matrices(), compute_ttc_matrix() |
data/macro_data.py |
§2.5 거시데이터 | load_macro_data() |
data/ecos_fetcher.py |
§2.5 ECOS API | EcosFetcher.fetch_all() |
models/credit_cycle.py |
§2.2 Zt 추정 | estimate_zt_series() |
models/vasicek.py |
§2.4 조건부 PD/TM | conditional_pd(), conditional_transition_matrix() |
models/macro_model.py |
§2.5 거시연계 | MacroZtModel.fit() |
scenarios/scenario_engine.py |
§2.7-2.8 시나리오 | generate_z_paths() |
projection/lifetime_pd.py |
§2.9 PD 산출 | compute_all_scenarios() |
validation/statistical_tests.py |
§2.6 검증 | run_full_validation() |
5. 부호 규약 참고
| 규약 | Z>0 의미 | 수식 | 사용 위치 |
|---|---|---|---|
| Belkin convention | 호황 (PD↓) | d + √ρ·Z |
credit_cycle.py, vasicek.conditional_transition_matrix() |
| Basel/Vasicek convention | 불황 (PD↑) | d - √ρ·Z |
vasicek.conditional_pd(), vasicek.worst_case_pd() |
두 규약이 코드에 공존하며, 각 함수의 docstring에 사용 규약이 명시되어 있습니다.