This page was adapted from a page created by Oliver Schabenberger. We thank
Professor Schabenberger for permission to adapt and distribute this page via our web site.
Introduction
Physical Slicing
Slicing
without separating the data
Slicing in PROC MIXED vs. GLM
Comparing cell
means in the presence of significant interactions
In PROC GLM
In PROC MIXED (preferred)
Slicing three-way and
higher order interactions
In factorial experiments significant
interactions are perceived as a real problem. Some analysts feel that the significance of
an interaction is detrimental to interpretation of the results. These fears are unfounded.
A problem in the past has been that little guidance and tools were available to proceed
with post-ANOVA procedures in the presence of significant interactions. This has
dramatically changed with recent implementations in The SAS System. The purpose of this
page is to introduce the interested reader to the technique of slicing, the
interpretation of effect slices and appropriate post-ANOVA procedures in light of
significant interactions. Among statisticians the term slicing is not common. It is
actually derived from SAS parlance. The correct terms for the procedure are simple
effects or simple main effects.
If factors A and B interact one interpretation
is as a lack of additivity. This stems from the linear model representation of the
factorial treatment and design structure. If two factors act independently on the outcome
of an experiment, their contributions are additive. A makes its contribution independent
of B and you can add the two up to assess their joint effect. If an interaction between A
and B is present this additivity no longer applies. You have to know the particular level
of B to assess the effects of A and vice versa. An alternative interpretation is
Comparisons among the levels of A depend on
the level of B they are performed at;
Comparisons among the levels of B depend on the
level of A they are performed at.
If, for example, A refers to different locations
and B to a treatment factor, their interaction implies that there may be differences among
the B levels (= a treatment effect) at some locations, while a treatment effect is absent
at others. Consequently, one should look at the treatment comparisons separately by
location.
A physical slice implies breaking the data set
into separate parts. If there are three locations (factor A) and four treatment levels
(factor B) you separate the data into three different sets and run one-way ANOVAs for each
location. In SAS this is done easily with by-processing, e.g.,
data exper1;
input block location treat y;
datalines;
<data goes here>
;
run;
proc sort data=exper1; by location; run;
proc glm data=exper1;
class block treat;
model y = block treat;
by location;
run;
What are the disadvantages of physical
slicing?
1. The power of an ANOVA F-test is a function of
the error degrees of freedom, i.e., the amount of information used to estimate the error
mean square. By physically slicing by locations, each analysis contributes only 1/3 of the
total information (if there are three locations). The error degrees of freedom will be
dramatically reduced and the individual analyses are more powerless as the combined
analysis in which the interaction was detected.
2. physically slicing is a lot of work. You have to
run many individual analyses which then need to be combined somehow for a meaningful joint
interpretation
Slicing without separating the data
The technique we are aiming for does not
separate the data but generates the appropriate tests in one analysis. Detection of the
significant interaction and its slicing is all done in a single step. This is actually
very easy with the newer releases of The SAS System (Version 6.11 and later releases).
Example: An experiment was conducted to assess
electrolyte leakage from four different tissue types upon freezing. The experiment was a
completely randomized design with a two-factor treatment structure. factor Temperature has
eight levels, factor Tssue Type has four levels. The next table shows the two-way (cell)
means:
————————————–
| |
Tissue Type
|
| |---------------------------|
| | 1 | 2
| 3 | 4 |
|--------+------+------+------+------|
|Tempera-| | |
| |
|ture | |
| |
|
|--------| | |
| |
|-8 | 96.8| 81.5| 61.8| 98.3|
|--------+------+------+------+------|
|-7 | 87.0| 58.6| 43.6| 96.7|
|--------+------+------+------+------|
|-6 | 72.6| 51.7| 33.6| 89.5|
|--------+------+------+------+------|
|-5 | 51.5| 33.7| 25.0| 75.4|
|--------+------+------+------+------|
|-4 | 36.6| 25.5| 15.9| 64.4|
|--------+------+------+------+------|
|-3 | 23.9| 7.4| 14.7|
17.1|
|--------+------+------+------+------|
|-2 | 17.0| 7.2| 11.8|
15.7|
|--------+------+------+------+------|
|0 | 4.6| 3.5|
6.5| 4.1|
--------------------------------------
With decreasing temperatures leakage increases
for any tissue type. The increments are not the same, however.
Plot of LEAK*TEMP. Symbol is value of
TISSUE.
100
4
4 1
4 1
2
75
4 1
L
e
4
3
a
2
k 50
1 2
a
3
g
1
e
2 3
25
1 2 3
1
4 3
3
3
1
2 2
0
-----------------------------------------------------
0 -1
-2 -3 -4 -5
-6 -7 -8
Temperature
NOTE: 4 obs hidden.
With decreasing temperature leakage separates
more and more among the tissue types. There appears to be an interaction between
temperature and tissue types: a comparison of tissue types depends on what temperature it
is performed at. At -2 degrees, the tissue types may not be significantly different, at -7
degrees they may.
To verify whether there is an interaction, run a
two-way ANOVA
proc glm data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
run; quit;
with abridged output:
General Linear Models Procedure
Class Level Information
Class Levels Values
TISSUE 4 1 2 3 4
TEMP 8 0 -2 -3
-4 -5 -6 -7 -8
Number of observations in data set = 160
Source DF Sum of Squares
Mean Square F Value
Pr > F
Model 31 158585.4375175
5115.6592748 48.70
0.0001
Error 128 13444.5222800
105.0353303
Total 159 172029.9597975
Source DF
Type III SS Mean Square F Value
Pr > F
TISSUE 3
23847.0616725 7949.0205575
75.68 0.0001
TEMP 7
121221.3735775 17317.3390825
164.87 0.0001
TISSUE*TEMP 21 13517.0022675
643.6667746 6.13
0.0001
The interaction is significant at all reasonable
Type-I error levels. To compare the tissue types separately for each temperature, slice
the interaction by temperatures:
proc glm data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
lsmeans tissue*temp / slice=temp;
run;
The additional output table this produces is:
TISSUE*TEMP Effect Sliced by TEMP for LEAK
Sum of Mean
TEMP DF Squares
Square
F Value Pr > F
0 3
25.533695
8.511232
0.0810 0.9702
-2 3
288.976095 96.325365
0.9171 0.4347
-3 3
696.837335
232.279112 2.2114 0.0899
-4 3
6589.763440 2196.587813
20.9128 0.0001
-5 3
7427.236375 2475.745458
23.5706 0.0001
-6 3
8898.054000 2966.018000
28.2383 0.0001
-7 3
9107.437500 3035.812500
28.9028 0.0001
-8 3
4330.225500 1443.408500
13.7421 0.0001
Each row of this table corresponds to a
comparison of tissue types at a certain temperature. At 0 degrees, there is no difference
of the tissue types (P=0.9702). At -2 degrees centigrade the p-value has dropped tp
0.4347, but not sufficiently to declare significance. Continuing, one finds that at th 5%
significance level at -4 degrees centigrade the tissue types first show significantly
different electrolyte leakage.
It is important to note that these analyses are
based on a total of 128 error degrees of freedom and a error mean square estimate of
105.03. This is the error from the overall analysis. For example the F statistic for
testing tissue effects at -3 degrees is 232.279/105.03 = 2.2114.
If you perform separate analyses by
temperatures;
proc sort data=leakage; by temp; run;
proc glm data=leakage;
class tissue;
model leak = tissue;
by temp;
run; quit;
and list the sum of squares for tissue effects,
you get
Temp Source DF
Type I SS
0 TISSUE 3
25.53369500
-2 TISSUE 3
288.97609500
-3 TISSUE 3
696.83733500
-4 TISSUE 3
6589.76344000
-5 TISSUE 3
7427.23637500
-6 TISSUE 3
8898.05400000
-7 TISSUE 3
9107.43750000
-8 TISSUE 3
4330.22550000
Notice that the sum of squares for the separate
tissue main effects are identical to the slice sum of squares.
You can slice interactions in PROC GLM or PROC
MIXED (which I prefer). The output produced by the SLICE option of PROC MIXED differs
slightly from that of PROC GLM. The statements
proc mixed data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
lsmeans tissue*temp / slice=temp;
run;
produce the Table of Effect Slices:
Tests of Effect Slices
Effect TEMP NDF DDF
F Pr > F
TISSUE*TEMP 0 3 128
0.08 0.9702
TISSUE*TEMP -2 3 128
0.92 0.4347
TISSUE*TEMP -3 3 128
2.21 0.0899
TISSUE*TEMP -4 3 128
20.91 0.0001
TISSUE*TEMP -5 3 128
23.57 0.0001
TISSUE*TEMP -6 3 128
28.24 0.0001
TISSUE*TEMP -7 3 128
28.90 0.0001
TISSUE*TEMP -8 3 128
13.74 0.0001
The first column refers to the effect being
sliced. The second column to the level at which a comparison is being performed. The
second row, for example, refers to a comparison at -2 degree centigrade. Since the Effect
being sliced is TISSUE*TEMP the levels being compared are the four tissue types. This is
also obvious from the NDF (=numerator degrees of freedom) column (four tissue types – 1 =
3 ndf). Notice that the F- and p-values are identical to those from PROC GLM.
PROC MIXED has one definite advantage over PROC
GLM. Its LSMEANS statement permits the very powerful DIFF option. More on this in the next
section.
Comparing
Cell Means in the Presence of Significant Interactions
If a main effect is significant and not masked
by an interaction, we usually proceed with post-ANOVA procedures, comparing marginal
means in pairs (either all pairs or all means against a control or some such thing). If
interactions are significant, cell means should be compared instead, since the
marginal means may not properly represent the treatment differences at the various levels
of a factor. Looking at the table of effect slices from the leakage example,
Effect TEMP NDF DDF
F Pr > F
TISSUE*TEMP 0 3 128
0.08 0.9702
TISSUE*TEMP -2 3 128
0.92 0.4347
TISSUE*TEMP -3 3 128
2.21 0.0899
TISSUE*TEMP -4 3 128
20.91 0.0001
TISSUE*TEMP -5 3 128
23.57 0.0001
TISSUE*TEMP -6 3 128
28.24 0.0001
TISSUE*TEMP -7 3 128
28.90 0.0001
TISSUE*TEMP -8 3 128
13.74 0.0001
one would concentrate on
comparing the cell means for temperatures below -4 degrees centigrade, since there appear
to be no differences (at the 5% level) for higher temperatures.
Cell means are reasonably compared only as simple
effects. A simple effect is a comparison in which all but one factor are fixed at a
certain level. For example a comparison likeTemp(-2),Tissue(1)
versus Temp(-5),Tissue(4)is not really
meaningful since both factors are varied. Valid simple effects in this example could be
Temp(-2),Tissue(1) versus Temp(-2),Tissue(4)
Temp(-3),Tissue(1) versus Temp(-5),Tissue(1).
In PROC GLM you can
request these comparisons with the PDIFF option of the LSMEANS statement. The MEANS
statement which is used for main effects multiple comparisons will not work for
interactions (rightfully so).
For example,
proc glm data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
lsmeans tissue*temp / pdiff;
run;
The output produced in addition to the regular ANOVA table is as follows:
General Linear Models Procedure
Least Squares Means
TISSUE TEMP LEAK
LSMEAN
LSMEAN Number
1 0
4.6320000 1
1 -2
17.0000000 2
1 -3
23.8800000 3
1 -4
36.6480000 4
1 -5
51.4500000 5
1 -6
72.6000000 6
1 -7
86.9600000 7
1 -8
96.8000000 8
2 0
3.4780000 9
2 -2
7.2280000 10
2 -3
7.3540000 11
2 -4
25.4800000 12
2 -5
33.7000000 13
2 -6
51.7200000 14
2 -7
58.6200000 15
2 -8
81.4600000 16
3 0
6.5080000 17
3 -2
11.8400000 18
3 -3
14.7400000 19
3 -4
15.9200000 20
3 -5
24.9800000 21
3 -6
33.6400000 22
3 -7
43.5800000 23
3 -8
61.7800000 24
4 0
4.1160000 25
4 -2
15.6740000 26
4 -3
17.0760000 27
4 -4
64.3600000 28
4 -5
75.3800000 29
4 -6
89.5200000 30
4 -7
96.7400000 31
4 -8
98.2600000 32
Pr > |T| H0: LSMEAN(i)=LSMEAN(j)
i/j 1 2
3 4
5 6
7 8
1 . 0.0586 0.0036
0.0001 0.0001 0.0001 0.0001 0.0001
2 0.0586 . 0.2905
0.0029 0.0001 0.0001 0.0001 0.0001
3 0.0036 0.2905 .
0.0510 0.0001 0.0001 0.0001 0.0001
4 0.0001 0.0029 0.0510 .
0.0240 0.0001 0.0001 0.0001
5 0.0001 0.0001 0.0001 0.0240 .
0.0014 0.0001 0.0001
6 0.0001 0.0001 0.0001 0.0001 0.0014
. 0.0285 0.0003
7 0.0001 0.0001 0.0001 0.0001 0.0001
0.0285 . 0.1315
8 0.0001 0.0001 0.0001 0.0001 0.0001
0.0003 0.1315 .
9 0.8590 0.0390 0.0020 0.0001 0.0001
0.0001 0.0001 0.0001
10 0.6895 0.1341 0.0113 0.0001 0.0001
0.0001 0.0001 0.0001
11 0.6752 0.1392 0.0120 0.0001 0.0001
0.0001 0.0001 0.0001
12 0.0016 0.1931 0.8054 0.0873 0.0001
0.0001 0.0001 0.0001
13 0.0001 0.0111 0.1322 0.6500 0.0071
0.0001 0.0001 0.0001
14 0.0001 0.0001 0.0001 0.0216 0.9668
0.0016 0.0001 0.0001
15 0.0001 0.0001 0.0001 0.0009 0.2707
0.0329 0.0001 0.0001
16 0.0001 0.0001 0.0001 0.0001 0.0001 0.1741
0.3977 0.0195
17 0.7727 0.1080 0.0083 0.0001 0.0001
0.0001 0.0001 0.0001
18 0.2682 0.4275 0.0655 0.0002 0.0001
0.0001 0.0001 0.0001
19 0.1214 0.7279 0.1609 0.0010 0.0001
0.0001 0.0001 0.0001
20 0.0840 0.8679 0.2217 0.0017 0.0001
0.0001 0.0001 0.0001
21 0.0021 0.2205 0.8655 0.0742 0.0001
0.0001 0.0001 0.0001
22 0.0001 0.0114 0.1346 0.6434 0.0069
0.0001 0.0001 0.0001
23 0.0001 0.0001 0.0029 0.2869 0.2269
0.0001 0.0001 0.0001
24 0.0001 0.0001 0.0001 0.0002 0.1135
0.0975 0.0002 0.0001
25 0.9367 0.0490 0.0028 0.0001 0.0001
0.0001 0.0001 0.0001
26 0.0909 0.8382 0.2078 0.0015 0.0001
0.0001 0.0001 0.0001
27 0.0571 0.9907 0.2958 0.0031 0.0001
0.0001 0.0001 0.0001
28 0.0001 0.0001 0.0001 0.0001 0.0485
0.2059 0.0007 0.0001
29 0.0001 0.0001 0.0001 0.0001 0.0003
0.6687 0.0764 0.0012
30 0.0001 0.0001 0.0001 0.0001 0.0001
0.0101 0.6935 0.2635
31 0.0001 0.0001 0.0001 0.0001 0.0001
0.0003 0.1338 0.9926
32 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0837 0.8221
Pr > |T| H0: LSMEAN(i)=LSMEAN(j)
i/j 9 10
11 12
13 14
15 16
1 0.8590 0.6895 0.6752 0.0016 0.0001
0.0001 0.0001 0.0001
2 0.0390 0.1341 0.1392 0.1931 0.0111
0.0001 0.0001 0.0001
3 0.0020 0.0113 0.0120 0.8054 0.1322
0.0001 0.0001 0.0001
4 0.0001 0.0001 0.0001 0.0873 0.6500
0.0216 0.0009 0.0001
5 0.0001 0.0001 0.0001 0.0001 0.0071
0.9668 0.2707 0.0001
6 0.0001 0.0001 0.0001 0.0001 0.0001
0.0016 0.0329 0.1741
7 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0001 0.3977
8 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0001 0.0195
9 . 0.5639 0.5509
0.0009 0.0001 0.0001 0.0001 0.0001
10 0.5639 . 0.9845 0.0056
0.0001 0.0001 0.0001 0.0001
11 0.5509 0.9845 . 0.0060
0.0001 0.0001 0.0001 0.0001
12 0.0009 0.0056 0.0060 .
0.2070 0.0001 0.0001 0.0001
13 0.0001 0.0001 0.0001 0.2070 .
0.0063 0.0002 0.0001
14 0.0001 0.0001 0.0001 0.0001 0.0063
. 0.2891 0.0001
15 0.0001 0.0001 0.0001 0.0001 0.0002
0.2891 . 0.0006
16 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0006 .
17 0.6410 0.9117 0.8964 0.0041 0.0001
0.0001 0.0001 0.0001
18 0.1994 0.4781 0.4901 0.0373 0.0010
0.0001 0.0001 0.0001
19 0.0847 0.2486 0.2566 0.1000 0.0041
0.0001 0.0001 0.0001
20 0.0571 0.1823 0.1887 0.1427 0.0070
0.0001 0.0001 0.0001
21 0.0012 0.0070 0.0075 0.9386 0.1809
0.0001 0.0001 0.0001
22 0.0001 0.0001 0.0001 0.2104 0.9926
0.0061 0.0002 0.0001
23 0.0001 0.0001 0.0001 0.0060 0.1299
0.2115 0.0219 0.0001
24 0.0001 0.0001 0.0001 0.0001 0.0001
0.1231 0.6267 0.0029
25 0.9217 0.6320 0.6182 0.0013 0.0001
0.0001 0.0001 0.0001
26 0.0622 0.1949 0.2016 0.1328 0.0062
0.0001 0.0001 0.0001
27 0.0379 0.1311 0.1361 0.1971 0.0115
0.0001 0.0001 0.0001
28 0.0001 0.0001 0.0001 0.0001 0.0001
0.0534 0.3775 0.0094
29 0.0001 0.0001 0.0001 0.0001 0.0001
0.0004 0.0108 0.3500
30 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0001 0.2160
31 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0001 0.0199
32 0.0001 0.0001 0.0001 0.0001 0.0001
0.0001 0.0001 0.0107
and so forth. The total matrix of all
comparisons is of dimension 32*32 since there are 8*4=32 total treatments. Most of the
comparisons for which this two-dimensional table contains p-values should be ignored,
since they do not correspond to simple effects. To locate the comparisons of interest,
first locate the numbers for the means in question in the LSMEANS list. then locate the
row and column (or vice versa) for this comparison in the table of p-values. For example,
to find out which tissue types differ significantly from each other at -4 degrees
centigrade, the temperature at which a tissue effect was first found, locate the means
TISSUE TEMP LEAK
LSMEAN
LSMEAN Number
1 -4
36.6480000 4
2 -4
25.4800000 12
3 -4
15.9200000 20
4 -4
64.3600000 28
in the table above. To test
Ho: at -4 degrees there is no difference between tissue
types 1 and 2,locate the p-value in row 4,
column 12 or column 12, row 4. The p-value is 0.0873.
Tissue vs Tissue at Temp Row Column p-value
1 2
-4 12
4 0.0873
1 3
-4 20
4 0.0017
1 4
-4 28
4 0.0001
2 3
-4 20
12 0.1427
2 4
-4 28
12 0.0001
3 4
-4 28
20 0.0001 (not shown)
Comparing cell
means in PROC MIXED is much more convenient compared to PROC GLM. The reason is that PROC
MIXED displays the results in a more user friendly manner. the statements
proc mixed data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
lsmeans tissue*temp / diff;
run;
accomplish this. Notice that the option is DIFF,
not PDIFF. The LSMEANS statement of PROC GLM does not have a DIFF option and the LSMEANS
statement of PROC MIXED does not have a PDIFF option. The portion of the output generated
by the DIFF option is
Std
Effect TISSUE TEMP _TISSUE _TEMP Difference
Error DF t Pr > |t|
TISSUE*TEMP 1 0
1 -2 -12.37
6.48 128 -1.91 0.0586
TISSUE*TEMP 1 0
1 -3 -19.25
6.48 128 -2.97 0.0036
TISSUE*TEMP 1 0
1 -4 -32.02
6.48 128 -4.94 0.0001
TISSUE*TEMP 1 0
1 -5 -46.82
6.48 128 -7.22 0.0001
TISSUE*TEMP 1 0
1 -6 -67.97
6.48 128 -10.49 0.0001
TISSUE*TEMP 1 0
1 -7 -82.33
6.48 128 -12.70 0.0001
TISSUE*TEMP 1 0
1 -8 -92.17
6.48 128 -14.22 0.0001
TISSUE*TEMP 1 0
2 0
1.15 6.48 128
0.18 0.8590
TISSUE*TEMP 1 0
2 -2
-2.60 6.48 128 -0.40 0.6895
TISSUE*TEMP 1 0
2 -3
-2.72 6.48 128 -0.42 0.6752
TISSUE*TEMP 1 0
2 -4 -20.85
6.48 128 -3.22 0.0016
TISSUE*TEMP 1 0
2 -5 -29.07
6.48 128 -4.48 0.0001
TISSUE*TEMP 1 0
2 -6 -47.09
6.48 128 -7.26 0.0001
TISSUE*TEMP 1 0
2 -7 -53.99
6.48 128 -8.33 0.0001
TISSUE*TEMP 1 0
2 -8 -76.83
6.48 128 -11.85 0.0001
TISSUE*TEMP 1 0
3 0
-1.88 6.48 128 -0.29
0.7727
TISSUE*TEMP 1 0
3 -2
-7.21 6.48 128 -1.11 0.2682
TISSUE*TEMP 1 0
3 -3 -10.11
6.48 128 -1.56 0.1214
TISSUE*TEMP 1 0
3 -4 -11.29
6.48 128 -1.74 0.0840
TISSUE*TEMP 1 0
3 -5 -20.35
6.48 128 -3.14 0.0021
TISSUE*TEMP 1 0
3 -6 -29.01
6.48 128 -4.48 0.0001
TISSUE*TEMP 1 0
3 -7 -38.95
6.48 128 -6.01 0.0001
TISSUE*TEMP 1 0
3 -8 -57.15
6.48 128 -8.82 0.0001
TISSUE*TEMP 1 0
4 0
0.52 6.48 128
0.08 0.9367
TISSUE*TEMP 1 0
4 -2 -11.04
6.48 128 -1.70 0.0909
TISSUE*TEMP 1 0
4 -3 -12.44
6.48 128 -1.92 0.0571
TISSUE*TEMP 1 0
4 -4 -59.73
6.48 128 -9.21 0.0001
TISSUE*TEMP 1 0
4 -5 -70.75
6.48 128 -10.91 0.0001
TISSUE*TEMP 1 0
4 -6 -84.89
6.48 128 -13.10 0.0001
TISSUE*TEMP 1 0
4 -7 -92.11
6.48 128 -14.21 0.0001
TISSUE*TEMP 1 0
4 -8 -93.63
6.48 128 -14.44 0.0001
TISSUE*TEMP 1 -2
1 -3 -6.88
6.48 128 -1.06 0.2905
TISSUE*TEMP 1 -2
1 -4 -19.65
6.48 128 -3.03 0.0029
TISSUE*TEMP 1 -2
1 -5 -34.45
6.48 128 -5.31 0.0001
TISSUE*TEMP 1 -2
1 -6 -55.60
6.48 128 -8.58 0.0001
TISSUE*TEMP 1 -2
1 -7 -69.96
6.48 128 -10.79 0.0001
TISSUE*TEMP 1 -2
1 -8 -79.80
6.48 128 -12.31 0.0001
TISSUE*TEMP 1 -2
2 0
13.52 6.48 128 2.09 0.0390
TISSUE*TEMP 1 -2
2 -2
9.77 6.48 128 1.51 0.1341
TISSUE*TEMP 1 -2
2 -3
9.65 6.48 128 1.49 0.1392
TISSUE*TEMP 1 -2
2 -4 -8.48
6.48 128 -1.31 0.1931
TISSUE*TEMP 1 -2
2 -5 -16.70
6.48 128 -2.58 0.0111
TISSUE*TEMP 1 -2
2 -6 -34.72
6.48 128 -5.36 0.0001
TISSUE*TEMP 1 -2
2 -7 -41.62
6.48 128 -6.42 0.0001
TISSUE*TEMP 1 -2
2 -8 -64.46
6.48 128 -9.94 0.0001
TISSUE*TEMP 1 -2
3 0
10.49 6.48 128 1.62 0.1080
TISSUE*TEMP 1 -2
3 -2
5.16 6.48 128 0.80 0.4275
TISSUE*TEMP 1 -2
3 -3
2.26 6.48 128 0.35 0.727
and so forth. The columns TISSUE TEMP list the
first combination of the two factors, the columns _TISSUE _TEMP the second combination
being compared to the first. For example, the second row compares tissue type 1 at
temperature 0 to tissue type 1 at temperature -3 degrees. Not only is this table easier to
read than the
-
- matrix of p-values produced by PROC GLM, you can save the table to a
-
- data set in PROC MIXED for post-processing. This is very helpful to eliminate the many
- uninteresting comparisons in this list, which do not correspond to simple effects:
proc mixed data=leakage;
class tissue temp;
model leak = tissue temp tissue*temp;
lsmeans tissue*temp / diff;
make 'diffs' out=diff noprint;
run;
data diff; set diff;
if _effect_ = 'TISSUE*TEMP' then do;
if temp ne _temp then delete;
if (temp+0) > -4 then delete;
end;
LSD05 = tinv(0.975,_df_)*_se_;
drop _effect_ _se_ _df_;
run;
proc print data=diff label noobs;
format _diff_ 6.2 LSD05 5.1;
run;
The MAKE statement of PROC MIXED saves the table
of mean differences to the data set diff. It also prevents printing of all the differences
to the output window through the NOPRINT option. The DATA step after PROC MIXED deletes
all those comparisons for which the two temperatures are not the same. It also deletes
comparisons at temperatures below -4 degrees, since no significant slices were found
there. Also, the LSD at the 5% level is computed. Here is a printout of the data set diff:
TISSUE TEMP _TISSUE _TEMP Difference t Pr > |t| LSD05
1 -4 2
-4 11.17
1.72 0.0873 12.8
1 -4 3
-4 20.73 3.20
0.0017 12.8
1 -4 4
-4 -27.71 -4.28 0.0001 12.8
1 -5 2
-5 17.75 2.74
0.0071 12.8
1 -5 3
-5 26.47 4.08
0.0001 12.8
1 -5 4
-5 -23.93 -3.69 0.0003 12.8
1 -6 2
-6 20.88 3.22
0.0016 12.8
1 -6 3
-6 38.96 6.01
0.0001 12.8
1 -6 4
-6 -16.92 -2.61 0.0101 12.8
1 -7 2
-7 28.34 4.37
0.0001 12.8
1 -7 3
-7 43.38 6.69
0.0001 12.8
1 -7 4
-7 -9.78 -1.51 0.1338
12.8
1 -8 2
-8 15.34 2.37
0.0195 12.8
1 -8 3
-8 35.02 5.40
0.0001 12.8
1 -8 4
-8 -1.46 -0.23 0.8221
12.8
2 -4 3
-4 9.56 1.47
0.1427 12.8
2 -4 4
-4 -38.88 -6.00 0.0001 12.8
2 -5 3
-5 8.72 1.35
0.1809 12.8
2 -5 4
-5 -41.68 -6.43 0.0001 12.8
2 -6 3
-6 18.08 2.79
0.0061 12.8
2 -6 4
-6 -37.80 -5.83 0.0001 12.8
2 -7 3
-7 15.04 2.32
0.0219 12.8
2 -7 4
-7 -38.12 -5.88 0.0001 12.8
2 -8 3
-8 19.68 3.04
0.0029 12.8
2 -8 4
-8 -16.80 -2.59 0.0107 12.8
3 -4 4
-4 -48.44 -7.47 0.0001 12.8
3 -5 4
-5 -50.40 -7.78 0.0001 12.8
3 -6 4
-6 -55.88 -8.62 0.0001 12.8
3 -7 4
-7 -53.16 -8.20 0.0001 12.8
3 -8 4
-8 -36.48 -5.63 0.0001 12.8
Slicing three-way and higher order interactions
Slicing a higher order interaction is
essentially no different from slicing a two-way interaction. You should slice, however, in
a manner that generates meaningful comparisons. For example, a significant A*B*C
interaction can be sliced in the following ways:
by A
by B
by C
by A*B
by A*C
by B*C
Only the last three are really meaningful, since
they compare the levels of one factor while holding the other two factors fixed. As a
general rule, if you write a slice statement the number of factors in the SLICE= option of
the LSMEANS statement should always be one less than the number of factors in the
interaction being sliced. For a three-way interaction, the statements are
lsmeans a*b*c / slice=a*b;
lsmeans a*b*c / slice=a*c;
lsmeans a*b*c / slice=b*c;
There is a shorthand for combining the three
statements into one:
lsmeans a*b*c / slice=(a*b a*c b*c);