TITLE 'Equal-n Oneway ANOVA' ; * This command file uses the LINEPRINTER option on the PROC REG command line. This option creates low-resolution, line-printer-style plots in response to the PLOT subcommand. If you remove this option, requested plots are created on a high-resolution graphics device. The LINEPRINTER option is required if plots are requested and SAS/GRAPH software has not been installed on the network or computer as a SAS component. PROC GPLOT and PROC GCHART are also used to produce various plots of means. PROC GPLOT and PROC GCHART are components of SAS/GRAPH software. ; DATA ONEWAY ; INPUT Y A ; * Code the predictor variables: ; SELECT (A) ; WHEN (1) DO ; A1 = 1 ; A2 = 0 ; A3 = 0 ; E1 = 1 ; E2 = 0 ; D1 = 1 ; D2 = 0 ; O1 = 1/3 ; O2 = 1/2 ; END ; WHEN (2) DO ; A1 = 0 ; A2 = 1 ; A3 = 0 ; E1 = 0 ; E2 = 1 ; D1 = 0 ; D2 = 1 ; O1 = 1/3 ; O2 = -1/2 ; END ; WHEN (3) DO ; A1 = 0 ; A2 = 0 ; A3 = 1 ; E1 = -1 ; E2 = -1 ; D1 = 0 ; D2 = 0 ; O1 = -2/3 ; O2 = 0 ; END ; END ; LABEL Y = 'y' ; LABEL A = 'A Effect' ; DATALINES ; 0 1 2 1 2 2 4 2 8 3 8 3 ; PROC FORMAT ; VALUE AFMT 1 = 'Level 1' 2 = 'Level 2' 3 = 'Level 3' ; RUN ; PROC PRINT DATA=ONEWAY NOOBS N ; TITLE3 'Data Listing' ; VAR Y A E1 E2 D1 D2 O1 O2 ; RUN ; PROC GLM DATA=ONEWAY ORDER=INTERNAL ; TITLE3 'Means Model' ; MODEL Y = A1 A2 A3 / NOINT SS3 EFFECTSIZE XPX SOLUTION P ; CONTRAST 'Effect-coded L' A1 .6666666 A2 -.3333333 A3 -.33333333 , A1 -.3333333 A2 .6666666 A3 -.33333333 ; CONTRAST 'Dummy-coded L' A1 1 A2 0 A3 -1 , A1 0 A2 1 A3 -1 ; CONTRAST 'Ortho-coded L' A1 .5 A2 .5 A3 -1 , A1 1 A2 -1 A3 0 ; CONTRAST 'Nonsense-coded L' A1 1 A2 4 A3 -5 , A1 5 A2 2 A3 -7 ; RUN ; QUIT ; ods rtf ; ods graphics on ; PROC GLM DATA=ONEWAY ORDER=INTERNAL ; TITLE3 'A as a CLASS variable in GLM' ; FORMAT A AFMT. ; CLASS A ; MODEL Y = A / SS3 EFFECTSIZE XPX SOLUTION P ; LSMEANS A / TDIFF ; LSMEANS A / TDIFF ADJUST=BON ; LSMEANS A / TDIFF ADJUST=SCHEFFE ; ESTIMATE 'A[1] v A[2]' A 1 -1 0 ; ESTIMATE 'A[1] v A[3]' A 1 0 -1 ; ESTIMATE 'A[2] v A[3]' A 0 1 -1 ; ESTIMATE '(A[1]+A[2]) v 2*A[3]' A 1 1 -2 ; ESTIMATE '(A[1]+A[2])/2 v A[3]' A .5 .5 -1 ; CONTRAST 'A[1] v A[2]' A 1 -1 0 ; CONTRAST 'A[1] v A[3]' A 1 0 -1 ; CONTRAST 'A[2] v A[3]' A 0 1 -1 ; CONTRAST '(A[1]+A[2]) v 2*A[3]' A 1 1 -2 ; CONTRAST '(A[1]+A[2])/2 v A[3]' A .5 .5 -1 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; ods graphics off ; ods rtf close ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR A Y YHAT E ; RUN ; GOPTIONS RESET=GLOBAL RESET=ALL NOBORDER COLORS=(BLACK) CTEXT=BLACK FTEXT=SWISSB HTEXT=3 CTITLE=BLACK FTITLE=SWISSB HTITLE=3 GUNIT=PCT ROTATE=PORTRAIT ; ods rtf ; ods graphics on ; PROC REG DATA=ONEWAY CORR SIMPLE USSCP ; TITLE3 'Effect Coding' ; VAR Y E1 E2 A ; EFFECT:MODEL Y = E1 E2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1 0 K = 1 0 1 1 -1 -1 ; A1_A2:TEST E1 - E2 = 0 ; A1_A3:TEST 2*E1 + E2 = 0 ; A2_A3:TEST E1 + 2*E2 = 0 ; A1A2_A3:TEST 3*E1 + 3*E2 = 0 ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT Y*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT P.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Residual by Observation Number' ; PLOT R.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=-1 to 1 BY .5 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ; PLOT Y*P. = 'P' / HAXIS=0 TO 9 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT Y*R. = 'R' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT P.*R. = '*' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by A' ; PLOT Y*A = '*' / HAXIS=1 TO 3 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL EDF MSE STATFONT=SWISSB STATHT=3 ; RUN ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; ods graphics off ; ods rtf close ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR E1 E2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT E1 E2 E ; RUN ; PROC REG DATA=ONEWAY CORR SIMPLE USSCP LINEPRINTER ; TITLE3 'Dummy Coding' ; DUMMY:MODEL Y = D1 D2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1 0 K = 1 0 1 1 0 0 ; A1_A2:TEST D1 - D2 = 0 ; A1_A3:TEST D1 = 0 ; A2_A3:TEST D2 = 0 ; A1A2_A3:TEST D1 + D2 = 0 ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT Y*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT P.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Residual by Observation Number' ; PLOT R.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=-1 to 1 BY .5 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ; PLOT Y*P. = 'P' / HAXIS=0 TO 9 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT Y*R. = 'R' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT P.*R. = '*' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR D1 D2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT D1 D2 E ; RUN ; PROC REG DATA=ONEWAY CORR SIMPLE USSCP LINEPRINTER ; TITLE3 'Orthogonal Coding' ; ORTHO:MODEL Y = O1 O2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1/3 1/2 K = 1 1/3 -1/2 1 -2/3 0 ; A1_A2:TEST O2 = 0 ; A1_A3:TEST O1 + .5*O2 = 0 ; A2_A3:TEST O1 - .5*O2 = 0 ; A1A2_A3:TEST 2*O1 = 0 ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT Y*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Observation Number' ; PLOT P.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Residual by Observation Number' ; PLOT R.*OBS. = '*' / HAXIS=1 TO 6 BY 1 VAXIS=-1 to 1 BY .5 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ; PLOT Y*P. = 'P' / HAXIS=0 TO 9 BY 1 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT Y*R. = 'R' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; TITLE4 'Plot of Predicted ' FONT=SWISSBI 'y' FONT=SWISSB ' by Residual' ; PLOT P.*R. = '*' / HAXIS=-1 TO 1 BY .5 VAXIS=0 TO 9 BY 1 NOMODEL NOSTAT ; RUN ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR O1 O2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT O1 O2 E ; RUN ; TITLE 'Unequal-n Oneway ANOVA' ; DATA UNEQUAL ; SET ONEWAY ; IF (A = 2 AND Y = 2) THEN DELETE ; IF (A = 2 AND Y = 4) THEN Y = 3 ; RUN ; PROC PRINT DATA=UNEQUAL NOOBS N ; TITLE3 'Data Listing' ; VAR Y A E1 E2 D1 D2 O1 O2 ; RUN ; PROC GLM DATA=UNEQUAL ORDER=INTERNAL ; TITLE3 'Means Model' ; MODEL Y = A1 A2 A3 / NOINT SS3 EFFECTSIZE XPX SOLUTION P ; CONTRAST 'Effect-coded L' A1 .6666666 A2 -.3333333 A3 -.33333333 , A1 -.3333333 A2 .6666666 A3 -.33333333 ; CONTRAST 'Dummy-coded L' A1 1 A2 0 A3 -1 , A1 0 A2 1 A3 -1 ; CONTRAST 'Ortho-coded L' A1 .5 A2 .5 A3 -1 , A1 1 A2 -1 A3 0 ; CONTRAST 'Nonsense-coded L' A1 1 A2 4 A3 -5 , A1 5 A2 2 A3 -7 ; RUN ; QUIT ; PROC GLM DATA=UNEQUAL ORDER=INTERNAL ; TITLE3 'A as a CLASS variable in GLM' ; FORMAT A AFMT. ; CLASS A ; MODEL Y = A / SS3 EFFECTSIZE XPX SOLUTION P ; LSMEANS A / TDIFF ; LSMEANS A / TDIFF ADJUST=BON ; LSMEANS A / TDIFF ADJUST=SCHEFFE ; CONTRAST '(A[1]+A[2])/2 v A[3]' A 1 1 -2 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR A Y YHAT E ; RUN ; PROC REG DATA=UNEQUAL CORR SIMPLE USSCP ; TITLE3 'Effect Coding' ; EFFECT:MODEL Y = E1 E2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1 0 K = 1 0 1 1 -1 -1 ; A1_A2:TEST E1 - E2 = 0 ; A1_A3:TEST 2*E1 + E2 = 0 ; A2_A3:TEST E1 + 2*E2 = 0 ; A1A2_A3:TEST 3*E1 + 3*E2 = 0 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR E1 E2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT E1 E2 E ; RUN ; PROC REG DATA=UNEQUAL CORR SIMPLE USSCP ; TITLE3 'Dummy Coding' ; DUMMY:MODEL Y = D1 D2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1 0 K = 1 0 1 1 0 0 ; A1_A2:TEST D1 - D2 = 0 ; A1_A3:TEST D1 = 0 ; A2_A3:TEST D2 = 0 ; A1A2_A3:TEST D1 + D2 = 0 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR D1 D2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT D1 D2 E ; RUN ; PROC REG DATA=UNEQUAL CORR SIMPLE USSCP ; TITLE3 'Orthogonal Coding' ; ORTHO:MODEL Y = O1 O2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1/3 1/2 K = 1 1/3 -1/2 1 -2/3 0 ; A1_A2:TEST O2 = 0 ; A1_A3:TEST O1 + .5*O2 = 0 ; A2_A3:TEST O1 - .5*O2 = 0 ; A1A2_A3:TEST 2*O1 = 0 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR O1 O2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT O1 O2 E ; RUN ; TITLE 'Unequal-n Oneway ANOVA' ; TITLE2 'Cell Weighting for the O coefficients' ; DATA ONEWAY ; SET ONEWAY ; * Code the predictor variables: ; SELECT (A) ; WHEN (1) DO ; O1 = 1/3 ; O2 = 1/2 ; END ; WHEN (2) DO ; O1 = 1/3 ; O2 = -1 ; END ; WHEN (3) DO ; O1 = -1/2 ; O2 = 0 ; END ; END ; RUN ; PROC PRINT DATA=UNEQUAL NOOBS N ; TITLE3 'Data Listing' ; VAR Y A O1 O2 ; RUN ; PROC REG DATA=UNEQUAL CORR SIMPLE USSCP ; TITLE3 'Orthogonal Coding' ; ORTHO:MODEL Y = O1 O2 / XPX I COLLIN CORRB COVB PCORR2 SCORR2 SS2 STB TOL VIF R ; * Calculate A = TK, where T = [1 -1 0], [1 0 -1], [0 1 -1], or [1 1 -2], respectively, and, 1 1/3 1/2 K = 1 1/3 -1 1 -1/2 0 ; A1_A2:TEST 1.5*O2 = 0 ; A1_A3:TEST .8333333*O1 + .5*O2 = 0 ; A2_A3:TEST .8333333*O1 - O2 = 0 ; A1A2_A3:TEST 1.6666667*O1 - .5*O2 = 0 ; OUTPUT OUT=CORRDATA P=YHAT R=E ; RUN ; QUIT ; DATA CORRDATA ; SET CORRDATA ; LABEL YHAT = 'Predicted Y' ; LABEL E = 'Error in Prediction' ; RUN ; PROC PRINT DATA=CORRDATA LABEL N ; TITLE3 'Data Listing' ; VAR O1 O2 Y YHAT E ; RUN ; PROC CORR DATA=CORRDATA COV CSSCP SSCP ; TITLE3 'Simple Pearson product-moment correlations' ; VAR Y YHAT O1 O2 E ; RUN ; TITLE 'Oneway ANOVA' ; TITLE2 'G, K, and L Matrix Operations' ; DATA KL ; INPUT Gmu Galpha1 Galpha2 Galpha3 Lmu Lalpha1 Lalpha2 Lalpha3 ; DATALINES ; 1 1 0 0 1 .3333333 .3333333 .3333333 1 0 1 0 0 .6666667 -.3333333 -.3333333 1 0 0 1 0 -.3333333 .6666667 -.3333333 ; RUN ; TITLE3 'Effect Coding' ; PROC IML ; RESET CENTER NONAME FW=6 SPACES=4 FUZZ ; USE KL ; THETA = { 4 , -3 , -1 , 4 } ; PRINT 'ANOVA Model Parameter Estimates theta' ,, THETA ; READ ALL VAR {Gmu Galpha1 Galpha2 Galpha3} INTO G ; PRINT 'Model Matrix G' ,, G ; MEANS = G*THETA ; PRINT 'Means = G*theta' ,, MEANS ; READ ALL VAR {Lmu Lalpha1 Lalpha2 Lalpha3} INTO L ; PRINT 'Contrast Matrix L' ,, L ; B = L*THETA ; PRINT 'Regression Parameter Estimates B = L*theta' ,, B ; K = G*L`*INV(L*L`) ; PRINT "Reduced Model Matrix K = G*L'*inverse(L*L')" ,, K [FORMAT=F10.0] ; QUIT ; DATA KL ; INPUT Gmu Galpha1 Galpha2 Galpha3 Lmu Lalpha1 Lalpha2 Lalpha3 ; DATALINES ; 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 -1 1 0 0 1 0 0 1 -1 ; RUN ; TITLE3 'Dummy Coding' ; PROC IML ; RESET CENTER NONAME FW=6 SPACES=4 FUZZ ; USE KL ; THETA = { 4 , -3 , -1 , 4 } ; PRINT 'ANOVA Model Parameter Estimates theta' ,, THETA ; READ ALL VAR {Gmu Galpha1 Galpha2 Galpha3} INTO G ; PRINT 'Model Matrix G' ,, G ; MEANS = G*THETA ; PRINT 'Means = G*theta' ,, MEANS ; READ ALL VAR {Lmu Lalpha1 Lalpha2 Lalpha3} INTO L ; PRINT 'Contrast Matrix L' ,, L ; B = L*THETA ; PRINT 'Regression Parameter Estimates B = L*theta' ,, B ; K = G*L`*INV(L*L`) ; PRINT "Reduced Model Matrix K = G*L'*inverse(L*L')" ,, K [FORMAT=F10.0] ; QUIT ; TITLE3 'Orthogonal Coding' ; DATA KL ; INPUT Gmu Galpha1 Galpha2 Galpha3 Lmu Lalpha1 Lalpha2 Lalpha3 ; DATALINES ; 1 1 0 0 1 .3333333 .3333333 .3333333 1 0 1 0 0 .5 .5 -1 1 0 0 1 0 1 -1 0 ; RUN ; PROC IML ; RESET CENTER NONAME FW=6 SPACES=4 FUZZ ; USE KL ; THETA = { 4 , -3 , -1 , 4 } ; PRINT 'ANOVA Model Parameter Estimates theta' ,, THETA ; READ ALL VAR {Gmu Galpha1 Galpha2 Galpha3} INTO G ; PRINT 'Model Matrix G' ,, G ; MEANS = G*THETA ; PRINT 'Means = G*theta' ,, MEANS ; READ ALL VAR {Lmu Lalpha1 Lalpha2 Lalpha3} INTO L ; PRINT 'Contrast Matrix L' ,, L ; B = L*THETA ; PRINT 'Regression Parameter Estimates B = L*theta' ,, B ; K = G*L`*INV(L*L`) ; PRINT "Reduced Model Matrix K = G*L'*inverse(L*L')" ,, K [FORMAT=F10.3] ; TITLE2 ; QUIT ; TITLE 'Equal-n Oneway ANOVA' ; PROC GLM DATA=ONEWAY ORDER=INTERNAL NOPRINT ; CLASS A ; MODEL Y = A ; LSMEANS A / OUT=LSMEANS ; RUN ; PROC PRINT DATA=LSMEANS NOOBS N ; TITLE3 'Data Listing' ; RUN ; PROC SORT DATA=LSMEANS ; BY A ; RUN ; /* GOPTIONS RESET=GLOBAL RESET=ALL NOBORDER COLORS=(BLACK) CTEXT=BLACK FTEXT=SWISSB HTEXT=3 CTITLE=BLACK FTITLE=SWISSB HTITLE=3 GUNIT=PCT ROTATE=PORTRAIT ; */ AXIS1 COLOR=BLACK LABEL=(FONT=SWISSB JUSTIFY=CENTER HEIGHT=3 'Levels of A') MAJOR=(COLOR=BLACK) MINOR=NONE OFFSET=(10,10) ORDER=(1 TO 3 BY 1) STYLE=1 VALUE=(COLOR=BLACK FONT=SWISSB HEIGHT=3 TICK=1 'A[1]' TICK=2 'A[2]' TICK=3 'A[3]') WIDTH=3 ; AXIS2 COLOR=BLACK LABEL=(ANGLE=90 FONT=SWISSB HEIGHT=3 'Mean Scores for ' FONT=SWISSBI 'y') MAJOR=(COLOR=BLACK) MINOR=(COLOR=BLACK NUMBER=1) ORDER=(0 TO 8 BY 1) STYLE=1 WIDTH=3 ; AXIS3 COLOR=BLACK LABEL=(ANGLE=90 FONT=SWISSB HEIGHT=3 'Mean Scores for ' FONT=SWISSBI 'y') MAJOR=(COLOR=BLACK) MINOR=(COLOR=BLACK NUMBER=1) ORDER=(-2 TO 11 BY 1) STYLE=1 WIDTH=3 ; SYMBOL1 COLOR=BLACK FONT=SPECIAL HEIGHT=3 I=JOIN LINE=1 VALUE=J WIDTH=3 ; SYMBOL2 COLOR=BLACK FONT=SPECIAL HEIGHT=3 I=JOIN LINE=2 VALUE=K WIDTH=3 ; SYMBOL3 COLOR=BLACK FONT=SPECIAL HEIGHT=3 I=STD2MT LINE=1 VALUE=J WIDTH=3 ; SYMBOL4 COLOR=BLACK FONT=SPECIAL HEIGHT=3 I=STD2PTBJ LINE=1 VALUE=J WIDTH=3 ; SYMBOL5 COLOR=BLACK FONT=SPECIAL HEIGHT=3 I=STD2PTJ LINE=1 VALUE=' ' WIDTH=3 ; PROC GCHART DATA=ONEWAY ; TITLE ; TITLE3 HEIGHT=3 JUSTIFY=CENTER 'Vertical Bar Graph of A Effect Group Means' ; FORMAT A AFMT. ; PATTERN1 VALUE=L3 COLOR=BLACK ; PATTERN2 VALUE=X3 COLOR=BLACK ; PATTERN3 VALUE=R3 COLOR=BLACK ; VBAR A / TYPE=MEAN DISCRETE LREF=2 NOFRAME OUTSIDE=MEAN PATTERNID=MIDPOINT REF=4 SPACE=10 SUMVAR=Y ; RUN ; PROC GCHART DATA=ONEWAY ; TITLE ; TITLE3 HEIGHT=3 JUSTIFY=CENTER 'Horizontal Bar Chart of A Effect Group Means' ; FORMAT A AFMT. ; PATTERN1 VALUE=L3 COLOR=BLACK ; PATTERN2 VALUE=X3 COLOR=BLACK ; PATTERN3 VALUE=R3 COLOR=BLACK ; HBAR A / TYPE=MEAN CLIPREF DISCRETE FREQLABEL='Group Frequencies' LREF=2 MEANLABEL='Group Means' NOFRAME PATTERNID=MIDPOINT REF=4 SUMVAR=Y ; RUN ; PROC GCHART DATA=ONEWAY ; TITLE ; TITLE3 HEIGHT=3 JUSTIFY=CENTER 'Block Chart of A Effect Group Means' ; FORMAT A AFMT. ; PATTERN1 VALUE=L3 COLOR=BLACK ; PATTERN2 VALUE=X3 COLOR=BLACK ; PATTERN3 VALUE=R3 COLOR=BLACK ; BLOCK A / DISCRETE NOHEADING PATTERNID=MIDPOINT SUMVAR=Y TYPE=MEAN ; RUN ; PROC GPLOT DATA=LSMEANS ; TITLE HEIGHT=3 'Plot of A Effect for ' FONT=SWISSBI 'y' ; PLOT LSMEAN*A=1 / NOFRAME HAXIS=AXIS1 VAXIS=AXIS2 ; RUN ; PROC GPLOT DATA=ONEWAY ; TITLE HEIGHT=3 'Plot of Observations as a function of the A Effect' ; TITLE3 HEIGHT=3 'ñ2 Cell Standard Deviations around the Group Means' ; PLOT Y*A=3 / NOFRAME HAXIS=AXIS1 VAXIS=AXIS3 ; RUN ; PROC GPLOT DATA=ONEWAY ; TITLE HEIGHT=3 'Plot of Observations as a function of the A Effect' ; TITLE3 HEIGHT=3 'ñ2 Pooled Standard Deviations around the Group Means' ; PLOT Y*A=4 / NOFRAME HAXIS=AXIS1 VAXIS=AXIS3 ; RUN ; DATA SUMMARY ; INPUT Y A ; CARDS ; 1.57735 1 0.42265 1 3.57735 2 2.42265 2 8.57735 3 7.42265 3 ; PROC GPLOT DATA=SUMMARY ; TITLE HEIGHT=3 'Plot of the A Effect Means' ; TITLE3 HEIGHT=3 'ñ2 Standard Errors' ; PLOT Y*A=5 / NOFRAME HAXIS=AXIS1 VAXIS=AXIS3 ; RUN ; GOPTIONS RESET=ALL ROTATE=PORTRAIT ; RUN ; QUIT ;