Proc Hpbin

Binning biến sử dụng Proc HPbin

Mục lục

Phân tích đơn biến là công việc tìm hiểu các đặc tính của biến và sự liên quan giữa biến đó với biến mục tiêu (target).

Tìm hiểu đặc tính của biến

Tìm hiểu sự liên quan với biến target

Để tìm hiểu sự liên quan với biến target, ta thường sử dụng phương pháp binning. Phương pháp binning có thể tóm tắt như sau:

  • Chia biến thành các khoảng (thương là 20).
  • Tính toán các chỉ số liên quan đến biến target. Ví dụ Bad rate, WOE, … Để thực hiện việc này, ta có thể sử dụng Proc Rank hoặc Proc Hpbin. Chú ý rằng Proc rank có trên phiên bản SAS Base còn Proc Hpbin chỉ có trên gói High performance. Do đó tôi sẽ giới thiệu cả hai procedure để tiện cho bạn đọc.

Proc Rank

Proc Rank được dùng để chia biến thành các khoảng theo quantile. Cú pháp của Proc Rank như sau:

PROC RANK DATA=[DATA INPUT] GROUPS=[NUM BIN] TIES=[LOW/HIGH] OUT=[DATA OUTPUT];
  VAR [VARIABLE];
  RANKS [RANKED VARIABLE];
RUN;

Trong đó:

  • DATA= là dữ liệu đầu vào.
  • GROUPS= số lượng các nhóm sẽ chia.
  • TIES= (high/low) các giá trị giống nhau sẽ được xếp vào hạng trên hay hạng dưới. Xem ví dụ 2 phía dưới. Mặc định có thể dùng TIES=LOW.
  • OUT= dữ liệu đầu ra (kết quả).
  • VAR các biến được sẽ được chia.
  • RANKS biến lưu thông tin chia. Giá trị 1 tương ứng với quantile đầu tiên, …

Ví dụ 1. Sử dụng Proc Rank như sau:

DATA TEMP00 (DROP= I);
	DO I=1 TO 9;
		X=CEIL(I/3);
		OUTPUT;
	END;
RUN;


PROC RANK DATA=TEMP00 GROUPS=2 TIES=LOW OUT=_TEMP_;
	VAR X;
	RANKS RANKED_X;
RUN;

Kết quả nhận được như sau:

X RANKED_X
1 0
1 0
1 0
2 0
2 0
2 0
3 1
3 1
3 1

Ví dụ 2. Về tùy chọn TIES. Nếu TIES=HIGH

PROC RANK DATA=EC GROUPS=2 TIES=HIGH OUT=_TEMP_;
	VAR X;
	RANKS RANKED_X;
RUN;

Kết quả như sau:

X RANKED_X
1 0
1 0
1 0
2 1
2 1
2 1
3 1
3 1
3 1

Ví dụ 3. Sử dụng proc rank với nhiều biến:

PROC RANK DATA=DATA.RAW(KEEP=GOOD BAD MORTDUE DEBTINC) GROUPS=20 TIES=LOW OUT=_TEMP_;
	VAR MORTDUE DEBTINC;
	RANKS RANKED_MORTDUE RANKED_DEBTINC;
RUN;

Kết quả như sau:

MORTDUE DEBTINC BAD GOOD RANKED_MORTDUE RANKED_DEBTINC
78600 . 1 0 12 .
103949 30.05 0 1 16 5
104373 29.92 0 1 16 5
7750 36.21 1 0 0 11
61962 49.21 1 0 9 19
104570 32.06 0 1 16 7

Kết quả nhận được là các cột RANKED_MORTDUERANKED_DEBTINC tương ứng với hạng của MORTDUEDEBTINC. Nếu giá trị của biến ban đầu là missing thì giá trị của biến xếp hạng cũng là missing. Để summary dữ liệu, ta có thể dùng proc sql như sau:


PROC SQL NOPRINT;
	CREATE TABLE TEMP01 AS 
		SELECT RANKED_MORTDUE AS GROUP, 
			MAX(MORTDUE) AS LB, MIN(MORTDUE) AS UB, 
			COUNT(*) AS TOTAL, SUM(GOOD) AS GOOD, SUM(BAD) AS BAD
		FROM _TEMP_
			GROUP BY RANKED_MORTDUE
				ORDER BY RANKED_MORTDUE;
QUIT;

Proc HPbin


Overview
Data Step
Data Aggregation
Data Visualization
Proc SQL
Variable Analysis
Macro
Model Regression
Variable Selection
Model Assessment