/*********************************************** SAS EXAMPLE 8 -- ANOVA USING GLM FILENAME: ANOVA.SAS ************************************************/ OPTIONS NODATE FORMDLIM=" " PAGENO=1 LABEL; TITLE; DATA WERNER; INFILE "C:\TEMP\LABDATA\WERNER2.DAT"; INPUT ID $ 1-4 AGE 5-8 HT 9-12 WT 4. PILL 4. CHOL 4. ALB 25-28 1 CALC 29-32 1 URIC 33-36 1 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=.; IF CHOL >= 400 OR CHOL < 100 THEN CHOL=.; IF AGE NOT = . THEN DO; IF AGE < 25 THEN AGEGRP = 1; IF AGE >= 25 AND AGE < 32 THEN AGEGRP = 2; IF AGE >= 32 AND AGE < 42 THEN AGEGRP = 3; IF AGE >= 42 THEN AGEGRP = 4; AGEDUM1 = (AGEGRP=1); AGEDUM2 = (AGEGRP=2); AGEDUM3 = (AGEGRP=3); AGEDUM4 = (AGEGRP=4); IF AGE < 42 THEN HIAGE=0; IF AGE >=42 THEN HIAGE=1; END; AGEPILL=10*PILL+AGEGRP; IF CHOL NOT = . THEN DO; CHOLCAT = 0; IF CHOL > 200 THEN CHOLCAT = 1; END; IF URIC NOT = . THEN DO; IF URIC < 5.3 THEN URICAT = 0; IF URIC >= 5.3 THEN URICAT = 1; END; IF WT NOT=. THEN DO; IF WT <= 120 THEN WTCAT=1; IF WT > 120 AND WT <= 137 THEN WTCAT=2; IF WT > 137 THEN WTCAT=3; END; CENTWT = WT-130; RUN; PROC FREQ DATA=WERNER; TABLES PILL AGEGRP HIAGE PILL*AGEGRP AGEPILL URICAT CHOLCAT; TITLE "FREQUENCIES FOR CATEGORICAL VARIABLES"; RUN; PROC GLM DATA=WERNER; CLASS AGEGRP; MODEL CHOL = AGEGRP; MEANS AGEGRP; TITLE "ONEWAY ANOVA OF CHOLESTEROL ON AGEGROUP"; RUN; QUIT; PROC GLM DATA=WERNER; CLASS AGEGRP; MODEL CHOL = AGEGRP / SOLUTION; MEANS AGEGRP / HOVTEST = LEVENE WELCH; MEANS AGEGRP / BON SCHEFFE TUKEY; TITLE "ONEWAY ANOVA OF CHOLESTEROL ON AGEGROUP"; TITLE2 "WITH UNEQUAL VARIANCES ANOVA AND POST-HOC TESTS"; RUN; QUIT; PROC REG DATA=WERNER; MODEL CHOL = AGEDUM1 AGEDUM2 AGEDUM3; TITLE "REGRESSION: DOES NOT HAVE CLASS STATEMENT"; TITLE2 "DUMMY VARIABLES NEED TO BE CREATED IN DATA STEP"; TITLE3 "PARAMETER ESTIMATES ARE AUTOMATICALLY GENERATED"; RUN;QUIT; PROC GLM DATA=WERNER; CLASS URICAT; MODEL CHOL = URICAT; MEANS URICAT / HOVTEST = LEVENE WELCH; OUTPUT OUT=OUTGLM1 P=PREDICT1 R=RESID1; TITLE "ONEWAY ANOVA -- SAME AS TWO-SAMPLE T-TEST"; TITLE2 "WHEN THE CLASS VARIABLE HAS ONLY 2 CATEGORIES"; RUN; QUIT; PROC TTEST DATA=WERNER; CLASS URICAT; VAR CHOL; TITLE "TWO-SAMPLE T-TEST, SAME AS ANOVA"; RUN; PROC GLM DATA=WERNER; CLASS AGEGRP PILL; MODEL CHOL = AGEGRP PILL AGEGRP*PILL; OUTPUT OUT=OUTGLM1 P=PREDICT1 R=RESID1; MEANS AGEGRP PILL AGEGRP*PILL; LSMEANS AGEGRP PILL; LSMEANS AGEGRP*PILL / PDIFF ADJUST=TUKEY SLICE=AGEGRP SLICE=PILL; TITLE "TWO-WAY ANOVA WITH INTERACTION"; TITLE2 "AND POST-HOC TEST ON INTERACTION"; RUN;QUIT; PROC PRINT DATA=OUTGLM1(OBS=12); VAR ID CHOL AGEGRP PILL PREDICT1 RESID1; TITLE "PRINTOUT OF PREDICTED AND RESIDUALS FROM ANOVA"; RUN; PROC PLOT DATA=OUTGLM1; PLOT RESID1 * PREDICT1; TITLE "PLOT OF RESIDUAL VS. PREDICTED FROM ANOVA"; RUN; QUIT; PROC UNIVARIATE DATA=OUTGLM1; VAR RESID1; HISTOGRAM; TITLE "HISTOGRAM OF RESIDUALS FROM ANOVA"; RUN; PROC GLM DATA=WERNER; CLASS AGEPILL; MODEL CHOL = AGEPILL; MEANS AGEPILL; TITLE "ONEWAY ANOVA ON COMBINED VARIABLE"; RUN;QUIT; PROC GLM DATA=WERNER; CLASS AGEGRP URICAT PILL; MODEL CHOL = URICAT | AGEGRP | PILL / SS1 SS2 SS3; TITLE "THREE-WAY ANOVA WITH ALL POSSIBLE INTERACTIONS"; RUN; QUIT; PROC GLM; CLASS AGEGRP URICAT PILL; MODEL CHOL = URICAT |AGEGRP |PILL @2; TITLE "THREE-WAY ANOVA WITH TWOWAY INTERACTIONS AND MAIN EFFECTS"; RUN; QUIT; PROC GLM; CLASS AGEGRP URICAT PILL; MODEL CHOL = URICAT AGEGRP PILL AGEGRP*URICAT; TITLE "THREE-WAY ANOVA WITH ONE TWOWAY INTERACTION AND MAIN EFFECTS"; RUN; QUIT; PROC GLM; CLASS AGEGRP URICAT PILL; MODEL CHOL = URICAT AGEGRP PILL; OUTPUT OUT=OUTGLM2 P=PREDICT2 R=RESID2; TITLE "THREE-WAY ANOVA WITH MAIN EFFECTS ONLY"; RUN; QUIT; PROC PLOT DATA=OUTGLM2; PLOT RESID2 * PREDICT2 = "*"; TITLE "PLOT OF RESIDUALS VS. PREDICTED"; RUN; QUIT; PROC UNIVARIATE PLOT NORMAL DATA=OUTGLM2; VAR RESID2; TITLE "CHECKING NORMALITY OF RESIDUALS"; RUN; PROC GLM DATA=WERNER; CLASS AGEGRP PILL; MODEL CHOL = AGEGRP WT AGEGRP*WT; MEANS AGEGRP; LSMEANS AGEGRP; TITLE "ANALYSIS OF COVARIANCE--COVARIATE IS UNCENTERED"; RUN; QUIT; PROC GLM DATA=WERNER; CLASS AGEGRP PILL; MODEL CHOL = AGEGRP CENTWT AGEGRP*CENTWT / SS1 SS2 SS3; MEANS AGEGRP; LSMEANS AGEGRP ; TITLE "ANALYSIS OF COVARIANCE--COVARIATE IS CENTERED"; RUN; QUIT; PROC GLM DATA=WERNER; CLASS AGEGRP PILL; MODEL CHOL = AGEGRP CENTWT/SOLUTION; TITLE "ANCOVA--COVARIATE IS CENTERED"; TITLE2 "MAIN EFFECTS ONLY"; RUN;QUIT; PROC REG DATA= WERNER; MODEL CHOL = AGEDUM1 AGEDUM2 AGEDUM3 CENTWT; TITLE "REGRESSION MODEL TO GET ANCOVA"; RUN; QUIT;