Mục lục
Tổng quan
Đánh giá sự ổn định được chia thành hai loại: Đánh giá trên toàn dữ liệu và đánh giá theo từng biến.
Đánh giá sự ổn định trên toàn bộ dữ liệu
Ý nghĩa sự ổn định của toàn dữ liệu:
- Đánh giá sự ổn định của mô hình nhằm mục đích đảm bảo tương lai sẽ giống với quá khứ.
- Đánh giá độ ổn định nhằm đảm bảo các chỉ số cut-off vẫn giữa nguyên ý nghĩa với mẫu development.
- Đánh giá sự ổn định của từng biến để lựa chọn biến.
Để đánh giá sự ổn định ta cần dữ liệu train và out of time. Sau khi xây dựng xong mô hình, ta sẽ tiến hành chấm điểm cho hai dữ liệu này. Sau khi có điểm, ta chia điểm chấm này thành 20 khoảng vào tính số lượng và phần trăm quan sát trong mỗi khoảng. Hình sau đây minh họa sự so sánh phân phối giữa dữ liệu train và out of time:
Trong đó \(\%Dev,\%Rec\) là phần trăm quan sát trong mỗi khoảng của mẫu train (DEV-development) và out of time (REC- recent).
Để có một đánh giá định lượng, ta sử dụng chỉ số PSI (population stability index)
\[PSI=\sum_{i=1}^n\left(\%Dev_i-\%Rec_i\right)\times \ln\left(\frac{\%Dev_i}{\%Rec_i}\right)\]
Trong đó:
- \(\%Rec_i\): Tỉ lệ quan sát ở khoảng thứ i so với toàn mẫu ở mẫu kiểm định (out of time).
- \(\%Dev_i\): Tỉ lệ quan sát ở khoảng thứ i so với toàn mẫu ở mẫu phát triển (train).
Thang đánh giá cho chỉ số PSI được cho dưới đây:
- \(PSI \le 10\): Mô hình là ổn định.
- \(10 \le PSI \le 20\): Mô hình tương đối ổn định.
- \(20 < PSI\): Mô hình không ổn định.
Đánh giá sự ổn định của từng biến
Ý nghĩa sự ổn định của từng biến:
- Tìm ra nguyên nhân mất ổn định của mô hình.
- Đánh giá sự biến động của mỗi biến qua thời gian.
- Tìm ra các sai sót trong hệ thống.
Để đánh giá sự ổn định cho từng biến, ta thực hiện tương tự đánh giá sự ổn định cho toàn mẫu. Hình sau đây minh hoạ so sánh phân phối giữa mẫu development và recent:
Chỉ số sử dụng là CSI (characteristic stability index).
\[CSI=\sum_{i=1}^n\left(\%Dev_i-\%Rec_i\right)\times \ln\left(\frac{\%Dev_i}{\%Rec_i}\right)\]
Trong đó:
- \(\%Rec_i\): Tỉ lệ quan sát ở nhóm thứ i so với toàn mẫu ở mẫu kiểm định (out of time).
- \(\%Dev_i\): Tỉ lệ quan sát ở nhóm thứ i so với toàn mẫu ở mẫu phát triển (train).
Ngoài ra, ta có thế đánh giá sự ổn định của biến qua một thời gian dài bằng cách quan sát đồ thị phân phối biến. Ví dụ như sau:
Từ đồ thị ta có thể thấy được:
- Xu hướng dịch chuyển giữa các nhóm biến.
- Phát hiện các sai sót trong dữ liệu.
Sử dụng Macro
Syntax
Cú pháp chạy macro để output ra báo cáo ổn định của mô hình như sau:
%moni_stab(ds_in, ds_param, devday, varlist, weight=0.8)
Trong đó:
ds_in
(data): Dữ liệu để kiểm định cần chứa tất cả các thông tin như sau:- Dữ liệu bao gồm thông tin train và outtime. Phân biệt bởi biến yearmonth có định dạng YYYYMM (ví dụ 202202 nghĩa là tháng 2 năm 2022).
- Dữ liệu phải chứa các biến trong
varlist
dưới dạng WOE_ và GRP_. Ví dụvarlist
=X1 X2 thì dữ liệu phải chứa WOE_X1 WOE_X2 GRP_X1 GRP_X2. - SCORE là output từ mô hình.
ds_param
(data): Dữ liệu chứa hệ số ước lượng của các biến. Là output từ proc logistic. Cần chứa đầy đủ các biến trongvarlist
với hệ số tương ứng. Ví dụ như sau:
NAME | TYPE | Intercept | WOE_X1 | WOE_X2 | WOE_X3 | WOE_X4 | WOE_X5 | … |
---|---|---|---|---|---|---|---|---|
Estimate | PARMS | -0.1103 | 0.4355 | 0.4571 | 0.553 | 0.6418 | 0.5503 | … |
varlist
(list): Các biến này sẽ được đưa vào báo cáo tính ổn định.devday
(YYYYMM): thể hiện cách phân tách dữ liệu train và outtime. Macro hiểu rằng nếu yearmonth <=devday
thì dữ liệu và Development, còn lại là out of time.weight
(float=0.8) là trọng số để tính điểm đánh giá cuối cùng dựa trên điểm đánh giá của từng yearmonth.
Output
Example
Chạy báo cáo monitoring với dữ liệu all_data bao gồm cả train và out of time.
%moni_stab(all_data, data.model_reg_param, 201903,
varlist=c_z1_m11_z1_min_c12
c_z1_m10_z3_min_c12
x2
c_x10_x3
z2_max_c9
z1_m9
z3_max_c12
z2_min_c12
z1_max_c12
z1_m8
z1_m7
z1_m12
x4
z1_m6
x5
x3
z1_m5
x6);