/*START_NOCLEAN_*/ *--------------------------------------------------------------*; * ENSEMBLE T3QE1MDM : score code; *--------------------------------------------------------------*; *; * BAGGING: counter= 1; *; * Temporary variables; DROP B_T3QE1MDM_P_DEBTINC; B_T3QE1MDM_P_DEBTINC= 0.0; *-------------------------------------------------------------*; * CODE_CLEAN * *; * Code substitution: GOTO RGDR1->G2254 *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262456.9:T2E3BS6E *; *-------------------------------------------------------------*; * ; * TOOL : Input Data Source ; * TYPE : SAMPLING ; * NODE : SAMPSIO.HMEQ [T2E3BS6E] ; * ; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * END_CHUNK 1491262456.9:T2E3BS6E *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262543.7:T0CMD3UU *; *-------------------------------------------------------------*; * END_CHUNK 1491262543.7:T0CMD3UU *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262544.3:T1NS54IK *; /*Index: 1*/ /*Boostrap-Boosting*/ *-------------------------------------------------------------*; * ; * TOOL : Group Processing ; * TYPE : UTILITY ; * NODE : Group Processing [Bagging] [T1NS54IK] ; * ; *-------------------------------------------------------------*; DO; *-------------------------------------------------------------*; * END_CHUNK 1491262544.3:T1NS54IK *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262545.1:T2T74I1C *; *-------------------------------------------------------------*; * ; * TOOL : Variable Selection ; * TYPE : EXPLORE ; * NODE : Variable Selection [T2T74I1C] ; * ; *-------------------------------------------------------------*; length _warn_ $ 4; label _warn_ = "Warnings"; length _norm1 $ %DMNORLEN; _norm1 = ' '; length _FORMAT $200; drop _FORMAT; _FORMAT = put(DEROG, BEST12.); %DMNORMCP(_FORMAT, _norm1); select(_norm1); when('.') G_DEROG = 0; when('0') G_DEROG = 1; when('1') G_DEROG = 2; when('2') G_DEROG = 2; when('3') G_DEROG = 3; when('4') G_DEROG = 4; when('5') G_DEROG = 5; when('6') G_DEROG = 5; when('7') G_DEROG = 5; when('8') G_DEROG = 6; when('9') G_DEROG = 7; when('10') G_DEROG = 8; otherwise _warn_ = 'U'; end; label G_DEROG = "Group: DEROG"; _PVAL = 25.1637672593949; if NINQ = . then _PVAL = _PVAL + (1.11932650073206 * 0.99375852484533); else _PVAL = _PVAL + (NINQ * 0.99375852484533); if CLNO = . then _PVAL = _PVAL + (21.1442474800139 * 0.11358263765709); else _PVAL = _PVAL + (CLNO * 0.11358263765709); if MORTDUE = . then _PVAL = _PVAL + (73474.3650916422 * 0.0000131404625); else _PVAL = _PVAL + (MORTDUE * 0.0000131404625); _FORMAT = put(REASON, $7.); %DMNORMCP(_FORMAT, _norm1); select(_norm1); when('') _PVAL = _PVAL + -4.62921156962603; when('DEBTCON') _PVAL = _PVAL + -0.14336338650581; when('HOMEIMP') _PVAL = _PVAL + 0; otherwise _warn_ = 'U'; end; select(G_DEROG); when(0) _PVAL = _PVAL + 4.19346181403371; when(1) _PVAL = _PVAL + 3.55514302803634; when(2) _PVAL = _PVAL + 4.96043183550741; when(3) _PVAL = _PVAL + 8.35290999472206; when(4) _PVAL = _PVAL + 4.78431947562603; when(5) _PVAL = _PVAL + -3.7900668262678; when(6) _PVAL = _PVAL + 19.6620057975139; when(7) _PVAL = _PVAL + 0.22052181715953; when(8) _PVAL = _PVAL + 0; otherwise; end; if LOAN = . then _PVAL = _PVAL + (18070.8053691275 * 0.00004452063067); else _PVAL = _PVAL + (LOAN * 0.00004452063067); /* interval target */ P_DEBTINC = _PVAL; label P_DEBTINC = "Predicted: DEBTINC"; DROP _PVAL; DROP _NORM1; *-------------------------------------------------------------*; * END_CHUNK 1491262545.1:T2T74I1C *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262553.4:T0EV52LK *; *-------------------------------------------------------------*; * ; * TOOL : Regression ; * TYPE : MODEL ; * NODE : Regression [T0EV52LK] ; * ; *-------------------------------------------------------------*; * ; * MODEL NAME : Untitled ; * DESCRIPTION : ; * ; * TARGET : DEBTINC ; *-------------------------------------------------------------*; *************************************; *** begin scoring code for regression; *************************************; length _WARN_ $4; label _WARN_ = 'Warnings' ; drop _Y; _Y = DEBTINC ; drop _DM_BAD; _DM_BAD=0; *** Check CLNO for missing values ; if missing( CLNO ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check LOAN for missing values ; if missing( LOAN ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check MORTDUE for missing values ; if missing( MORTDUE ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check NINQ for missing values ; if missing( NINQ ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Generate dummy variables for REASON ; drop _0_0 ; if missing( REASON ) then do; _0_0 = .; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; else do; length _dm7 $ 7; drop _dm7 ; %DMNORMCP( REASON , _dm7 ) if _dm7 = 'DEBTCON' then do; _0_0 = 1; end; else if _dm7 = 'HOMEIMP' then do; _0_0 = -1; end; else do; _0_0 = .; substr(_warn_,2,1) = 'U'; _DM_BAD = 1; end; end; *** Generate dummy variables for G_DEROG ; drop _1_0 _1_1 _1_2 _1_3 _1_4 _1_5 _1_6 _1_7 ; *** encoding is sparse, initialize to zero; _1_0 = 0; _1_1 = 0; _1_2 = 0; _1_3 = 0; _1_4 = 0; _1_5 = 0; _1_6 = 0; _1_7 = 0; if missing( G_DEROG ) then do; _1_0 = .; _1_1 = .; _1_2 = .; _1_3 = .; _1_4 = .; _1_5 = .; _1_6 = .; _1_7 = .; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; else do; length _dm12 $ 12; drop _dm12 ; _dm12 = put( G_DEROG , BEST12. ); %DMNORMIP( _dm12 ) if _dm12 = '1' then do; _1_1 = 1; end; else if _dm12 = '0' then do; _1_0 = 1; end; else if _dm12 = '2' then do; _1_2 = 1; end; else if _dm12 = '3' then do; _1_3 = 1; end; else if _dm12 = '4' then do; _1_4 = 1; end; else if _dm12 = '5' then do; _1_5 = 1; end; else if _dm12 = '6' then do; _1_6 = 1; end; else if _dm12 = '8' then do; _1_0 = -1; _1_1 = -1; _1_2 = -1; _1_3 = -1; _1_4 = -1; _1_5 = -1; _1_6 = -1; _1_7 = -1; end; else if _dm12 = '7' then do; _1_7 = 1; end; else do; _1_0 = .; _1_1 = .; _1_2 = .; _1_3 = .; _1_4 = .; _1_5 = .; _1_6 = .; _1_7 = .; substr(_warn_,2,1) = 'U'; _DM_BAD = 1; end; end; *** If missing inputs, use averages; if _DM_BAD > 0 then do; _LP0 = 34.4429925864859; goto G2254; end; *** Compute Linear Predictor; drop _TEMP; drop _LP0; _LP0 = 0; *** Effect: CLNO ; _TEMP = CLNO ; _LP0 = _LP0 + ( 0.07196495804075 * _TEMP); *** Effect: LOAN ; _TEMP = LOAN ; _LP0 = _LP0 + ( 0.00004813436244 * _TEMP); *** Effect: MORTDUE ; _TEMP = MORTDUE ; _LP0 = _LP0 + ( 0.00001724156874 * _TEMP); *** Effect: NINQ ; _TEMP = NINQ ; _LP0 = _LP0 + ( 1.02812484465703 * _TEMP); *** Effect: REASON ; _TEMP = 1; _LP0 = _LP0 + ( -0.27219037454524) * _TEMP * _0_0; *** Effect: G_DEROG ; _TEMP = 1; _LP0 = _LP0 + ( 2.25947509040226) * _TEMP * _1_0; _LP0 = _LP0 + ( -0.27057679886968) * _TEMP * _1_1; _LP0 = _LP0 + ( 1.21894291177661) * _TEMP * _1_2; _LP0 = _LP0 + ( 1.34644363558543) * _TEMP * _1_3; _LP0 = _LP0 + ( 0.29066195739033) * _TEMP * _1_4; _LP0 = _LP0 + ( -11.4850138301411) * _TEMP * _1_5; _LP0 = _LP0 + ( 15.3392754722483) * _TEMP * _1_6; _LP0 = _LP0 + ( -4.12865649565606) * _TEMP * _1_7; *--- Intercept ---*; _LP0 = _LP0 + ( 29.7095229246897); G2254: *** Predicted Value, Error, and Residual; label P_DEBTINC = 'Predicted: DEBTINC' ; P_DEBTINC = _LP0; drop _R; if _Y = . then do; R_DEBTINC = .; end; else do; _R = _Y - _LP0; label R_DEBTINC = 'Residual: DEBTINC' ; R_DEBTINC = _R; end; *************************************; ***** end scoring code for regression; *************************************; *-------------------------------------------------------------*; * END_CHUNK 1491262553.4:T0EV52LK *; *-------------------------------------------------------------*; *; * ENSEMBLE T3QE1MDM : End of Looping DO block; END; *; *; * BAGGING: save probabilities for next iteration; B_T3QE1MDM_P_DEBTINC= P_DEBTINC; *-------------------------------------------------------------*; * CODE_CLEAN * *; * Code substitution: GOTO RG2DR1->G83786 *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262556.5:T1NS54IK *; /*Index: 2*/ /*Boostrap-Boosting*/ *-------------------------------------------------------------*; * ; * TOOL : Group Processing ; * TYPE : UTILITY ; * NODE : Group Processing [Bagging] [T1NS54IK] ; * ; *-------------------------------------------------------------*; DO; *-------------------------------------------------------------*; * END_CHUNK 1491262556.5:T1NS54IK *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262557.5:T2T74I1C *; *-------------------------------------------------------------*; * ; * TOOL : Variable Selection ; * TYPE : EXPLORE ; * NODE : Variable Selection [T2T74I1C] ; * ; *-------------------------------------------------------------*; length _warn_ $ 4; label _warn_ = "Warnings"; length _norm1 $ %DMNORLEN; _norm1 = ' '; length _FORMAT $200; drop _FORMAT; _FORMAT = put(DEROG, BEST12.); %DMNORMCP(_FORMAT, _norm1); select(_norm1); when('.') G_DEROG = 0; when('0') G_DEROG = 1; when('1') G_DEROG = 2; when('2') G_DEROG = 2; when('3') G_DEROG = 3; when('4') G_DEROG = 4; when('5') G_DEROG = 5; when('6') G_DEROG = 5; when('7') G_DEROG = 6; when('8') G_DEROG = 7; when('9') G_DEROG = 8; when('10') G_DEROG = 9; otherwise _warn_ = 'U'; end; _FORMAT = put(REASON, $7.); %DMNORMCP(_FORMAT, _norm1); select(_norm1); when('') G_REASON = 0; when('DEBTCON') G_REASON = 1; when('HOMEIMP') G_REASON = 1; otherwise _warn_ = 'U'; end; label G_DEROG = "Group: DEROG"; label G_REASON = "Group: REASON"; _PVAL = 25.039744352853; if CLNO = . then _PVAL = _PVAL + (21.1851327433628 * 0.10234126701867); else _PVAL = _PVAL + (CLNO * 0.10234126701867); select(G_REASON); when(0) _PVAL = _PVAL + -4.66883280969819; when(1) _PVAL = _PVAL + 0; otherwise; end; if MORTDUE = . then _PVAL = _PVAL + (74330.5665860806 * 0.00001478537395); else _PVAL = _PVAL + (MORTDUE * 0.00001478537395); if NINQ = . then _PVAL = _PVAL + (1.15467759970182 * 0.54464749099548); else _PVAL = _PVAL + (NINQ * 0.54464749099548); if LOAN = . then _PVAL = _PVAL + (18883.9261744966 * 0.00005633855311); else _PVAL = _PVAL + (LOAN * 0.00005633855311); select(G_DEROG); when(0) _PVAL = _PVAL + 3.85503669071583; when(1) _PVAL = _PVAL + 4.02041127210254; when(2) _PVAL = _PVAL + 4.94655112748386; when(3) _PVAL = _PVAL + 8.70365966858093; when(4) _PVAL = _PVAL + 6.13290494546822; when(5) _PVAL = _PVAL + -3.57748109662281; when(6) _PVAL = _PVAL + 0; when(7) _PVAL = _PVAL + 19.7416436114312; when(8) _PVAL = _PVAL + 2.24305945105743; when(9) _PVAL = _PVAL + 0; otherwise; end; /* interval target */ P_DEBTINC = _PVAL; label P_DEBTINC = "Predicted: DEBTINC"; DROP _PVAL; DROP _NORM1; *-------------------------------------------------------------*; * END_CHUNK 1491262557.5:T2T74I1C *; *-------------------------------------------------------------*; *-------------------------------------------------------------*; * START_CHUNK 1491262565.6:T0EV52LK *; *-------------------------------------------------------------*; * ; * TOOL : Regression ; * TYPE : MODEL ; * NODE : Regression [T0EV52LK] ; * ; *-------------------------------------------------------------*; * ; * MODEL NAME : Untitled ; * DESCRIPTION : ; * ; * TARGET : DEBTINC ; *-------------------------------------------------------------*; *************************************; *** begin scoring code for regression; *************************************; length _WARN_ $4; label _WARN_ = 'Warnings' ; drop _Y; _Y = DEBTINC ; drop _DM_BAD; _DM_BAD=0; *** Check CLNO for missing values ; if missing( CLNO ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check LOAN for missing values ; if missing( LOAN ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check MORTDUE for missing values ; if missing( MORTDUE ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Check NINQ for missing values ; if missing( NINQ ) then do; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; *** Generate dummy variables for G_DEROG ; drop _0_0 _0_1 _0_2 _0_3 _0_4 _0_5 _0_6 _0_7 _0_8 ; *** encoding is sparse, initialize to zero; _0_0 = 0; _0_1 = 0; _0_2 = 0; _0_3 = 0; _0_4 = 0; _0_5 = 0; _0_6 = 0; _0_7 = 0; _0_8 = 0; if missing( G_DEROG ) then do; _0_0 = .; _0_1 = .; _0_2 = .; _0_3 = .; _0_4 = .; _0_5 = .; _0_6 = .; _0_7 = .; _0_8 = .; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; else do; length _dm12 $ 12; drop _dm12 ; _dm12 = put( G_DEROG , BEST12. ); %DMNORMIP( _dm12 ) if _dm12 = '1' then do; _0_1 = 1; end; else if _dm12 = '0' then do; _0_0 = 1; end; else if _dm12 = '2' then do; _0_2 = 1; end; else if _dm12 = '3' then do; _0_3 = 1; end; else if _dm12 = '4' then do; _0_4 = 1; end; else if _dm12 = '7' then do; _0_7 = 1; end; else if _dm12 = '8' then do; _0_8 = 1; end; else if _dm12 = '9' then do; _0_0 = -1; _0_1 = -1; _0_2 = -1; _0_3 = -1; _0_4 = -1; _0_5 = -1; _0_6 = -1; _0_7 = -1; _0_8 = -1; end; else do; _0_0 = .; _0_1 = .; _0_2 = .; _0_3 = .; _0_4 = .; _0_5 = .; _0_6 = .; _0_7 = .; _0_8 = .; substr(_warn_,2,1) = 'U'; _DM_BAD = 1; end; end; *** Generate dummy variables for G_REASON ; drop _1_0 ; if missing( G_REASON ) then do; _1_0 = .; substr(_warn_,1,1) = 'M'; _DM_BAD = 1; end; else do; length _dm12 $ 12; drop _dm12 ; _dm12 = put( G_REASON , BEST12. ); %DMNORMIP( _dm12 ) if _dm12 = '1' then do; _1_0 = -1; end; else if _dm12 = '0' then do; _1_0 = 1; end; else do; _1_0 = .; substr(_warn_,2,1) = 'U'; _DM_BAD = 1; end; end; *** If missing inputs, use averages; if _DM_BAD > 0 then do; _LP0 = 34.2935857100594; goto G83786; end; *** Compute Linear Predictor; drop _TEMP; drop _LP0; _LP0 = 0; *** Effect: CLNO ; _TEMP = CLNO ; _LP0 = _LP0 + ( 0.0662846398312 * _TEMP); *** Effect: LOAN ; _TEMP = LOAN ; _LP0 = _LP0 + ( 0.00006542216132 * _TEMP); *** Effect: MORTDUE ; _TEMP = MORTDUE ; _LP0 = _LP0 + ( 0.00001890971965 * _TEMP); *** Effect: NINQ ; _TEMP = NINQ ; _LP0 = _LP0 + ( 0.65403546710175 * _TEMP); *** Effect: G_DEROG ; _TEMP = 1; _LP0 = _LP0 + ( -0.47451897640738) * _TEMP * _0_0; _LP0 = _LP0 + ( -2.3608783251873) * _TEMP * _0_1; _LP0 = _LP0 + ( -0.89732564177911) * _TEMP * _0_2; _LP0 = _LP0 + ( 1.99052124793838) * _TEMP * _0_3; _LP0 = _LP0 + ( -0.70123396140634) * _TEMP * _0_4; _LP0 = _LP0 + ( 0) * _TEMP * _0_5; _LP0 = _LP0 + ( 0) * _TEMP * _0_6; _LP0 = _LP0 + ( 13.5766565409846) * _TEMP * _0_7; _LP0 = _LP0 + ( -4.75284934104243) * _TEMP * _0_8; *** Effect: G_REASON ; _TEMP = 1; _LP0 = _LP0 + ( 0.67147125800087) * _TEMP * _1_0; *--- Intercept ---*; _LP0 = _LP0 + ( 32.1966612829545); G83786: *** Predicted Value, Error, and Residual; label P_DEBTINC = 'Predicted: DEBTINC' ; P_DEBTINC = _LP0; drop _R; if _Y = . then do; R_DEBTINC = .; end; else do; _R = _Y - _LP0; label R_DEBTINC = 'Residual: DEBTINC' ; R_DEBTINC = _R; end; *************************************; ***** end scoring code for regression; *************************************; *-------------------------------------------------------------*; * END_CHUNK 1491262565.6:T0EV52LK *; *-------------------------------------------------------------*; *; * ENSEMBLE T3QE1MDM : End of Looping DO block; END; *; *; * BAGGING: accumulate probabilities : counter= 2; P_DEBTINC= P_DEBTINC*(1/2) + B_T3QE1MDM_P_DEBTINC*(1/2); *; * BAGGING: save probabilities for next iteration; B_T3QE1MDM_P_DEBTINC= P_DEBTINC; *--------------------------------------------------------------*; * Ensemble: DEBTINC: Decisions; *--------------------------------------------------------------*; **** NO DECISION CODE; *--------------------------------------------------------------*; * ENSEMBLE T3QE1MDM - END OF CODE; *--------------------------------------------------------------*; /*END_NOCLEAN_*/