/************************************************* SAS EXAMPLE -- SET UP FORMATS FOR VARIABLE VALUES 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: frequencies.sas *************************************************/ OPTIONS NODATE PAGENO=1 FORMDLIM=" "; OPTIONS FORMCHAR="|----|+|---+=|-/\<>*"; PROC FORMAT; VALUE AGEFMT 1 = "1:19-29" 2 = "2:30-39" 3 = "3:>39"; VALUE CHOLFMT 1 = "1:>=240" 2 = "2:<240"; VALUE CCATFMT 1 = "1:<200" 2 = "2:200-239" 3 = "3:>=240"; VALUE PILLFMT 1 = "1:NO PILL" 2 = "2:PILL"; VALUE RPILLFMT 1 = "1:PILL" 2 = "2:NO PILL"; VALUE WTFMT 1 = "1:<120" 2 = "2:120-139" 3 = "3:>=140"; VALUE HIAGEFMT 1 = "1:YES" 2 = "2:NO"; VALUE HIBMIFMT 1 = "1:BMI>23" 2 = "2:BMI<=23"; RUN; DATA WERNER; INFILE "D:\510\2007\DATA\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 = 2; 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; IF CHOL < 200 THEN CHOLCAT=1; IF CHOL >= 200 AND CHOL < 240 THEN CHOLCAT=2; IF CHOL >= 240 THEN CHOLCAT=3; 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*/ /*ANOTHER WAY TO DO THIS RECODE WOULD BE: RPILL = 3-PILL;*/ IF PILL = 1 THEN RPILL=2; IF PILL = 2 THEN RPILL=1; DROP WTKG HTCM; RUN; /*INITIAL DESCRIPTIVE STATISTICS TO CHECK DATA*/ TITLE "DESCRIPTIVE STATISTICS"; PROC MEANS; RUN; /*CHECK RECODES OF VARIABLES INTO CATEGORIES*/ TITLE "CHECKING RECODE OF WT INTO WTCAT"; PROC MEANS DATA=WERNER; CLASS WTCAT; VAR WT; FORMAT WTCAT WTFMT.; RUN; TITLE "CHECKING RECODE OF AGE INTO AGEGROUP"; PROC MEANS DATA=WERNER; CLASS AGEGROUP; VAR AGE; FORMAT AGEGROUP AGEFMT.; RUN; TITLE "CHECKING RECODE OF CHOL INTO HICHOL"; PROC MEANS DATA=WERNER; CLASS HICHOL; VAR CHOL; FORMAT HICHOL CHOLFMT.; RUN; TITLE "CHECKING RECODE OF CHOL INTO CHOLCAT"; PROC MEANS DATA=WERNER; CLASS CHOLCAT; VAR CHOL; FORMAT CHOLCAT CCATFMT.; RUN; TITLE "CHECKING RECODE OF PILL INTO RPILL"; PROC FREQ DATA=WERNER; TABLES PILL*RPILL/LIST; RUN; /*ONEWAY FREQUENCIES*/ TITLE "ONEWAY FREQUENCIES"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES PILL WTCAT AGEGROUP HIAGE HICHOL CHOLCAT; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. PILL PILLFMT. WTCAT WTFMT. HIAGE HIAGEFMT. CHOLCAT CCATFMT.; RUN; TITLE "CHISQ GOODNESS OF FIT TEST"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES HIBMI / CHISQ TESTP=(.20 .80); FORMAT HIBMI HIBMIFMT.; RUN; TITLE "BINOMIAL TEST"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES HIBMI / BINOMIAL (P=.20); EXACT BINOMIAL; FORMAT HIBMI HIBMIFMT.; RUN; /*2x2 TABLE*/ TITLE "2x2 TABLE"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES HIAGE*HICHOL / CHISQ RELRISK ; FORMAT HIAGE HIAGEFMT. HICHOL CHOLFMT.; RUN; /*3X2 TABLE*/ TITLE1 "3X2 TABLE"; TITLE2 "THE ROW VARIABLE IS ORDINAL"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES AGEGROUP*HICHOL / CHISQ TREND CMH NOCOL NOPERCENT; exact fisher / mc; FORMAT AGEGROUP AGEFMT. HICHOL CHOLFMT. ; RUN; /*3X3 TABLE: BOTH ROW AND COLUMN ARE ORDINAL*/ TITLE "3X3 TABLE BOTH ORDINAL VARIABLES"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES AGEGROUP*WTCAT / CHISQ CMH MEASURES CL; FORMAT AGEGROUP AGEFMT. WTCAT WTFMT.; RUN; /*STRATIFIED ANALYSIS BY WTCAT*/ TITLE "2X2 TABLE STRATIFIED BY WTCAT"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES WTCAT*HIAGE*HICHOL / CHISQ RELRISK NOCOL NOPERCENT CMH; FORMAT WTCAT WTFMT. HIAGE HIAGEFMT. HICHOL CHOLFMT.; RUN; TITLE "3X2 TABLE STRATIFIED BY WTCAT" ; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES WTCAT*AGEGROUP*HICHOL / CHISQ CMH NOCOL NOPERCENT; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. HICHOL CHOLFMT. ; RUN; TITLE "3X3 TABLE STRATIFIED BY WTCAT"; PROC FREQ DATA=WERNER ORDER=INTERNAL; TABLES WTCAT*AGEGROUP*CHOLCAT / CHISQ CMH NOCOL NOPERCENT; FORMAT PILL PILLFMT. AGEGROUP AGEFMT. WTCAT WTFMT. CHOLCAT CCATFMT.; RUN;