feat(data): implement market-implied PD floor and 7x7 transition matrix parsing #task-290

This commit is contained in:
Variet Agent
2026-03-11 15:53:38 +09:00
parent 0762fcc5d8
commit b8514c1251
235 changed files with 1729 additions and 1102 deletions

View File

@@ -1,14 +1,13 @@
"""
Vasicek 단일팩터 모델 기반 조건부 PD 및 전이행렬 모듈
핵심 공식 (Basel/Vasicek convention: Z↑ = loss↑ = 불황):
PD_PIT(Z) = Φ( (Φ⁻¹(PD_TTC) - √ρ · Z) / √(1-ρ) )
본 모듈의 부호 규약:
- conditional_pd(): Belkin convention (Z>0 = 호황, PD↓)
- conditional_transition_matrix(): Belkin convention (d + √ρ·Z)
- worst_case_pd(): Basel convention (Z>0 = 불황, PD↑)
주의: Belkin & Suchower에서는 Z↑ = 호황 (반대 부호).
조건부 전이행렬은 Belkin convention 사용 (d + √ρ·Z).
이 모듈은 Belkin & Suchower의 임계값 방식 대신,
Vasicek 공식을 직접 적용하는 간편 버전도 제공합니다.
Belkin convention: PD_PIT(Z) = Φ( (Φ⁻¹(PD_TTC) - √ρ · Z) / √(1-ρ) )
→ Z>0이면 numerator 감소 → PD 감소 = 호황
참고문헌:
- Vasicek, O. (2002). "The Distribution of Loan Portfolio Value"
@@ -26,12 +25,11 @@ logger = logging.getLogger(__name__)
def conditional_pd(pd_ttc: float, z: float, rho: float) -> float:
"""
Vasicek 공식으로 PIT PD 계산
Vasicek 공식으로 PIT PD 계산 (Belkin convention)
PD_PIT(Z) = Φ( (Φ⁻¹(PD_TTC) - √ρ · Z) / √(1-ρ) )
주의: 이 함수의 Z는 Basel/Vasicek convention (Z = 불황).
Belkin Z(양수=호황)를 사용하려면 -Z를 넣어야 합니다.
이 함수는 Belkin convention의 Z를 직접 받습니다 (Z>0 = 호황 = PD 감소).
Parameters
----------