🎯 Mục tiêu bài học
- Phân tích default rate theo các segment khác nhau (credit score, income, product)
- Hiểu approval rate và các yếu tố ảnh hưởng đến quyết định cho vay
- Tính và diễn giải WOE (Weight of Evidence) và IV (Information Value)
- Xây dựng credit risk report cơ bản bằng SQL
| Thông tin | Chi tiết |
|---|---|
| ⏱️ Thời lượng | 2 giờ |
| 📖 Chủ đề chính | Default Rate, Credit Score Analysis, WOE/IV, Risk Segmentation |
| 💡 Kiến thức cần có | Bài 03 — Banking KPIs, SQL cơ bản |
| 🎯 Output | Credit Risk Analysis Report |
📖 Thuật ngữ quan trọng
| Thuật ngữ | Tiếng Việt | Mô tả |
|---|---|---|
| Default | Vỡ nợ | Khách hàng không trả được nợ (thường DPD > 90 ngày) |
| Default Rate | Tỷ lệ vỡ nợ | % khoản vay bị vỡ nợ trên tổng số khoản vay |
| PD (Probability of Default) | Xác suất vỡ nợ | Xác suất KH vỡ nợ trong 12 tháng |
| LGD (Loss Given Default) | Tổn thất khi vỡ nợ | % tổn thất trên số tiền vay khi KH vỡ nợ |
| EAD (Exposure at Default) | Dư nợ khi vỡ nợ | Số tiền ngân hàng đang cho KH vay khi vỡ nợ |
| Expected Loss | Tổn thất dự kiến | EL = PD × LGD × EAD |
| WOE | Weight of Evidence | Đo sức mạnh phân biệt good/bad của biến |
| IV | Information Value | Đo tổng sức mạnh dự đoán của biến |
| Scorecard | Thẻ điểm tín dụng | Mô hình chấm điểm dựa trên nhiều biến |
| Cut-off Score | Điểm cắt | Ngưỡng credit score để approve/reject |
Checkpoint
Expected Loss = PD × LGD × EAD — công thức cốt lõi của credit risk. PD dự đoán bằng credit score. WOE đo sức phân biệt good/bad của từng biến. IV đánh giá biến nào tốt nhất để đưa vào mô hình: IV > 0.3 = Strong, 0.1-0.3 = Medium, < 0.02 = Useless.
📊 Phân tích Default Rate — SQL
Default Rate tổng thể
1-- 1. Default Rate tổng thể2SELECT 3 COUNT(*) AS total_loans,4 SUM(default_flag) AS total_defaults,5 ROUND(AVG(default_flag) * 100, 2) AS default_rate_pct6FROM fact_loan_application7WHERE status = 'Approved';Default Rate theo Credit Score Band
1-- 2. Default Rate theo credit score band2SELECT 3 CASE 4 WHEN credit_score >= 750 THEN '750+ (Excellent)'5 WHEN credit_score >= 700 THEN '700-749 (Good)'6 WHEN credit_score >= 650 THEN '650-699 (Fair)'7 WHEN credit_score >= 600 THEN '600-649 (Below Avg)'8 WHEN credit_score >= 550 THEN '550-599 (Poor)'9 ELSE '<550 (Very Poor)'10 END AS score_band,11 COUNT(*) AS total_loans,12 SUM(default_flag) AS defaults,13 ROUND(AVG(default_flag) * 100, 2) AS default_rate_pct,14 ROUND(AVG(loan_amount), 0) AS avg_loan_amount15FROM fact_loan_application16WHERE status = 'Approved'17GROUP BY 18 CASE 19 WHEN credit_score >= 750 THEN '750+ (Excellent)'20 WHEN credit_score >= 700 THEN '700-749 (Good)'21 WHEN credit_score >= 650 THEN '650-699 (Fair)'22 WHEN credit_score >= 600 THEN '600-649 (Below Avg)'23 WHEN credit_score >= 550 THEN '550-599 (Poor)'24 ELSE '<550 (Very Poor)'25 END26ORDER BY default_rate_pct;Default Rate theo DTI Ratio
1-- 3. Default Rate theo DTI bands2SELECT 3 CASE 4 WHEN dti_ratio < 20 THEN '<20% (Low)'5 WHEN dti_ratio < 35 THEN '20-35% (Moderate)'6 WHEN dti_ratio < 43 THEN '35-43% (High)'7 WHEN dti_ratio < 50 THEN '43-50% (Very High)'8 ELSE '>50% (Extreme)'9 END AS dti_band,10 COUNT(*) AS total_loans,11 SUM(default_flag) AS defaults,12 ROUND(AVG(default_flag) * 100, 2) AS default_rate_pct,13 ROUND(AVG(credit_score), 0) AS avg_credit_score14FROM fact_loan_application15WHERE status = 'Approved'16GROUP BY 17 CASE 18 WHEN dti_ratio < 20 THEN '<20% (Low)'19 WHEN dti_ratio < 35 THEN '20-35% (Moderate)'20 WHEN dti_ratio < 43 THEN '35-43% (High)'21 WHEN dti_ratio < 50 THEN '43-50% (Very High)'22 ELSE '>50% (Extreme)'23 END24ORDER BY default_rate_pct;Bạn sẽ thấy mối quan hệ nghịch đảo rõ rệt giữa credit score và default rate, và mối quan hệ thuận giữa DTI ratio và default rate. Đây là nền tảng của mọi mô hình credit scoring.
🔍 Phân tích theo Product & Customer Profile
Default Rate theo sản phẩm
1-- 4. Default Rate theo product type2SELECT 3 p.product_type,4 p.product_name,5 COUNT(*) AS total_loans,6 SUM(l.default_flag) AS defaults,7 ROUND(AVG(l.default_flag) * 100, 2) AS default_rate_pct,8 ROUND(AVG(l.loan_amount), 0) AS avg_loan_amount,9 ROUND(AVG(l.interest_rate), 2) AS avg_interest_rate10FROM fact_loan_application l11JOIN dim_product p ON l.product_id = p.product_id12WHERE l.status = 'Approved'13GROUP BY p.product_type, p.product_name14ORDER BY default_rate_pct DESC;Default Rate theo Customer Profile
1-- 5. Default Rate theo thu nhập và loại hình công việc2SELECT 3 c.employment_type,4 CASE 5 WHEN c.monthly_income < 10000000 THEN '<10M'6 WHEN c.monthly_income < 20000000 THEN '10-20M'7 WHEN c.monthly_income < 35000000 THEN '20-35M'8 WHEN c.monthly_income < 50000000 THEN '35-50M'9 ELSE '>50M'10 END AS income_band,11 COUNT(*) AS total_loans,12 SUM(l.default_flag) AS defaults,13 ROUND(AVG(l.default_flag) * 100, 2) AS default_rate_pct14FROM fact_loan_application l15JOIN dim_customer c ON l.customer_id = c.customer_id16WHERE l.status = 'Approved'17GROUP BY c.employment_type, 18 CASE 19 WHEN c.monthly_income < 10000000 THEN '<10M'20 WHEN c.monthly_income < 20000000 THEN '10-20M'21 WHEN c.monthly_income < 35000000 THEN '20-35M'22 WHEN c.monthly_income < 50000000 THEN '35-50M'23 ELSE '>50M'24 END25ORDER BY default_rate_pct DESC;Approval Rate Analysis
1-- 6. Approval Rate theo credit score2SELECT 3 CASE 4 WHEN credit_score >= 700 THEN '700+ (Good-Excellent)'5 WHEN credit_score >= 600 THEN '600-699 (Fair-Below)'6 ELSE '<600 (Poor)'7 END AS score_group,8 COUNT(*) AS total_applications,9 SUM(CASE WHEN status = 'Approved' THEN 1 ELSE 0 END) AS approved,10 SUM(CASE WHEN status = 'Rejected' THEN 1 ELSE 0 END) AS rejected,11 ROUND(AVG(CASE WHEN status = 'Approved' THEN 1.0 ELSE 0 END) * 100, 1) AS approval_rate_pct12FROM fact_loan_application13GROUP BY 14 CASE 15 WHEN credit_score >= 700 THEN '700+ (Good-Excellent)'16 WHEN credit_score >= 600 THEN '600-699 (Fair-Below)'17 ELSE '<600 (Poor)'18 END19ORDER BY approval_rate_pct DESC;⚖️ WOE & IV — Sức mạnh dự đoán của biến
WOE (Weight of Evidence)
Trong đó:
- = % khách hàng không default trong bin
- = % khách hàng default trong bin
IV (Information Value)
Bảng đánh giá IV
| IV Range | Sức mạnh dự đoán | Quyết định |
|---|---|---|
| < 0.02 | Useless | Loại bỏ |
| 0.02 - 0.1 | Weak | Cần kết hợp |
| 0.1 - 0.3 | Medium | Sử dụng được |
| 0.3 - 0.5 | Strong | Biến tốt |
| > 0.5 | Suspicious | Kiểm tra overfitting |
Tính WOE/IV bằng SQL
1-- 7. WOE/IV cho Credit Score bands2WITH score_bands AS (3 SELECT 4 CASE 5 WHEN credit_score >= 750 THEN '1_750+'6 WHEN credit_score >= 700 THEN '2_700-749'7 WHEN credit_score >= 650 THEN '3_650-699'8 WHEN credit_score >= 600 THEN '4_600-649'9 WHEN credit_score >= 550 THEN '5_550-599'10 ELSE '6_<550'11 END AS score_band,12 default_flag13 FROM fact_loan_application14 WHERE status = 'Approved'15),16totals AS (17 SELECT 18 SUM(CASE WHEN default_flag = 0 THEN 1 ELSE 0 END) AS total_good,19 SUM(CASE WHEN default_flag = 1 THEN 1 ELSE 0 END) AS total_bad20 FROM score_bands21),22woe_calc AS (23 SELECT 24 s.score_band,25 COUNT(*) AS total,26 SUM(CASE WHEN default_flag = 0 THEN 1 ELSE 0 END) AS good,27 SUM(CASE WHEN default_flag = 1 THEN 1 ELSE 0 END) AS bad,28 ROUND(SUM(CASE WHEN default_flag = 0 THEN 1.0 ELSE 0 END) / t.total_good, 4) AS dist_good,29 ROUND(SUM(CASE WHEN default_flag = 1 THEN 1.0 ELSE 0 END) / t.total_bad, 4) AS dist_bad30 FROM score_bands s31 CROSS JOIN totals t32 GROUP BY s.score_band, t.total_good, t.total_bad33)34SELECT 35 score_band,36 total,37 good,38 bad,39 dist_good,40 dist_bad,41 ROUND(LOG(dist_good / NULLIF(dist_bad, 0)), 4) AS woe,42 ROUND((dist_good - dist_bad) * LOG(dist_good / NULLIF(dist_bad, 0)), 4) AS iv_component43FROM woe_calc44ORDER BY score_band;WOE/IV là công cụ chuẩn trong ngành ngân hàng để:
- Feature selection: Chọn biến có IV > 0.1 cho mô hình
- Binning: Gộp các bin có WOE tương tự
- Scorecard: Convert WOE thành điểm trên thẻ chấm điểm
- Monitoring: Theo dõi Population Stability Index (PSI) qua thời gian
Checkpoint
Default Rate phân tích theo nhiều chiều: Credit Score (nghịch đảo), DTI (thuận), Product Type (unsecured > secured), Income (nghịch đảo). WOE cho biết sức phân biệt good/bad của từng bin. IV tổng hợp sức dự đoán: > 0.3 là biến strong. Trong banking, credit_score và dti_ratio thường có IV cao nhất.
📋 Tổng kết
Kiến thức đã học
| Chủ đề | Nội dung chính |
|---|---|
| Default Rate Analysis | Phân tích tỷ lệ vỡ nợ theo nhiều chiều |
| Credit Score Bands | Excellent/Good/Fair/Poor/Very Poor |
| DTI Analysis | Tỷ lệ nợ/thu nhập và ngưỡng rủi ro |
| Product Risk | So sánh rủi ro giữa các loại sản phẩm |
| WOE/IV | Weight of Evidence, Information Value |
| Feature Selection | Chọn biến dự đoán cho credit scoring model |
Key Takeaways
- ✅ Default Rate là metric trung tâm — phân tích đa chiều để tìm root cause
- ✅ WOE dương = rủi ro thấp hơn trung bình, WOE âm = rủi ro cao hơn
- ✅ IV > 0.3 là biến có predictive power mạnh cho credit scoring
- ✅ Unsecured loans luôn có default rate cao hơn secured loans
Câu hỏi tự kiểm tra
- Credit Score band nào có default rate cao nhất trong dataset?
- WOE dương cho một bin nghĩa là gì?
- IV > 0.3 cho biết điều gì về biến phân tích?
- Tại sao unsecured loans có rủi ro cao hơn secured loans?
Bài tiếp theo: Loan Portfolio Analysis →
🎉 Tuyệt vời! Bạn đã thành thạo Credit Risk Analysis!
Nhớ: Default Rate + WOE/IV = bộ công cụ cốt lõi cho credit risk. Mọi ngân hàng đều cần DA biết phân tích rủi ro tín dụng!
