/************************************************* SAS EXAMPLE 1: PAIRED AND INDEPENDENT TTESTS FILENAME: TTEST.SAS *************************************************/ TITLE "SAS EXAMPLE 1:"; OPTIONS NODATE PAGENO=1 LABEL; /*CREATE FORMATS FOR PILL AND HIBMI*/ PROC FORMAT; VALUE PILLFMT 1="1:NO PILL" 2="2:YES PILL"; VALUE BMIFMT 0="0:LOW BMI" 1="1:HI BMI"; RUN; /*READ IN WERNER DATA*/ 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; 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; /*DESCRIPTIVE STATISTICS*/ PROC MEANS DATA=WERNER; TITLE2 "DESCRIPTIVE STATISTICS FOR WERNER DATA SET"; RUN; /*USING THE CLASS STATEMENT WITH PROC MEANS*/ TITLE2 "DESCRIPTIVE STATISTICS USING THE CLASS STATEMENT"; TITLE3 "DO NOT NEED TO SORT FIRST"; PROC MEANS DATA=WERNER MAXDEC=3; CLASS PILL; FORMAT PILL PILLFMT.; RUN; PROC MEANS DATA=WERNER MAXDEC=3; CLASS PILL HIBMI; FORMAT PILL PILLFMT. HIBMI BMIFMT.; RUN; /*DESCRIPTIVES BY GROUP USING PROC SORT FIRST!*/ TITLE2 "DESCRIPTIVE STATS USING THE BY STATEMENT"; TITLE2 "NEED TO SORT DATA FIRST"; PROC SORT DATA=WERNER; BY PILL; RUN; PROC MEANS DATA=WERNER; BY PILL; RUN; PROC UNIVARIATE DATA=WERNER PLOT NORMAL; BY PILL; VAR ALB; TITLE2 "PLOTS AND DESCRIPTIVES FOR ALBUMIN"; RUN; /*INDEPENDENT SAMPLES T-TESTS*/ TITLE2 "INDEPENDENT SAMPLES TTEST TO COMPARE MEANS"; TITLE3 "FOR SEVERAL VARIABLES FOR THOSE TAKING PILL AND NOT"; PROC TTEST DATA=WERNER; CLASS PILL; VAR AGE HT WT CHOL ALB BMI; FORMAT PILL PILLFMT.; RUN; /*CREATE SUBSETS OF DATA FOR PILL AND NO PILL*/ DATA NOPILL; SET WERNER; IF PILL = 1; RUN; DATA PILL; SET WERNER; IF PILL = 2; RUN; /*SORT BEFORE MERGING */ PROC SORT DATA=NOPILL; BY PAIR; RUN; PROC SORT DATA=PILL; BY PAIR; RUN; /*MERGE THE TWO DATA SETS BY PAIR*/ DATA WERNER2; MERGE NOPILL(RENAME=(ID=ID1 AGE=AGE1 HT=HT1 WT=WT1 PILL=PILL1 CHOL=CHOL1 ALB=ALB1 CALC=CALC1 URIC=URIC1 BMI=BMI1)) PILL(RENAME=(ID=ID2 AGE=AGE2 HT=HT2 WT=WT2 PILL=PILL2 CHOL=CHOL2 ALB=ALB2 CALC=CALC2 URIC=URIC2 BMI=BMI2)); BY PAIR; CHOLDIFF = CHOL2 - CHOL1; AGEDIFF = AGE2 - AGE1; HTDIFF = HT2 - HT1; WTDIFF = WT2 - WT1; ALBDIFF = ALB2 - ALB1; CALCDIFF = CALC2 - CALC1; URICDIFF = URIC2 - URIC1; BMIDIFF = BMI2 - BMI1; LABEL CHOL1 = "CHOLESTEROL NOPILL" CHOL2 = "CHOLESTEROL PILL" AGE1 = "AGE NOPILL" AGE2 = "AGE PILL" HT1 = "HEIGHT NOPILL" HT2 = "HEIGHT PILL" WT1 = "WEIGHT NOPILL" WT2 = "WEIGHT PILL" ALB1 = "ALBUMIN NOPILL" ALB2 = "ALBUMIN PILL" CALC1 = "CALCIUM NOPILL" CALC2 = "CALCIUM PILL" URIC1 = "URIC ACID NOPILL" URIC2 = "URIC ACID PILL" BMI1 = "BMI NOPILL" BMI2 = "BMI PILL"; RUN; PROC PRINT DATA=WERNER2(OBS=5); TITLE2 "CHECKING THE MERGING OF THE DATA"; RUN; /*ONE-SAMPLE T-TESTS*/ PROC MEANS DATA=WERNER2 N MIN MAX MEAN T PRT; VAR CHOLDIFF ALBDIFF BMIDIFF; TITLE2 "ONE-SAMPLE T-TEST ON DIFFERENCE SCORE USING PROC MEANS"; TITLE3 "COMPARING PILL VS. NO PILL"; RUN; PROC UNIVARIATE DATA=WERNER2; VAR CHOLDIFF ALBDIFF BMIDIFF; TITLE2 "ONE-SAMPLE T-TESTS USING PROC UNIVARIATE"; RUN; /*PAIRED T-TESTS*/ PROC TTEST DATA=WERNER2; PAIRED CHOL2*CHOL1 ALB2*ALB1 BMI2*BMI1; TITLE2 "PAIRED T-TEST USING PROC MEANS"; TITLE3 "COMPARING PILL VS. NO PILL"; RUN; /*CORRELATION*/ PROC CORR DATA=WERNER2; VAR CHOL1 ALB1 CALC1 URIC1 BMI1; WITH CHOL2 ALB2 CALC2 URIC2 BMI2; TITLE2 "CORRELATIONS OF VALUES FOR PILL VS. NOPILL"; RUN; /*SCATTER PLOTS*/ PROC PLOT DATA=WERNER2 HPERCENT=75 VPERCENT=75; PLOT BMI1 * BMI2 = "*"; TITLE2 "BIVARIATE SCATTER PLOT"; RUN; QUIT; /*GRAPHICS PLOTS*/ GOPTIONS RESET=ALL; GOPTIONS DISPLAY=WIN TARGET=WINPRTM; AXIS1 LENGTH=75 PCT; AXIS2 LENGTH=75 PCT; SYMBOL1 COLOR=BLACK VALUE=STAR; TITLE1 "SAS EXAMPLE 1:"; TITLE2 "BIVARIATE SCATTER PLOT"; PROC GPLOT DATA=WERNER2; PLOT BMI1*BMI2 / HAXIS=AXIS1 VAXIS=AXIS2; RUN; QUIT;