Mục lục
Tổng quan
Số lượng biến ban đầu của mô hình có thể từ hàng trăm đến hàng nghìn biến. Việc phân tích binning từng biến tốn rất nhiều thời gian. Do đó cần có các công cụ để:
- Tính toán các chỉ số thống kê của biến để từ đó đưa ra kết luận về chất lượng dữ liệu.
- Tính toán sơ bộ các chỉ số về tính dự báo của biến để có thể loại các biến có tính dự báo yếu, tránh trường hợp phải đưa nhiều biến vào phân tích.
- Tính toán sự tương quan và phân cụm các biến để có thể chọn ra biến tốt nhất trong từng cụm.
Chi tiết các phần như sau:
Tính toán các chỉ số thống kê
Đối với biến numeric, macro tính các chỉ số như sau:
- Count, Missing: Số lượng các giá trị không mising và số lượng các giá trị missing của biến.
- Mean, Std: Giá trị trung bình và standard deviation của biến (tính trên các giá trị không missing).
- Min, Pct 25, Pct 50, Pct 75, Max: Giá trị của biến ứng với quantile 0, 25, 50, 75, 100.
Đối với các biến Categorical, macro tính các chỉ số sau:
- Nbin: Số lượng các nhóm chia, có thể hiểu là số lượng các giá trị khác nhau của biến.
- Count, Missing: Số lượng các giá trị không mising và số lượng các giá trị missing của biến.
- Mode, Freq Model: Giá trị có số lượng lớn nhất của biến và số lượng các giá trị đó.
Các chỉ số về tính dự báo
Phương pháp tính toán các chỉ số dự báo của các biến như sau:
- Đối với các biến dạng số (numeric), chương trình chia các biến thành các nhóm (mặc định là 20) theo quantile binning. Sau đó, chương trình tính số lượng good và bad trong mỗi nhóm.
- Đối với biến dạng chữ (character), chương trình tính số lượng good và bad theo từng giá trị phân biệt của biến.
Sau bươc trên, chương trình tính toán các chỉ số dự báo như sau:
- Min BadRate, Max BadRate: Giá trị Bad rate nhỏ nhất, lớn nhất trong tất cả các nhóm của biến.
- IV: Information Value, xem tại variable analysis
- Gini đơn biến được tính bằng cách coi bad rate của từng nhóm là giá trị dự báo. Chương trình tính Gin dựa trên hai biến là bad rate và bad.
Sử dụng Macro
Cú pháp
Cú pháp của Macro Var_Review
như sau:
%Var_Review(ds_train, ds_outtime, exclude_varlist, weight, numbin=20, cross_find=0, libname=work);
Trong đó:
ds_train
(dataset) là dữ liệu dùng để review các biến. Dữ liệu bắt buộc phải có hai biến good và bad là target của mô hình.-
outtime
(dataset) là dữ liệu out of time. Tham số này có thể không bắt buộc. Dữ liệuds_outtime
phải có các biến tương tự như dữ liệuds_train
ngoại trừ sự khác biệt như sau:- Có thể không có hai biến good, bad.
- Bắt buộc phải có biến yearmonth chỉ time id của dữ liệu.
exclude_varlist
(danh sách biên) là các biến sẽ được bỏ ra khỏi phân tích. Trong dữ liệu thì các biến loại ra không phân tích sẽ ít hơn nhiều so với các biến sẽ đưa vào phân tích. Do đó chúng tôi sử dụng tham số này.weight
trọng số của mỗi quan sát. Tham số này thường được sử dụng cho các mô hình được xây dựng theo phương pháp weighting.cross_find
có tìm các bộ biến cross tại bước này hay không (1 là có và 0 và không).libname
(text) (giá trị mặc định là work) thư viện lưu các kết quả dữ liệu output của macro.numbin
(int) chỉ số lượng các nhóm sẽ chia theo quantile binning.
Detail
Macro sẽ xử lý theo hai loại biến là interval và categorical.
Với biến interval, công cụ sẽ chia biến thành các khoảng (số lượng khoảng bằng numbin
) bằng công cụ PROC HPBIN đồng thời tính toán các chỉ số như sau:
- Các chỉ số thống kê: min, max, mean, median, std, non-missing, missing, số lượng các nhóm (là số thực tế so với
numbin
là số kỳ vọng). - Số lượng good, bad, WoE, Bad rate trong các khoảng.
- Các chỉ số dự báo IV, Gini.
- Các chỉ số khác: max_badrate, min_badrate là tỷ lệ bad lớn nhất/ nhỏ nhất trong tất cả các nhóm tương tứng với mỗi biến.
Với biến categorical, macro chia biến thành các nhóm theo các giá trị khác nhau của biến. Các chỉ số sau đây được tính toán:
- Các chí số thống kê: non-missing, missing, số lượng các nhóm, mode.
- Các chỉ số dự báo: IV, Gini, max_badrate, min_badrate.
Nếu có tham số outtime
thì macro sẽ sử dụng cách chia biến interval trong dữ liệu train
để áp dụng vào dữ liệu outtime
. Các biến categorical được xử lý tương tự như dữ liệu train
. Macro sẽ tính toán chỉ số PSI cho các biến.
Output
Kết quả của macro là các dữ liệu như sau:
Các bảng liên quan đến các chỉ số thống kê * dự báo
- MAPPING là dữ liệu ghi lại cách binning các biến. Có thể sử dụng bảng này cùng với PROC HPBIN để binning các biến.
Variable | BinnedVariable | LB | UB | Range | Bin | Frequency | Proportion |
---|---|---|---|---|---|---|---|
X1 | BIN_X1 | . | -0.997 | X1 < -0.997 | 1 | 8761 | 0.050 |
X1 | BIN_X1 | -0.997 | -0.992 | -0.997 <= X1 < -0.992 | 2 | 8761 | 0.050 |
X1 | BIN_X1 | -0.992 | -0.983 | -0.992 <= X1 < -0.983 | 3 | 8761 | 0.050 |
X1 | BIN_X1 | -0.983 | -0.971 | -0.983 <= X1 < -0.971 | 4 | 8761 | 0.050 |
X1 | BIN_X1 | -0.971 | -0.956 | -0.971 <= X1 < -0.956 | 5 | 8761 | 0.050 |
… | … | … | … | … | … | … | … |
-
VAR_REVEW_ITV_PREBIN, VAR_REVEW_CHR_PREBIN thông tin binning của các biến interval (itv) và categorical (character - chr). Các cột quan trọng như sau:
- NonEventCount, NonEventCount: số lượng bad và số lượng good trong nhóm.
- NonEventRate, EventRate: tỉ lệ bad và good trong nhóm.
- WOE, IV: được tính toán như trình này ở Variable Analysis.
… | Range | Bin | NonEventCount | NonEventRate | EventCount | EventRate | WOE | IV |
---|---|---|---|---|---|---|---|---|
… | X1 < -0.997 | 1 | 6336 | 0.723 | 2425 | 0.276 | 0.955 | 0.042 |
… | -0.997 <= X1 < -0.992 | 2 | 5442 | 0.621 | 3319 | 0.378 | 0.489 | 0.011 |
… | -0.992 <= X1 < -0.983 | 3 | 5495 | 0.627 | 3266 | 0.372 | 0.515 | 0.012 |
… | -0.983 <= X1 < -0.971 | 4 | 5590 | 0.638 | 3171 | 0.361 | 0.561 | 0.015 |
… | … | … | … | … | … | … | … | … |
-
VAR_REVEW_ITV_SUMMARY, VAR_REVEW_CHR_SUMMARY chứa các thông tin chỉ số thống kê và chỉ số dự báo của biến. Dữ liệu bao gồm các cột:
- Variable: tên của biến.
- Num_bin: Số lượng các nhóm sau khi binning của biến.
- Max_badrate, Min_badrate: bad rate lớn nhất/ nhỏ nhất trong tất cả các nhóm của biến.
- N, Nmiss, Mean, Median, Std, Min, Max: số lượng giá trị không missing, số lượng giá trị missing, giá trị trung bình, trung vị, độ lệch chuẩn, giá trị nhỏ nhất, giá trị lớn nhất của biến.
Các bảng liên quan đến độ ổn định (các bảng này chỉ xuất hiện nếu có dữ liệu outtime
):
- VAR_REVEW_PSI chứa chỉ số PSI của từng biến trong từng tháng ở dữ liệu
outtime
.
Variable | Yearmonth | PSI |
---|---|---|
BIN_X1 | 201904 | 0.34 |
BIN_X1 | 201905 | 0.34 |
BIN_X1 | 201906 | 0.34 |
BIN_X1 | 201907 | 0.34 |
BIN_X1 | 201908 | 0.34 |
… | … | … |
-
VAR_REVIEW_PCT_YM chứa tỉ lệ phần trăm của từng nhóm trong từng biến trong từng tháng ở dữ liệu
outtime
. Các cột như sau:- Variable, Group: tên của biến và nhóm tương tứng.
- Yearmonth: giá trị tại yearmonth.
- Dev_colpercent, Rec_colpercent: tỉ lệ phần trăm của nhóm trong dữ liệu
train
(development - dev) vàouttime
(recent - rec). - PSI: được tính theo công thức \(PSI=\left(\%Dev-\%Rec\right)\ln\left(\frac{\%Dev}{\%Rec}\right)\). Chi tiết xem tại Monitoring Stability.
Variable | Group | Yearmonth | Dev_colpercent | Rec_colpercent | PSI |
---|---|---|---|---|---|
BIN_X1 | 1 | 201905 | 5.00 | 5.02 | 0.00 |
BIN_X1 | 1 | 201907 | 5.00 | 5.02 | 0.00 |
BIN_X1 | 1 | 201911 | 5.00 | 5.02 | 0.00 |
BIN_X1 | 1 | 201904 | 5.00 | 5.02 | 0.00 |
BIN_X1 | 1 | 201908 | 5.00 | 5.02 | 0.00 |
… | … | … | … | … | … |
Example
Ví dụ như sau:
%Var_review(Ds_train=data.train,
outime=data.outtime,
numbin=20,
exclude_varlist=Y Good Bad Yearmonth ID Obs_date);