핀테크/금융 데이터 분석¶
산업 특성¶
금융은 리스크를 사고파는 산업이다. 데이터 분석의 핵심은 리스크를 정확히 측정하고 가격을 매기는 것.
주요 특성: - 규제가 분석 방법론까지 제약 (설명 가능성 필수) - 비대칭적 손실 구조 (이익은 제한적, 손실은 무한대 가능) - 장기 데이터가 필수 (경기 사이클 반영) - 사기 vs 정상의 극심한 불균형 데이터 - 실시간 의사결정과 배치 분석이 공존
데이터 환경:
+------------------+ +------------------+ +------------------+
| 고객 데이터 | | 거래 데이터 | | 외부 데이터 |
+------------------+ +------------------+ +------------------+
| - 신용정보 | | - 입출금 | | - 신용평가사 |
| - 소득/자산 | | - 대출 상환 | | - 공공데이터 |
| - 거래 이력 | | - 카드 사용 | | - 시장 데이터 |
| - 행동 패턴 | | - 투자 | | - 경제 지표 |
+------------------+ +------------------+ +------------------+
핵심 문제¶
1. 리스크 분석 프레임워크¶
신용 리스크의 구조:
예상 손실(EL) = PD x LGD x EAD
PD (Probability of Default): 부도 확률
LGD (Loss Given Default): 부도시 손실률
EAD (Exposure at Default): 부도시 익스포저
리스크 분류:
| 리스크 유형 | 정의 | 주요 지표 |
|---|---|---|
| 신용 리스크 | 상환 불이행 | PD, 연체율, 부도율 |
| 시장 리스크 | 시장 가격 변동 | VaR, 베타, 변동성 |
| 운영 리스크 | 내부 프로세스 실패 | 손실 빈도, 손실 규모 |
| 유동성 리스크 | 자금 조달 어려움 | LCR, NSFR |
신용 스코어 모델 구조:
Input Variables:
+------------------+------------------+------------------+
| 재무 정보 | 행동 정보 | 대안 정보 |
+------------------+------------------+------------------+
| - 소득 | - 연체 이력 | - 통신비 납부 |
| - 부채 | - 거래 패턴 | - 공과금 납부 |
| - 자산 | - 한도 사용률 | - 소셜 데이터 |
+------------------+------------------+------------------+
| | |
v v v
+----------------------------------------------------------+
| 스코어카드 / ML 모델 |
+----------------------------------------------------------+
|
v
+----------------------------------------------------------+
| 신용 점수 (300 ~ 900) |
| 등급 (1~10등급) |
+----------------------------------------------------------+
로지스틱 회귀 스코어카드 예시:
점수 = 기본점수 + 각 변수별 점수
변수별 점수 계산:
WOE (Weight of Evidence) = ln(Good%/Bad%)
IV (Information Value) = (Good% - Bad%) x WOE
Score = (WOE x 계수 + 상수) x Factor + Offset
2. 사기 탐지 로직¶
사기 탐지의 어려움:
전체 거래: 100,000건
정상 거래: 99,900건 (99.9%)
사기 거래: 100건 (0.1%)
단순 정확도의 함정:
- "모두 정상"으로 예측해도 99.9% 정확도
- 하지만 사기는 하나도 못 잡음
평가 지표:
| 지표 | 계산 | 의미 |
|---|---|---|
| Precision | TP/(TP+FP) | 사기라고 한 것 중 실제 사기 |
| Recall | TP/(TP+FN) | 실제 사기 중 잡아낸 비율 |
| F1 Score | 2xPxR/(P+R) | Precision과 Recall의 조화평균 |
| AUC-PR | - | 불균형 데이터에 적합 |
규칙 기반 vs ML 기반:
규칙 기반 (Rule-based):
+------------------------------------------------------------------+
| IF 금액 > 500만원 AND 새벽시간 AND 해외 → 의심 거래 |
| IF 동일IP에서 10분내 5건 이상 → 의심 거래 |
| IF 평소 거래 패턴과 3 표준편차 이상 차이 → 의심 거래 |
+------------------------------------------------------------------+
장점: 설명 가능, 즉시 적용
단점: 패턴 변화에 취약, 복잡한 사기 탐지 어려움
ML 기반:
+------------------------------------------------------------------+
| Isolation Forest: 이상치 탐지 |
| Autoencoder: 정상 패턴 학습 후 복원 오차로 이상 탐지 |
| GNN: 거래 네트워크에서 이상 노드 탐지 |
+------------------------------------------------------------------+
장점: 복잡한 패턴 포착, 새로운 유형 탐지
단점: 설명 어려움, 규제 이슈
실시간 사기 탐지 파이프라인:
거래 발생
|
v
+------------------+
| 1차: 규칙 필터 | ← 즉시 차단 (명백한 사기)
+------------------+
|
v
+------------------+
| 2차: ML 스코어 | ← 위험 점수 산출
+------------------+
|
v
+------------------+
| 3차: 임계치 판단 | ← 승인/보류/거절
+------------------+
|
+-- 승인 → 거래 완료
|
+-- 보류 → 추가 인증 요청
|
+-- 거절 → 거래 차단
3. 규제 준수 관점¶
주요 규제 요구사항:
| 규제 | 요구사항 | 데이터 분석 영향 |
|---|---|---|
| 바젤 III | 자본 적정성 | 리스크 가중 자산 계산 |
| IFRS 9 | 대손충당금 | 기대신용손실(ECL) 모델 |
| 개인정보보호법 | 데이터 활용 제한 | 비식별화, 동의 관리 |
| 신용정보법 | AI 설명의무 | 모델 해석 가능성 |
모델 설명 가능성:
블랙박스 모델의 문제:
고객: "왜 대출이 거절됐나요?"
답변: "AI가 그렇게 판단했습니다" → 규제 위반
설명 가능한 모델:
고객: "왜 대출이 거절됐나요?"
답변: "부채비율(40%)이 기준(35%)을 초과하고,
최근 3개월 연체 이력이 있어 등급이 하락했습니다"
→ 규제 준수
SHAP/LIME을 활용한 설명:
# 개별 예측에 대한 기여도 분석
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
# 거절 사유 생성
# "소득 대비 부채 비율이 기준보다 15% 높음 (기여도: -0.3)"
# "신용카드 한도 사용률 90% 이상 (기여도: -0.2)"
4. 고객 신용도 분석¶
신용 등급 이동 분석 (Transition Matrix):
t+1 시점 등급
1등급 2등급 3등급 연체
t시점 +---------------------------+
1등급 | 0.90 0.08 0.01 0.01 |
2등급 | 0.05 0.85 0.08 0.02 |
3등급 | 0.01 0.04 0.85 0.10 |
연체 | 0.00 0.01 0.04 0.95 |
+---------------------------+
해석: 1등급 고객의 90%는 1년 후에도 1등급 유지
3등급 고객의 10%는 1년 내 연체로 이동
조기 경보 지표 (Early Warning Signs):
-- 연체 가능성 높은 고객 탐지
SELECT
customer_id,
-- 행동 변화 지표
CASE WHEN avg_balance_3m < avg_balance_12m * 0.5
THEN 1 ELSE 0 END as balance_decline,
CASE WHEN payment_delay_count_3m > payment_delay_count_prev_3m * 2
THEN 1 ELSE 0 END as payment_delay_increase,
CASE WHEN credit_util_rate > 0.9
THEN 1 ELSE 0 END as high_utilization,
-- 리스크 점수
(balance_decline + payment_delay_increase + high_utilization) as risk_score
FROM customer_behavior
WHERE risk_score >= 2;
분석 접근¶
금융 분석의 특수성¶
1. 샘플 선택 편향:
문제: 대출 승인된 고객만 결과를 관찰 가능
거절된 고객의 실제 부도 여부는 알 수 없음
해결:
- Reject Inference: 거절 고객의 결과 추정
- Inverse Probability Weighting: 선택 확률로 가중치 조정
2. 시간에 따른 성능 저하:
모델 개발 시점 | 1년 후 | 2년 후
+-----------------------+---------------+---------------+
| KS: 0.40 | KS: 0.35 | KS: 0.28 |
| 환경 = 학습 데이터 | 환경 변화 | 큰 환경 변화 |
+-----------------------+---------------+---------------+
원인:
- 경기 사이클 변화
- 고객 행동 패턴 변화
- 경쟁사 전략 변화
- 데이터 분포 변화 (Data Drift)
대응:
- 정기 모니터링 (월별 PSI, KS 추적)
- 트리거 기반 재학습
- Champion-Challenger 테스트
3. 경기 사이클 반영:
호황기 불황기
/ \ / \
/ \ / \
+--------+ +--------+ +--------+ +--------+
| 낮은 | | 낮은 | | 높은 | | 높은 |
| 연체율 | | 부도율 | | 연체율 | | 부도율 |
+--------+ +--------+ +--------+ +--------+
Through-The-Cycle (TTC): 경기 사이클 평균화
Point-In-Time (PIT): 현재 시점 반영
용도:
- TTC: 장기 전략, 자본 계획
- PIT: 단기 충당금, 즉시 대응
비즈니스 액션¶
분석-의사결정 연결¶
| 분석 결과 | 의사결정 | 리스크 고려 |
|---|---|---|
| 특정 세그먼트 연체율 상승 | 심사 기준 강화 | 매출 감소 vs 손실 방지 |
| 사기 패턴 신규 발견 | 규칙 추가 | 오탐률 증가 가능성 |
| 모델 성능 저하 | 재학습 또는 교체 | 안정성 vs 정확성 |
| 경기 침체 신호 | 충당금 적립 확대 | 이익 감소 vs 건전성 |
리스크-수익 트레이드오프¶
높음 | *
| * * 위험 선호
기대 | * * (고위험 고수익)
수익률 | * *
| * *
|*---------*----------
| *
| * 위험 회피
낮음 | * (저위험 저수익)
+------------------------
낮음 높음
리스크
최적점: 리스크 대비 수익이 가장 높은 지점
실무: 규제 자본 한도 내에서 최적화
실무 사례¶
사례 1: 대안 신용평가 모델 개발¶
상황: 금융 이력이 부족한 Thin-filer (사회초년생, 주부) 대상 대출
기존 문제: - 전통 신용평가: 데이터 부족으로 평가 불가 - 결과: 일괄 거절 또는 고금리 적용
분석 접근:
대안 데이터 활용:
+------------------+------------------+------------------+
| 통신비 납부 | 공과금 납부 | 계좌 거래 패턴 |
+------------------+------------------+------------------+
| - 납부 일자 | - 전기/가스 | - 급여 입금 |
| - 연체 여부 | - 관리비 | - 정기 출금 |
| - 사용량 패턴 | - 구독 서비스 | - 잔액 변동 |
+------------------+------------------+------------------+
결과: - 기존 평가 불가 고객 30% 평가 가능 - 대안 모델 KS: 0.32 (전통 모델 수준의 80%) - 해당 세그먼트 연체율: 예측 2.5%, 실제 2.8%
사례 2: 실시간 사기 탐지 고도화¶
상황: 카드 부정 사용 증가, 기존 규칙 기반 시스템 한계
문제 분석:
기존 시스템 성능:
- Precision: 15% (의심 거래 중 실제 사기)
- Recall: 60% (전체 사기 중 탐지)
- 고객 불편: 정상 거래 85%가 오탐으로 차단
원인:
- 고정 규칙으로 새로운 사기 패턴 대응 불가
- 고객별 맥락 고려 부족
해결:
2단계 시스템 구축:
1차) 규칙 기반: 명백한 사기 즉시 차단
2차) ML 모델: 개인화된 이상 탐지
ML 모델:
- 고객별 정상 거래 패턴 학습
- 현재 거래와의 편차 점수화
- 시간대, 장소, 금액, 가맹점 유형 종합 고려
결과: - Precision: 45% (3배 향상) - Recall: 85% (42% 향상) - 고객 불편 감소: 오탐률 55% 감소 - 사기 손실: 연간 30억 절감
핵심 지표 정리¶
| 영역 | 지표 | 계산/설명 | 관리 기준 |
|---|---|---|---|
| 신용 | 연체율 | 30일+ 연체 잔액/총 잔액 | 업권별 상이 |
| 신용 | 부도율(PD) | 부도 건수/총 건수 | 등급별 관리 |
| 신용 | KS 통계량 | Good/Bad 분리도 | 0.30 이상 |
| 사기 | 탐지율(Recall) | 탐지 사기/전체 사기 | 80% 이상 |
| 사기 | 오탐률(FPR) | 오탐/정상 거래 | 1% 이하 |
| 모델 | PSI | 점수 분포 안정성 | 0.25 미만 |
| 규제 | 자본적정성비율 | 자기자본/위험가중자산 | 8% 이상 |
다음: 부동산