****************************************************************; ****** DECISION TREE SCORING CODE ******; ****************************************************************; ****** LENGTHS OF NEW CHARACTER VARIABLES ******; LENGTH I_CHD $ 12; LENGTH F_CHD $ 12; LENGTH _WARN_ $ 4; ****** LABELS FOR NEW VARIABLES ******; LABEL _NODE_ = 'Node' ; LABEL _LEAF_ = 'Leaf' ; LABEL P_CHD0 = 'Predicted: CHD=0' ; LABEL P_CHD1 = 'Predicted: CHD=1' ; LABEL I_CHD = 'Into: CHD' ; LABEL U_CHD = 'Unnormalized Into: CHD' ; LABEL F_CHD = 'From: CHD' ; LABEL R_CHD0 = 'Residual: CHD=0' ; LABEL R_CHD1 = 'Residual: CHD=1' ; LABEL _WARN_ = 'Warnings' ; ****** TEMPORARY VARIABLES FOR FORMATTED VALUES ******; LENGTH _ARBFMT_2 $ 12; DROP _ARBFMT_2; _ARBFMT_2 = ' '; /* Initialize to avoid warning. */ LENGTH _ARBFMT_3 $ 7; DROP _ARBFMT_3; _ARBFMT_3 = ' '; /* Initialize to avoid warning. */ DROP _DECNUM; _DECNUM=1; _ARBFMT_2 = PUT( CHD , BEST12.); %DMNORMCP( _ARBFMT_2, F_CHD ); ****** ASSIGN OBSERVATION TO NODE ******; /* USING SURROGATES SPLITS */ DROP _BRANCH_; _BRANCH_ = -1; IF NOT MISSING(TOBACCO ) AND TOBACCO < 7.38 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TOBACCO ) AND 7.38 <= TOBACCO THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(LDL ) AND LDL < 13.875 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(LDL ) AND 13.875 <= LDL THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(ADIPOSITY ) AND ADIPOSITY < 42.33 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(ADIPOSITY ) AND 42.33 <= ADIPOSITY THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(TYPEA ) AND TYPEA < 77.5 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TYPEA ) AND 77.5 <= TYPEA THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 1; IF _BRANCH_ EQ 2 THEN DO; _NODE_ = 3; _LEAF_ = 7; P_CHD0 = 0.28888888888888; P_CHD1 = 0.71111111111111; I_CHD = '1' ; U_CHD = 1; _DECNUM = 2; END; ELSE DO; /* USING SURROGATES SPLITS */ _BRANCH_ = -1; _ARBFMT_3 = PUT( FAMHIST , $7.); %DMNORMIP( _ARBFMT_3); IF _ARBFMT_3 IN ('PRESENT' ) THEN DO; _BRANCH_ = 1; END; ELSE IF _ARBFMT_3 IN ('ABSENT' ) THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(SBP ) AND 145 <= SBP THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(SBP ) AND SBP < 145 THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(LDL ) AND 4.655 <= LDL THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(LDL ) AND LDL < 4.655 THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(TOBACCO ) AND 3.1 <= TOBACCO THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TOBACCO ) AND TOBACCO < 3.1 THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 2; IF _BRANCH_ EQ 1 THEN DO; /* USING SURROGATES SPLITS */ _BRANCH_ = -1; IF NOT MISSING(ADIPOSITY ) AND ADIPOSITY < 34.575 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(ADIPOSITY ) AND 34.575 <= ADIPOSITY THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(OBESITY ) AND OBESITY < 31.215 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(OBESITY ) AND 31.215 <= OBESITY THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 1; IF _BRANCH_ EQ 2 THEN DO; _NODE_ = 9; _LEAF_ = 5; P_CHD0 = 0.15384615384615; P_CHD1 = 0.84615384615384; I_CHD = '1' ; U_CHD = 1; _DECNUM = 2; END; ELSE DO; /* USING SURROGATES SPLITS */ _BRANCH_ = -1; IF NOT MISSING(LDL ) AND LDL < 8.36 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(LDL ) AND 8.36 <= LDL THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(TYPEA ) AND TYPEA < 72.5 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TYPEA ) AND 72.5 <= TYPEA THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 1; IF _BRANCH_ EQ 2 THEN DO; _NODE_ = 15; _LEAF_ = 4; P_CHD0 = 0; P_CHD1 = 1; I_CHD = '1' ; U_CHD = 1; _DECNUM = 2; END; ELSE DO; /* USING SURROGATES SPLITS */ _BRANCH_ = -1; IF NOT MISSING(SBP ) AND SBP < 145 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(SBP ) AND 145 <= SBP THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(ADIPOSITY ) AND ADIPOSITY < 31.74 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(ADIPOSITY ) AND 31.74 <= ADIPOSITY THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(TOBACCO ) AND TOBACCO < 5.02 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TOBACCO ) AND 5.02 <= TOBACCO THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(AGE ) AND AGE < 49.5 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(AGE ) AND 49.5 <= AGE THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 1; IF _BRANCH_ EQ 2 THEN DO; /* USING SURROGATES SPLITS */ _BRANCH_ = -1; IF NOT MISSING(ADIPOSITY ) AND ADIPOSITY < 32.9 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(ADIPOSITY ) AND 32.9 <= ADIPOSITY THEN DO; _BRANCH_ = 2; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(TOBACCO ) AND TOBACCO < 6.62 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(TOBACCO ) AND 6.62 <= TOBACCO THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(LDL ) AND LDL < 7.08 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(LDL ) AND 7.08 <= LDL THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN DO; IF NOT MISSING(OBESITY ) AND OBESITY < 26.835 THEN DO; _BRANCH_ = 1; END; ELSE IF NOT MISSING(OBESITY ) AND 26.835 <= OBESITY THEN DO; _BRANCH_ = 2; END; END; IF _BRANCH_ LT 0 THEN _BRANCH_ = 1; IF _BRANCH_ EQ 2 THEN DO; _NODE_ = 39; _LEAF_ = 3; P_CHD0 = 1; P_CHD1 = 0; I_CHD = '0' ; U_CHD = 0; _DECNUM = 1; END; ELSE DO; _NODE_ = 38; _LEAF_ = 2; P_CHD0 = 0.25; P_CHD1 = 0.75; I_CHD = '1' ; U_CHD = 1; _DECNUM = 2; END; END; ELSE DO; _NODE_ = 26; _LEAF_ = 1; P_CHD0 = 0.81081081081081; P_CHD1 = 0.18918918918918; I_CHD = '0' ; U_CHD = 0; _DECNUM = 1; END; END; END; END; ELSE DO; _NODE_ = 5; _LEAF_ = 6; P_CHD0 = 0.82727272727272; P_CHD1 = 0.17272727272727; I_CHD = '0' ; U_CHD = 0; _DECNUM = 1; END; END; IF F_CHD NE '0' AND F_CHD NE '1' THEN DO; R_CHD0 = .; R_CHD1 = .; END; ELSE DO; R_CHD0 = -P_CHD0 ; R_CHD1 = -P_CHD1 ; SELECT( F_CHD ); WHEN( '0' ) R_CHD0 = R_CHD0 +1; WHEN( '1' ) R_CHD1 = R_CHD1 +1; END; END; ****************************************************************; ****** END OF DECISION TREE SCORING CODE ******; ****************************************************************;