Chiến lược tín dụng và tổn thất kỳ vọng tối thiểu

Mô hình hóa Rủi ro Tín dụng bằng Python

Michael Crabtree

Data Scientist, Ford Motor Company

Chọn tỷ lệ chấp nhận

  • Tỷ lệ chấp nhận ban đầu là 85%, nhưng có thể chọn mức khác
  • Hai cách thử các mức khác:
    • Tự tính ngưỡng, bad rate và lỗ
    • Tự động tạo bảng các giá trị này và chọn tỷ lệ chấp nhận
  • Bảng tập hợp mọi giá trị khả dĩ gọi là bảng chiến lược
Mô hình hóa Rủi ro Tín dụng bằng Python

Thiết lập bảng chiến lược

  • Thiết lập mảng hoặc danh sách để lưu từng giá trị
# Đặt các tỷ lệ chấp nhận cần thử
accept_rates = [1.0, 0.95, 0.9, 0.85, 0.8, 0.75, 0.7, 0.65, 0.6, 0.55,
                0.5, 0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1, 0.05]
# Tạo danh sách lưu ngưỡng và bad rate 
thresholds = []
bad_rates = []
Mô hình hóa Rủi ro Tín dụng bằng Python

Tính các giá trị trong bảng

  • Tính ngưỡng và bad rate cho mọi tỷ lệ chấp nhận
for rate in accept_rates:
    # Tính ngưỡng
    threshold = np.quantile(preds_df['prob_default'], rate).round(3)
    # Lưu ngưỡng vào danh sách
    thresholds.append(np.quantile(preds_gbt['prob_default'], rate).round(3))
    # Áp dụng ngưỡng để gán lại loan_status
    test_pred_df['pred_loan_status'] = \ 
        test_pred_df['prob_default'].apply(lambda x: 1 if x > thresh else 0)
    # Tạo tập khoản vay được chấp nhận (dự đoán không vỡ nợ)
    accepted_loans = test_pred_df[test_pred_df['pred_loan_status'] == 0]
    # Tính và lưu bad rate
    bad_rates.append(np.sum((accepted_loans['true_loan_status']) 
             / accepted_loans['true_loan_status'].count()).round(3))
Mô hình hóa Rủi ro Tín dụng bằng Python

Diễn giải bảng chiến lược

strat_df = pd.DataFrame(zip(accept_rates, thresholds, bad_rates),
                        columns = ['Acceptance Rate','Threshold','Bad Rate'])

Ví dụ bảng chiến lược và biểu đồ bad rate

Mô hình hóa Rủi ro Tín dụng bằng Python

Thêm khoản vay được chấp nhận

  • Số khoản vay được chấp nhận cho mỗi tỷ lệ chấp nhận
    • Có thể dùng len() hoặc .count()

Bảng chiến lược với khoản vay được chấp nhận

Mô hình hóa Rủi ro Tín dụng bằng Python

Thêm khoản vay trung bình

  • loan_amnt trung bình từ dữ liệu test

Bảng chiến lược với khoản vay trung bình

Mô hình hóa Rủi ro Tín dụng bằng Python

Ước tính giá trị danh mục

  • Giá trị trung bình của khoản vay được chấp nhận không vỡ nợ trừ đi trung bình của khoản vay được chấp nhận bị vỡ nợ
  • Giả định mỗi khoản vỡ nợ mất toàn bộ loan_amnt

Bảng chiến lược với giá trị ước tính

Mô hình hóa Rủi ro Tín dụng bằng Python

Tổng lỗ kỳ vọng

  • Mức lỗ kỳ vọng do các khoản vỡ nợ trong danh mục

Công thức tổng lỗ kỳ vọng

# Xác suất vỡ nợ (PD)
test_pred_df['prob_default']
# Dư nợ tại thời điểm vỡ nợ = số tiền vay (EAD)
test_pred_df['loan_amnt']
# Tỷ lệ tổn thất khi vỡ nợ = 1.0 nếu mất toàn bộ (LGD)
test_pred_df['loss_given_default']
Mô hình hóa Rủi ro Tín dụng bằng Python

Ayo berlatih!

Mô hình hóa Rủi ro Tín dụng bằng Python

Preparing Video For Download...