****************************************************************; ****** DECISION TREE SCORING CODE ******; ****************************************************************; ****** LENGTHS OF NEW CHARACTER VARIABLES ******; LENGTH I_BAD $ 12; LENGTH F_BAD $ 12; LENGTH _WARN_ $ 4; ****** LABELS FOR NEW VARIABLES ******; LABEL _NODE_ = 'Node' ; LABEL _LEAF_ = 'Leaf' ; LABEL P_BAD1 = 'Predicted: BAD=1' ; LABEL P_BAD0 = 'Predicted: BAD=0' ; LABEL I_BAD = 'Into: BAD' ; LABEL U_BAD = 'Unnormalized Into: BAD' ; LABEL F_BAD = 'From: BAD' ; LABEL R_BAD1 = 'Residual: BAD=1' ; LABEL R_BAD0 = 'Residual: BAD=0' ; LABEL _WARN_ = 'Warnings' ; ****** TEMPORARY VARIABLES FOR FORMATTED VALUES ******; LENGTH _ARBFMT_2 $ 12; DROP _ARBFMT_2; _ARBFMT_2 = ' '; /* Initialize to avoid warning. */ _ARBFMT_2 = PUT( BAD , BEST12.); %DMNORMCP( _ARBFMT_2, F_BAD ); ****** ASSIGN OBSERVATION TO NODE ******; IF NOT MISSING(DEBTINC ) AND DEBTINC < 44.7336573513381 THEN DO; IF NOT MISSING(VALUE ) AND VALUE < 303749 THEN DO; IF NOT MISSING(DELINQ ) AND 4.5 <= DELINQ THEN DO; _NODE_ = 9; _LEAF_ = 4; P_BAD1 = 0.9090909090909; P_BAD0 = 0.09090909090909; I_BAD = '1' ; U_BAD = 1; END; ELSE DO; IF NOT MISSING(DELINQ ) AND 0.5 <= DELINQ THEN DO; IF NOT MISSING(DEBTINC ) AND DEBTINC < 9.5345039737618 THEN DO; _NODE_ = 22; _LEAF_ = 2; P_BAD1 = 1; P_BAD0 = 0; I_BAD = '1' ; U_BAD = 1; END; ELSE DO; _NODE_ = 23; _LEAF_ = 3; P_BAD1 = 0.14159292035398; P_BAD0 = 0.85840707964601; I_BAD = '0' ; U_BAD = 0; END; END; ELSE DO; _NODE_ = 14; _LEAF_ = 1; P_BAD1 = 0.04316546762589; P_BAD0 = 0.9568345323741; I_BAD = '0' ; U_BAD = 0; END; END; END; ELSE DO; _NODE_ = 5; _LEAF_ = 5; P_BAD1 = 0.85; P_BAD0 = 0.15; I_BAD = '1' ; U_BAD = 1; END; END; ELSE DO; IF NOT MISSING(DELINQ ) AND 2.5 <= DELINQ THEN DO; _NODE_ = 7; _LEAF_ = 10; P_BAD1 = 0.96808510638297; P_BAD0 = 0.03191489361702; I_BAD = '1' ; U_BAD = 1; END; ELSE DO; IF NOT MISSING(CLAGE ) AND 154.733333333333 <= CLAGE THEN DO; IF NOT MISSING(DEROG ) AND 0.5 <= DEROG THEN DO; _NODE_ = 19; _LEAF_ = 9; P_BAD1 = 0.7560975609756; P_BAD0 = 0.24390243902439; I_BAD = '1' ; U_BAD = 1; END; ELSE DO; IF NOT MISSING(VALUE ) AND 58675 <= VALUE THEN DO; _NODE_ = 25; _LEAF_ = 8; P_BAD1 = 0.26388888888888; P_BAD0 = 0.73611111111111; I_BAD = '0' ; U_BAD = 0; END; ELSE DO; _NODE_ = 24; _LEAF_ = 7; P_BAD1 = 0.62222222222222; P_BAD0 = 0.37777777777777; I_BAD = '1' ; U_BAD = 1; END; END; END; ELSE DO; _NODE_ = 10; _LEAF_ = 6; P_BAD1 = 0.71343283582089; P_BAD0 = 0.2865671641791; I_BAD = '1' ; U_BAD = 1; END; END; END; ***** RESIDUALS R_ *************; IF F_BAD NE '1' AND F_BAD NE '0' THEN DO; R_BAD1 = .; R_BAD0 = .; END; ELSE DO; R_BAD1 = -P_BAD1 ; R_BAD0 = -P_BAD0 ; SELECT( F_BAD ); WHEN( '1' ) R_BAD1 = R_BAD1 +1; WHEN( '0' ) R_BAD0 = R_BAD0 +1; END; END; ****************************************************************; ****** END OF DECISION TREE SCORING CODE ******; ****************************************************************;