docs: session close — devlog, known-issues, verification xlsx

- known-issues: Zt sign convention bug, ECOS coverage
- devlog: 2026-03-11 (5 items)
- results: pipeline_verification.xlsx, transition_matrix_audit.xlsx
This commit is contained in:
Variet Agent
2026-03-11 08:06:11 +09:00
parent 0e1e0e5cf2
commit 0762fcc5d8
5 changed files with 50 additions and 0 deletions

View File

@@ -57,3 +57,15 @@
- **원인**: pandas 2.x에서 `fillna(method=)` 인자 deprecated - **원인**: pandas 2.x에서 `fillna(method=)` 인자 deprecated
- **해결**: `df.ffill().bfill()` 메서드 체인으로 대체 - **해결**: `df.ffill().bfill()` 메서드 체인으로 대체
- **주의**: pandas 2.x 이상 사용 시 `fillna(method=)` 전면 금지 - **주의**: pandas 2.x 이상 사용 시 `fillna(method=)` 전면 금지
### [2026-03-11] Belkin Zt 부호 규칙 — 전체 파이프라인 부호 반전 버그
- **증상**: Zt 1998=+2.12 (IMF 위기인데 양수), 2006=-1.53 (호황인데 음수)
- **원인**: Belkin 논문 원본: Z>0=호황(PD↓). 코드에서 임계값이 오름차순(AAA→D)인데 수식에 `(d - √ρ·Z)`로 구현하여 부호 반전. 올바른 수식은 `(d + √ρ·Z)`
- **해결**: `credit_cycle.py`, `vasicek.py`, `transition_matrices.py` 3파일 모두 `(d - sqrt_rho * z)``(d + sqrt_rho * z)` 수정
- **주의**: vasicek.py의 `conditional_pd()`는 Basel convention (Z↑=불황)으로 별도 체계. 조건부 전이행렬은 Belkin convention (Z↑=호황). 두 규약이 코드에 공존하므로 반드시 docstring 확인 후 사용
### [2026-03-11] ECOS 거시변수 — fallback 커버리지 부족
- **증상**: 기존 11개 변수만으로는 Zt 설명력 부족 (R² < 0.6)
- **원인**: 한국 경제 특수성(유가의존, 수출주도, 부동산 영향 등) 미반영
- **해결**: 31개 변수로 확장 (KOSPI, OIL_PRICE, USDKRW, DISHONOR_RATE, HOUSING_PRICE, BSI_MANUF 등). `data/ecos_fetcher.py` + `data/cache/macro_ecos.csv` 캐싱 구조
- **주의**: fallback 데이터는 대략적 수치. 정밀 분석 시 ECOS API 실제 호출 필요 (`--force` 옵션)

View File

@@ -0,0 +1,9 @@
# Devlog — 2026-03-11
| # | 시간 | 작업 | 커밋 | 상태 |
|---|------|------|------|------|
| 1 | 07:19 | Zt 부호 규칙 확인 (Belkin Z>0=호황) | `1a4cc87` | ✅ |
| 2 | 07:26 | 전체 파이프라인 부호 수정 (credit_cycle + vasicek + TM) | `d61c538` | ✅ |
| 3 | 07:42 | ECOS 변수 21→31개 확장 + CSV 캐싱 | `92ce84a`, `49c7661` | ✅ |
| 4 | 07:52 | 31변수 거시경제 재분석 v3 (R²=0.646) | `cc55acc` | ✅ |
| 5 | 08:00 | 파이프라인 전단계 검증 엑셀 생성 (10시트) | `0e1e0e5` | ✅ |

View File

@@ -0,0 +1,29 @@
# Zt 부호 수정 + 31변수 확장 재분석
- **시간**: 2026-03-11 07:19~08:03
- **Commits**: `d61c538`, `92ce84a`, `49c7661`, `cc55acc`, `0e1e0e5`
## 결정 사항
### Zt 부호 규약 (Belkin vs Basel)
Belkin & Suchower (1998) 원논문 확인 결과:
- **Z > 0 = 호황** (PD 하락, 상향 전이 증가)
- **Z < 0 = 불황** (PD 상승, 하향 전이/부도 증가)
코드가 `(d - √ρ·Z)``(d + √ρ·Z)`로 수정됨 (3파일).
단, `vasicek.py``conditional_pd()`는 Basel convention (Z↑=불황)으로 별도 체계.
이 두 규약이 코드에 공존하며, 각 함수 docstring에 명시.
### 거시변수 선정 (31→80+)
- 기존 11개 → 31개 원본 확장
- 금리: DIFF만, 지수: LEVEL+DIFF+LAG1, 금액: DIFF+PCT
- CREDIT_SPREAD_LAG1이 모든 Top 10 조합에 등장 → 핵심 앵커 변수
- 최적: CREDIT_SPREAD_LAG1 + USDKRW + HOUSING_PRICE (R²=0.646)
## 미완료
- [ ] ECOS API 실제 호출 구현 (현재 fallback만 사용)
- [ ] R²≥0.7 달성을 위한 추가 변수 탐색 (비선형 변환 등)
- [ ] 최적 모형을 main.py 파이프라인에 반영

Binary file not shown.

Binary file not shown.