/************************************************* SAS EXAMPLE 2 -- RECODE VARIABLES INTO CATEGORIES ONEWAY FREQUENCY TABULATIONS CONTINGENCY TABLES (CROSS-TABS) CHI-SQUARE EXACT TESTS MANTEL-HAENSZEL STATISTICS MEASURES OF ASSOCIATION PROCS USED: PROC MEANS PROC FREQ FILENAME: FREQ.SAS *************************************************/ OPTIONS NODATE PAGENO=1 FORMDLIM=" "; TITLE "SAS EXAMPLE 2:"; PROC FORMAT; VALUE AGEFMT 1 = "19-29" 2 = "30-39" 3 = ">39"; VALUE CHOLFMT 1 = ">=240" 2 = "<240"; VALUE PILLFMT 1 = "NO PILL" 2 = "PILL"; VALUE RPILLFMT 1 = "PILL" 2 = "NO PILL"; VALUE WTFMT 1 = "<120 LB" 2 = "120-139 LB" 3 = ">=140 LB"; VALUE HIAGEFMT 1 = "YES" 2 = "NO"; RUN; DATA WERNER; INFILE "WERNER2.DAT"; INPUT ID 1-4 AGE 5-8 HT 9-12 WT 13-16 PILL 17-20 CHOL 21-24 ALB 25-28 CALC 29-32 URIC 33-36 PAIR 37-39; IF HT = 999 then HT = .; IF WT = 999 then WT = .; IF ALB = 99 then ALB = .; IF CALC = 99 then CALC = .; IF URIC = 99 then URIC = .; WTKG = WT*.39; HTCM = HT*2.54; BMI = WTKG/(HTCM/100)**2; IF BMI > 23 then HIBMI = 1; IF 0<=BMI<=23 then HIBMI = 0; IF AGE NOT=. THEN DO; IF AGE <= 29 THEN AGEGROUP=1; IF AGE > 29 AND AGE <= 39 THEN AGEGROUP=2; IF AGE > 39 THEN AGEGROUP=3; IF AGE > 39 THEN HIAGE=1; IF AGE <= 39 THEN HIAGE=2; END; IF CHOL >= 400 OR CHOL < 100 THEN CHOL=.; IF CHOL NOT=. THEN DO; IF CHOL >= 240 THEN HICHOL=1; IF CHOL < 240 THEN HICHOL=2; END; IF WT NOT=. THEN DO; IF WT < 120 THEN WTCAT=1; IF WT >= 120 AND WT < 140 THEN WTCAT=2; IF WT >= 140 THEN WTCAT=3; END; /*RECODE PILL FOR CONTINGENCY TABLES*/ IF PILL = 1 THEN RPILL=2; IF PILL = 2 THEN RPILL=1; LABEL HT = "HEIGHT (INCHES)" WT = "WEIGHT (POUNDS)" CHOL = "CHOLESTEROL" ALB = "ALBUMIN" CALC = "CALCIUM" URIC = "URIC ACID" WTKG = "WEIGHT (KG)" HTCM = "HEIGHT (CM)" BMI = "BODYMASS INDEX"; DROP WTKG HTCM; RUN; PROC MEANS; TITLE2 "DESCRIPTIVE STATISTICS"; RUN; /*CHECKING RECODES TO BE SURE THE VALUES ARE CORRECT*/ PROC MEANS DATA=WERNER; CLASS WTCAT; VAR WT; FORMAT WTCAT WTFMT.; TITLE2 "CHECKING RECODE OF WT INTO WTCAT"; RUN; PROC MEANS DATA=WERNER; CLASS AGEGROUP; VAR AGE; FORMAT AGEGROUP AGEFMT.; TITLE2 "CHECKING RECODE OF AGE INTO AGEGROUP"; RUN; PROC MEANS DATA=WERNER; CLASS HICHOL; VAR CHOL; FORMAT HICHOL CHOLFMT.; TITLE2 "CHECKING RECODE OF CHOL INTO HICHOL"; RUN; PROC FREQ DATA=WERNER; TABLES PILL*RPILL/LIST; TITLE2 "CHECKING RECODE OF PILL INTO RPILL"; RUN; /*ONEWAY FREQUENCIES*/ TITLE2 "ONEWAY FREQUENCIES"; PROC FREQ DATA=WERNER; TABLES PILL WTCAT AGEGROUP HIAGE HICHOL; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. PILL PILLFMT. WTCAT WTFMT. HIAGE HIAGEFMT.; RUN; PROC FREQ DATA=WERNER; TABLES AGEGROUP / CHISQ TESTP=(.333, .333, .333); FORMAT AGEGROUP AGEFMT.; RUN; /*2x2 TABLES*/ TITLE2 "2x2 TABLE"; PROC FREQ DATA=WERNER; TABLES RPILL*HICHOL / CHISQ; FORMAT RPILL RPILLFMT. HICHOL CHOLFMT.; RUN; PROC FREQ DATA=WERNER; TABLES HIAGE*HICHOL / CHISQ RELRISK ; FORMAT HIAGE HIAGEFMT. HICHOL CHOLFMT.; RUN; PROC FREQ DATA=WERNER; TABLES HIAGE*HICHOL / CHISQ CMH ; FORMAT HIAGE HIAGEFMT. HICHOL CHOLFMT.; RUN; /*3X2 TABLE*/ PROC FREQ DATA=WERNER; TABLES AGEGROUP*HICHOL / CHISQ EXACT TREND; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. ; TITLE2 "3X2 TABLE"; RUN; /*ODDS RATIO FOR EACH SUBGROUP OF 3X2 TABLE*/ PROC FREQ DATA=WERNER ; WHERE AGEGROUP =1 OR AGEGROUP=2; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE2 "RELATIVE RISK FOR AGEGROUP1 VS AGEGROUP2"; RUN; PROC FREQ DATA=WERNER ; WHERE AGEGROUP =1 OR AGEGROUP=3; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE2 "RELATIVE RISK FOR AGEGROUP1 VS AGEGROUP3"; RUN; PROC FREQ DATA=WERNER ; WHERE AGEGROUP =2 OR AGEGROUP=3; TABLES AGEGROUP*HICHOL /CHISQ RELRISK; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE2 "RELATIVE RISK FOR AGEGROUP2 VS AGEGROUP3"; RUN; /*MANTEL HAENSZEL STATISTICS FOR 3X2 TABLE*/ PROC FREQ DATA=WERNER; TABLES AGEGROUP*HICHOL / CHISQ CMH; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT.; TITLE2 "MANTEL HAENSZEL STATISTICS FOR 3X2 TABLE"; RUN; /*3X3 TABLE*/ TITLE2 "3X3 TABLE ORDINAL VARIABLES"; PROC FREQ DATA=WERNER; TABLES AGEGROUP*WTCAT / CHISQ CMH; FORMAT AGEGROUP AGEFMT. WTCAT WTFMT.; RUN; PROC FREQ DATA=WERNER; TABLES AGEGROUP*WTCAT / MEASURES CL ; TEST MEASURES; FORMAT AGEGROUP AGEFMT. WTCAT WTFMT.; TITLE3 "MEASURES OF ASSOCIATION FOR ORDINAL VARIABLES"; RUN; /*STRATIFIED ANALYSIS FOR PILL AND NO PILL*/ PROC FREQ DATA=WERNER; TABLES PILL*HIAGE*HICHOL / CHISQ RELRISK CMH; FORMAT PILL PILLFMT. HIAGE HIAGEFMT. HICHOL CHOLFMT.; TITLE2 "2X2 TABLE STRATIFIED BY PILL"; RUN; PROC FREQ DATA=WERNER; TABLES PILL*AGEGROUP*HICHOL / CHISQ CMH; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. HICHOL CHOLFMT. ; TITLE2 "3X2 TABLE STRATIFIED BY PILL" ; RUN; PROC FREQ DATA=WERNER; TABLES PILL*AGEGROUP*WTCAT / CHISQ CMH; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. WTCAT WTFMT.; TITLE2 "3X3 TABLE STRATIFIED BY PILL"; RUN;