Skip to content
Prev 138578 / 398503 Next

Asking, are simple effects different from 0

On 3/4/2008 2:45 PM, Jarrett Byrnes wrote:
One approach would be to use glht() in the multcomp package.  You 
need to work out how to formulate the matrix of coefficients that give 
the desired contrasts.  Here is an example using the warpbreaks data frame:

fm <- lm(breaks ~ tension*wool, data=warpbreaks)

# names(coef(fm))
# (Intercept) tensionM tensionH woolB tensionM:woolB tensionH:woolB

cm <- rbind(
"A vs. B at L" = c(0, 0, 0,-1, 0, 0),
"A vs. B at M" = c(0, 0, 0,-1,-1, 0),
"A vs. B at H" = c(0, 0, 0,-1, 0,-1),
"M vs. L at A" = c(0, 1, 0, 0, 0, 0),
"M vs. H at A" = c(0, 1,-1, 0, 0, 0),
"L vs. H at A" = c(0, 0,-1, 0, 0, 0),
"M vs. L at B" = c(0, 1, 0, 0, 1, 0),
"M vs. H at B" = c(0, 1,-1, 0, 1,-1),
"L vs. H at B" = c(0, 0,-1, 0, 0,-1))

library(multcomp)

summary(glht(fm, linfct = cm), test = adjusted(type="none"))

          Simultaneous Tests for General Linear Hypotheses

Fit: lm(formula = breaks ~ tension * wool, data = warpbreaks)

Linear Hypotheses:
                   Estimate Std. Error t value  p value
A vs. B at L == 0  16.3333     5.1573   3.167 0.002677 **
A vs. B at M == 0  -4.7778     5.1573  -0.926 0.358867
A vs. B at H == 0   5.7778     5.1573   1.120 0.268156
M vs. L at A == 0 -20.5556     5.1573  -3.986 0.000228 ***
M vs. H at A == 0  -0.5556     5.1573  -0.108 0.914665
L vs. H at A == 0  20.0000     5.1573   3.878 0.000320 ***
M vs. L at B == 0   0.5556     5.1573   0.108 0.914665
M vs. H at B == 0  10.0000     5.1573   1.939 0.058392 .
L vs. H at B == 0   9.4444     5.1573   1.831 0.073270 .
---
Signif. codes:  0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
(Adjusted p values reported -- none method)
I won't comment on whether to adjust and if so how, but you can 
implement various adjustments when summarizing.  For example:

summary(glht(fm, linfct = cm), test = adjusted(type="bonferroni"))

          Simultaneous Tests for General Linear Hypotheses

Fit: lm(formula = breaks ~ tension * wool, data = warpbreaks)

Linear Hypotheses:
                   Estimate Std. Error t value p value
A vs. B at L == 0  16.3333     5.1573   3.167 0.02409 *
A vs. B at M == 0  -4.7778     5.1573  -0.926 1.00000
A vs. B at H == 0   5.7778     5.1573   1.120 1.00000
M vs. L at A == 0 -20.5556     5.1573  -3.986 0.00205 **
M vs. H at A == 0  -0.5556     5.1573  -0.108 1.00000
L vs. H at A == 0  20.0000     5.1573   3.878 0.00288 **
M vs. L at B == 0   0.5556     5.1573   0.108 1.00000
M vs. H at B == 0  10.0000     5.1573   1.939 0.52553
L vs. H at B == 0   9.4444     5.1573   1.831 0.65943
---
Signif. codes:  0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
(Adjusted p values reported -- bonferroni method)