feat(phase9): add real corporate bond pipeline and fix rate mapping

This commit is contained in:
variet-worker
2026-04-03 22:46:56 +09:00
parent f777a0d2a9
commit b691324685
47 changed files with 6587 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# ISDA Phase 4 기후 시나리오 벤치마크 (Plausibility) 검증 리포트 및 고객 가이드
본 문서는 `Market_Risk_Engine` 파이프라인에서 생성된 한국 자본시장(주식/채권/금리)의 쇼크 텐서 결과물에 대한 정합성 평가 모델 및 재검증 가이드를 설명합니다.
## 1. 테스트 목적 및 요건
사용자(고객)가 직접 스크립트(`src/benchmark_test.py`)를 가동하거나 타 검증 시스템에서 데이터를 호출할 때, "어떤 데이터를 기준으로 어떻게 계산이 구현되었는가"를 완벽히 파악하여 결과물의 타당성(Plausibility)을 직관적으로 평가하기 위해 작성되었습니다.
## 2. 검증된 데이터 파라미터 상세 항목
### 가. 수익률 곡선 이동 (IR Parallel Shift) 검증
- **추적 테이블**: `shocks_ir` (또는 `data/exports/shocks_ir.csv`)
- **계산식 검증 방법**: `shift_bps` 열이 모든 만기(Tenor) 포인트에 대해 동일한 증감폭(단일 상수)을 지니고 있는지 검증합니다.
- **실제 산출 예시**: 'Sudden Wake-up Call(SWUC)' 시나리오의 경우, 한국의 단기 정책 금리 상승폭 분분인 **+45 bps** 가 1개월물부터 10년물 국채에 일정한 폭으로 가산(+45bps shift)되었음이 성공적으로 확증되었습니다.
### 나. 주가 지수 충격 (Equity Leverage) 검증
- **추적 테이블**: `shocks_equity` (또는 `data/exports/shocks_equity.csv`)
- **계산식 검증 방법**: $\Delta V$ (기업 총 자산 충격 = GDP충격 * KSIC 민감도 - CO2충격 * KSIC 민감도) 에 `Leverage Factor` (배수, 부채 비율 기인성) 를 곱한 값이 `equity_shock_pct` 로 수렴하는지 확인합니다.
- **실현된 인덱스 쇼크 테스트**:
- KOSPI 200 Index의 경우 Base 대비 **-2.8%**대 하락이 포착되었으나, 탄소 다배출 고위험 팩터로 묶인 삼성전자(`005930.KS`) 등 단일 공장 기업 팩터는 **-17.1%**에 가까운 압도적 쇼크(Heavy Shock)로 유의미하게 벌어짐을 확증했습니다. ISDA 의도(브라운 섹터 처벌)가 정확하게 동작합니다.
### 다. 부도율 대비 크레딧 점프 (Merton Spreands Expansion) 검증
- **추적 테이블**: `shocks_credit` (또는 `data/exports/shocks_credit.csv`)
- **계산식 검증 방법**: 기초 등급 (Rating) 에 해당하는 베이스 마진에 대해 익스포넨셜 마진 $e^{(-\Delta V \times 0.5)}$가 적용되어 `jump_bps` 열이 양수(확장)로 뛰었는지 확인합니다.
- **테스트 결과**: 단기 충격 구간 내에서 2.62 bps ~ 2.90 bps 수준의 미세한 회사채 금리 확장이 기록되었습니다 (스프레드 증가 통과).
## 3. 사용자(고객) 교차 테스트 방식
고객님께서 직접 테스트할 때는 다음의 명령어를 VSCode 터미널이나 파워셸에서 입력해 주십시오.
```powershell
# 1. 데이터 Export 확인 (CSV로 산출물 추출)
C:\ProgramData\miniforge3\envs\climate\python.exe src\data_exporter.py
# 2. ISDA 벤치마크 플로저빌리티 통과 검증 (Assertion 방식)
C:\ProgramData\miniforge3\envs\climate\python.exe src\benchmark_test.py
```
만약 타 `Repricing` 모듈에서 위 변수들을 호출하여 파생상품 가치를 다시 계산하고자 한다면, 폴더 내에 생성된 `data/exports/shocks_*.csv` 파일을 로드하여 `year='2026'``scenario='Sudden Wake-up Call'` 등의 필터링을 걸면 곧바로 프라이싱 인풋으로 이용할 수 있습니다.