Example 30.5: Three-Way Analysis of Variance with Contrasts
This example uses data from Cochran and Cox (1957, p. 176)
to illustrate the analysis of a three-way factorial design with
replication, including the use of the CONTRAST statement with interactions,
the OUTSTAT= data set, and the SLICE= option in the LSMEANS statement.
The object of the study is to determine the
effects of electric current on denervated muscle.
The variables are
- Rep
- the replicate number, 1 or 2
- Time
- the length of time the current is applied to the muscle,
ranging from 1 to 4
- Current
- the level of electric current applied, ranging from 1 to 4
- Number
- the number of treatments per day, ranging from 1 to 3
- MuscleWeight
- the weight of the denervated muscle
The following code produces Output 30.5.1
through Output 30.5.4.
data muscles;
do Rep=1 to 2;
do Time=1 to 4;
do Current=1 to 4;
do Number=1 to 3;
input MuscleWeight @@;
output;
end;
end;
end;
end;
datalines;
72 74 69 61 61 65 62 65 70 85 76 61
67 52 62 60 55 59 64 65 64 67 72 60
57 66 72 72 43 43 63 66 72 56 75 92
57 56 78 60 63 58 61 79 68 73 86 71
46 74 58 60 64 52 71 64 71 53 65 66
44 58 54 57 55 51 62 61 79 60 78 82
53 50 61 56 57 56 56 56 71 56 58 69
46 55 64 56 55 57 64 66 62 59 58 88
;
proc glm outstat=summary;
class Rep Current Time Number;
model MuscleWeight = Rep Current|Time|Number;
contrast 'Time in Current 3'
Time 1 0 0 -1 Current*Time 0 0 0 0 0 0 0 0 1 0 0 -1,
Time 0 1 0 -1 Current*Time 0 0 0 0 0 0 0 0 0 1 0 -1,
Time 0 0 1 -1 Current*Time 0 0 0 0 0 0 0 0 0 0 1 -1;
contrast 'Current 1 versus 2' Current 1 -1;
lsmeans Current*Time / slice=Current;
run;
proc print data=summary;
run;
The first CONTRAST statement examines the
effects of Time within level 3 of Current. This is also called the
simple effect of Time within Current*Time.
Note that, since there are three degrees of
freedom, it is necessary to specify three rows
in the CONTRAST statement, separated by commas.
Since the parameterization that PROC GLM uses is determined in
part by the ordering of the variables in the CLASS statement,
Current is specified before Time so that the Time parameters
are nested within the Current*Time parameters; thus, the
Current*Time contrast coefficients in each row
are simply the Time
coefficients of that row within the appropriate level of Current.
The second CONTRAST statement isolates a single
degree of freedom effect corresponding to the
difference between the first two levels of Current.
You can use such a contrast in a large experiment where
certain preplanned comparisons are important, but you want
to take advantage of the additional error degrees of freedom
available when all levels of the factors are considered.
The LSMEANS statement with the SLICE= option is an alternative
way to test for the simple effect of Time within
Current*Time.
In addition to listing the LS-means for each current strength and
length of time, it gives a table of F-tests for differences
between the LS-means across Time within each Current level. In
some cases, this can be a way to disentangle a complex interaction.
Output 30.5.1: Overall Analysis
Class Level Information |
Class |
Levels |
Values |
Rep |
2 |
1 2 |
Current |
4 |
1 2 3 4 |
Time |
4 |
1 2 3 4 |
Number |
3 |
1 2 3 |
Number of observations |
96 |
The GLM Procedure |
Dependent Variable: MuscleWeight |
Source |
DF |
Sum of Squares |
Mean Square |
F Value |
Pr > F |
Model |
48 |
5782.916667 |
120.477431 |
1.77 |
0.0261 |
Error |
47 |
3199.489583 |
68.074246 |
|
|
Corrected Total |
95 |
8982.406250 |
|
|
|
R-Square |
Coeff Var |
Root MSE |
MuscleWeight Mean |
0.643805 |
13.05105 |
8.250712 |
63.21875 |
|
The output, shown in Output 30.5.2 and Output 30.5.3,
indicates that the main
effects for Rep, Current, and Number are significant
(with p-values of 0.0045, <0.0001, and 0.0461,
respectively), but Time
is not significant, indicating that, in general, it doesn't matter how
long the current is applied. None of the interaction terms are
significant, nor are the contrasts significant. Notice that the
row in the sliced ANOVA table corresponding to level 3 of current
matches the "Time in Current 3" contrast.
Output 30.5.2: Individual Effects and Contrasts
The GLM Procedure |
Dependent Variable: MuscleWeight |
Source |
DF |
Type I SS |
Mean Square |
F Value |
Pr > F |
Rep |
1 |
605.010417 |
605.010417 |
8.89 |
0.0045 |
Current |
3 |
2145.447917 |
715.149306 |
10.51 |
<.0001 |
Time |
3 |
223.114583 |
74.371528 |
1.09 |
0.3616 |
Current*Time |
9 |
298.677083 |
33.186343 |
0.49 |
0.8756 |
Number |
2 |
447.437500 |
223.718750 |
3.29 |
0.0461 |
Current*Number |
6 |
644.395833 |
107.399306 |
1.58 |
0.1747 |
Time*Number |
6 |
367.979167 |
61.329861 |
0.90 |
0.5023 |
Current*Time*Number |
18 |
1050.854167 |
58.380787 |
0.86 |
0.6276 |
Source |
DF |
Type III SS |
Mean Square |
F Value |
Pr > F |
Rep |
1 |
605.010417 |
605.010417 |
8.89 |
0.0045 |
Current |
3 |
2145.447917 |
715.149306 |
10.51 |
<.0001 |
Time |
3 |
223.114583 |
74.371528 |
1.09 |
0.3616 |
Current*Time |
9 |
298.677083 |
33.186343 |
0.49 |
0.8756 |
Number |
2 |
447.437500 |
223.718750 |
3.29 |
0.0461 |
Current*Number |
6 |
644.395833 |
107.399306 |
1.58 |
0.1747 |
Time*Number |
6 |
367.979167 |
61.329861 |
0.90 |
0.5023 |
Current*Time*Number |
18 |
1050.854167 |
58.380787 |
0.86 |
0.6276 |
Contrast |
DF |
Contrast SS |
Mean Square |
F Value |
Pr > F |
Time in Current 3 |
3 |
34.83333333 |
11.61111111 |
0.17 |
0.9157 |
Current 1 versus 2 |
1 |
99.18750000 |
99.18750000 |
1.46 |
0.2334 |
|
Output 30.5.3: Simple Effects of Time
The GLM Procedure |
Least Squares Means |
Current*Time Effect Sliced by Current for MuscleWeight |
Current |
DF |
Sum of Squares |
Mean Square |
F Value |
Pr > F |
1 |
3 |
271.458333 |
90.486111 |
1.33 |
0.2761 |
2 |
3 |
120.666667 |
40.222222 |
0.59 |
0.6241 |
3 |
3 |
34.833333 |
11.611111 |
0.17 |
0.9157 |
4 |
3 |
94.833333 |
31.611111 |
0.46 |
0.7085 |
|
The SS, F statistics, and p-values can be stored in an OUTSTAT= data set,
as shown in Output 30.5.4.
Output 30.5.4: Contents of the OUTSTAT= Data Set
Obs |
_NAME_ |
_SOURCE_ |
_TYPE_ |
DF |
SS |
F |
PROB |
1 |
MuscleWeight |
ERROR |
ERROR |
47 |
3199.49 |
. |
. |
2 |
MuscleWeight |
Rep |
SS1 |
1 |
605.01 |
8.8875 |
0.00454 |
3 |
MuscleWeight |
Current |
SS1 |
3 |
2145.45 |
10.5054 |
0.00002 |
4 |
MuscleWeight |
Time |
SS1 |
3 |
223.11 |
1.0925 |
0.36159 |
5 |
MuscleWeight |
Current*Time |
SS1 |
9 |
298.68 |
0.4875 |
0.87562 |
6 |
MuscleWeight |
Number |
SS1 |
2 |
447.44 |
3.2864 |
0.04614 |
7 |
MuscleWeight |
Current*Number |
SS1 |
6 |
644.40 |
1.5777 |
0.17468 |
8 |
MuscleWeight |
Time*Number |
SS1 |
6 |
367.98 |
0.9009 |
0.50231 |
9 |
MuscleWeight |
Current*Time*Number |
SS1 |
18 |
1050.85 |
0.8576 |
0.62757 |
10 |
MuscleWeight |
Rep |
SS3 |
1 |
605.01 |
8.8875 |
0.00454 |
11 |
MuscleWeight |
Current |
SS3 |
3 |
2145.45 |
10.5054 |
0.00002 |
12 |
MuscleWeight |
Time |
SS3 |
3 |
223.11 |
1.0925 |
0.36159 |
13 |
MuscleWeight |
Current*Time |
SS3 |
9 |
298.68 |
0.4875 |
0.87562 |
14 |
MuscleWeight |
Number |
SS3 |
2 |
447.44 |
3.2864 |
0.04614 |
15 |
MuscleWeight |
Current*Number |
SS3 |
6 |
644.40 |
1.5777 |
0.17468 |
16 |
MuscleWeight |
Time*Number |
SS3 |
6 |
367.98 |
0.9009 |
0.50231 |
17 |
MuscleWeight |
Current*Time*Number |
SS3 |
18 |
1050.85 |
0.8576 |
0.62757 |
18 |
MuscleWeight |
Time in Current 3 |
CONTRAST |
3 |
34.83 |
0.1706 |
0.91574 |
19 |
MuscleWeight |
Current 1 versus 2 |
CONTRAST |
1 |
99.19 |
1.4570 |
0.23344 |
|
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.