Anne,

Thank you for writing back, and for including your data.

I have two things here.  First, I ran an a analysis of your data and have
my observations
on interpretation.  Second, I answer your general question about glht and
TukeyHSD when there are interactions.
I illustrate how to get the same answer from glht with an example from your
data.


## install.packages("HH")  ## if you do not already have it
library(HH)

Active <- read.table(textConnection("
Treatment Habitat    pActive
      1G       E 0.18541667
      1G       E 0.02500000
      1G       E 0.04208333
      1G       E 0.14847222
      1G       E 0.08055556
      1G       E 0.16777778
      1G       S 0.05111111
      1G       S 0.19083333
      1G       S 0.12333333
      1G       S 0.35722222
      1G       S 0.43750000
      1G       S 0.02638889
      1R       E 0.38736111
      1R       E 0.51180556
      1R       E 0.14916667
      1R       E 0.61041667
      1R       E 0.36013889
      1R       E 0.11347222
      1R       S 0.10805556
      1R       S 0.18722222
      1R       S 0.27625000
      1R       S 0.25236111
      1R       S 0.18208333
      1R       S 0.16152778
      2G       E 0.25916667
      2G       E 0.37194444
      2G       E 0.02263889
      2G       E 0.18402778
      2G       E 0.45750000
      2G       E 0.02250000
      2G       S 0.02958333
      2G       S 0.10069444
      2G       S 0.12875000
      2G       S 0.11361111
      2G       S 0.13680556
      2G       S 0.07875000
      2R       E 0.57513889
      2R       E 0.12888889
      2R       E 0.32000000
      2R       E 0.55736111
      2R       E 0.78888889
      2R       E 0.65055556
      2R       S 0.35527778
      2R       S 0.48361111
      2R       S 0.21361111
      2R       S 0.35277778
      2R       S 0.52611111
      2R       S 0.29416667
     R+G       E 0.37027778
     R+G       E 0.20263889
     R+G       E 0.07194444
     R+G       E 0.49041667
     R+G       E 0.21847222
     R+G       E 0.13555556
     R+G       S 0.20861111
     R+G       S 0.23986111
     R+G       S 0.02180556
     R+G       S 0.23250000
     R+G       S 0.28916667
     R+G       S 0.50208333
"), header=TRUE)
## close.connection()
closeAllConnections()

logitAct <- logit(Active$pActive)
model3 <- aov(logitAct ~ Treatment*Habitat, data=Active)
summary(model3)
summary(glht(model3, focus="Treatment", linfct=mcp(Treatment="Tukey")))
TukeyHSD(model3)
with(Active, table(Treatment, Habitat))

par(omd=c(0, .95, 0, 1))
model3.mmc <- glht.mmc(model3, linfct=mcp(Treatment="Tukey"))
plot(model3.mmc, ry=c(-2.75, 0.25), x.offset=.8)
plot.matchMMC(model3.mmc$mca)

##             1G  1R  2G  2R R+G
R.linear <- c(-1,  0,  -1,  2,  0 )
names(R.linear) <- c('1G', '1R', '2G', '2R', 'R+G')
lmat.R <- orthog.complete(as.matrix(R.linear))
dimnames(lmat.R)[[2]][1] <- "R.linear"

model3.mmc <- glht.mmc(model3, linfct=mcp(Treatment="Tukey"),
focus.lmat=lmat.R)
plot(model3.mmc, ry=c(-2.75, 0.25), x.offset=.8)
plot.matchMMC(model3.mmc$lmat, col.signif="blue")

Active$Treatment <- factor(Active$Treatment, levels=c('1G', '2G', 'R+G',
'1R', '2R'))
contrasts(Active$Treatment) <- lmat.R[c('1G', '2G', 'R+G', '1R', '2R'),]
model3g <- aov(logitAct ~ Treatment*Habitat, data=Active)
summary(model3g, split=list(Treatment=list(R.linear=1, rest=2:4)),
expand.split=FALSE)

position(Active$Habitat) <- c(2, 4)
interaction2wt(logitAct ~ Treatment*Habitat, data=Active)

## from the above tables and graphs, it looks like the only thing
## going on in the data you posted is the linear effect of R.


## On your questions on glht and TukeyHSD.
## Without interactions or covariates they give the same answer.
## With interactions or covariates the default for glht is to give
different answers.
## The output from glht includes a warning to that effect.
##
## From ?glht
## Warning message:
## In mcp2matrix(model, linfct = linfct) :
##   covariate interactions found -- default contrast might be inappropriate
##
## From ?glht, read about the interaction_average argument.
## With the glht argument interaction_average=TRUE, they give the same
answer
## With your example,
summary(glht(model3, linfct=mcp(Treatment="Tukey",
interaction_average=TRUE)))
TukeyHSD(model3, which="Treatment")

Rich
On Tue, Jan 3, 2012 at 7:26 PM, Anne Aubut <an438516@dal.ca> wrote:

> Hello Richard,
> Thank you so much for getting back to me.  In the ?glht example, the
> confidence intervals are the same and the p-values are very similar.  I ran
> a 2-way ANOVA and compared the results for the glht code with "Tukey" and
> TukeyHSD for "Treatment", which was a significant main effect (output is
> below).  I found that the p-values for glht and TukeyHSD differed quite a
> bit.  If glht with "Tukey" is just another method to run Tukey HSD, I don't
> understand why the two methods yeilded different results.  If they are not
> equivalent, how is glht calculating the p-values?  I also ran my 2-way
> ANOVA without the Treatment*Habitat interaction and I found that the glht
> and TukeyHSD methods did provide the same p-values (I did not include this
> output). Does this mean that glht is only equivalent to TukeyHSD when
> non-significant interactions are removed? Should I be removing all of my
> non-significant interaction terms prior to running post-hoc testing with
> glht?
>
> Treatment Habitat    pActive
>       1G       E 0.18541667
>       1G       E 0.02500000
>       1G       E 0.04208333
>       1G       E 0.14847222
>       1G       E 0.08055556
>       1G       E 0.16777778
>       1G       S 0.05111111
>       1G       S 0.19083333
>       1G       S 0.12333333
>       1G       S 0.35722222
>       1G       S 0.43750000
>       1G       S 0.02638889
>       1R       E 0.38736111
>       1R       E 0.51180556
>       1R       E 0.14916667
>       1R       E 0.61041667
>       1R       E 0.36013889
>       1R       E 0.11347222
>       1R       S 0.10805556
>       1R       S 0.18722222
>       1R       S 0.27625000
>       1R       S 0.25236111
>       1R       S 0.18208333
>       1R       S 0.16152778
>       2G       E 0.25916667
>       2G       E 0.37194444
>       2G       E 0.02263889
>       2G       E 0.18402778
>       2G       E 0.45750000
>       2G       E 0.02250000
>       2G       S 0.02958333
>       2G       S 0.10069444
>       2G       S 0.12875000
>       2G       S 0.11361111
>       2G       S 0.13680556
>       2G       S 0.07875000
>       2R       E 0.57513889
>       2R       E 0.12888889
>       2R       E 0.32000000
>       2R       E 0.55736111
>       2R       E 0.78888889
>       2R       E 0.65055556
>       2R       S 0.35527778
>       2R       S 0.48361111
>       2R       S 0.21361111
>       2R       S 0.35277778
>       2R       S 0.52611111
>       2R       S 0.29416667
>      R+G       E 0.37027778
>      R+G       E 0.20263889
>      R+G       E 0.07194444
>      R+G       E 0.49041667
>      R+G       E 0.21847222
>      R+G       E 0.13555556
>      R+G       S 0.20861111
>      R+G       S 0.23986111
>      R+G       S 0.02180556
>      R+G       S 0.23250000
>      R+G       S 0.28916667
>      R+G       S 0.50208333
>
> logitpAct<-logit(Active$**pActive)
> model3<-aov(logitAct~**Treatment*Habitat,data=Active)
> summary(glht(model3, linfct=mcp(Treatment="Tukey"))**)
>
>  Simultaneous Tests for General Linear Hypotheses
>
> Multiple Comparisons of Means: Tukey Contrasts
>
>
> Fit: aov(formula = logitAct ~ Treatment * Habitat, data = Active)
>
> Linear Hypotheses:
>              Estimate Std. Error t value Pr(>|t|)
> 1R - 1G == 0    1.6196     0.5936   2.728  0.06369 .
> 2G - 1G == 0    0.5468     0.5936   0.921  0.88736
> 2R - 1G == 0    2.3100     0.5936   3.892  0.00264 **
> R+G - 1G == 0   1.0713     0.5936   1.805  0.38235
> 2G - 1R == 0   -1.0728     0.5936  -1.807  0.38095
> 2R - 1R == 0    0.6904     0.5936   1.163  0.77204
> R+G - 1R == 0  -0.5483     0.5936  -0.924  0.88639
> 2R - 2G == 0    1.7632     0.5936   2.970  0.03516 *
> R+G - 2G == 0   0.5245     0.5936   0.884  0.90164
> R+G - 2R == 0  -1.2387     0.5936  -2.087 0.24185 <2.087%20%200.24185>
> ---
> Signif. codes:  0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
> (Adjusted p values reported -- single-step method)
>
> Warning message:
> In mcp2matrix(model, linfct = linfct) :
>  covariate interactions found -- default contrast might be inappropriate
>
>
> TukeyHSD(model3)
>
>  Tukey multiple comparisons of means
>    95% family-wise confidence level
>
> Fit: aov(formula = logitAct ~ Treatment * Habitat, data = Active)
>
> $Treatment
>               diff        lwr       upr     p adj
> 1R-1G   0.976208536 -0.2115769 2.1639939 0.1538496
> 2G-1G   0.008919932 -1.1788655 1.1967053 1.0000000
> 2R-1G   1.774309645  0.5865243 2.9620950 0.0009174
> R+G-1G  0.735518351 -0.4522670 1.9233037 0.4123535
> 2G-1R  -0.967288603 -2.1550740 0.2204968 0.1605251
> 2R-1R   0.798101110 -0.3896843 1.9858865 0.3299881
> R+G-1R -0.240690185 -1.4284756 0.9470952 0.9783561
> 2R-2G   1.765389713  0.5776043 2.9531751 0.0009817
> R+G-2G  0.726598419 -0.4611870 1.9143838 0.4247935
> R+G-2R -1.038791294 -2.2265767 0.1489941 0.1128708
>
>
>
> Quoting "Richard M. Heiberger" <rmh@temple.edu>:
>
>  glht is probably what you should be using.  Both TukeyHSD and glht give
>> essesntially identical confidence intervals for
>> the example in ?glht.  What aren't you satisfied with?
>>
>> amod <- aov(breaks ~ tension, data = warpbreaks)
>> confint(glht(amod, linfct = mcp(tension = "Tukey")))
>> TukeyHSD(amod)
>> On Mon, Jan 2, 2012 at 6:19 PM, Anne Aubut <an438516@dal.ca> wrote:
>>
>>  Hello,
>>>
>>> I am trying to determine the most appropriate way to run post-hoc
>>> comparisons on my lme model.  I had originally planned to use Tukey HSD
>>> method as I am interested in all possible comparisons between my
>>> treatment
>>> levels.  TukeyHSD, however, does not work with lme.  The only other code
>>> that I was able to find, and which also seems to be widely used, is glht
>>> specified with Tukey:
>>>
>>> summary(glht(model, linfct=mcp(Treatment="Tukey"))****)
>>>
>>>
>>> Out of curiosity, I ran TukeyHSD and the glht code for a simple ANOVA and
>>> found that they had quite different p-values.  If the glht code is not
>>> running TukeyHSD, what does the "Tukey" in the code specify?  Is using
>>> glht
>>> code appropriate if I am interested in a substitute for TukeyHSD?  Are
>>> there any other options for multiple comparisons for lme models?  I am
>>> really interested in knowing if the Tukey contrasts generated from the
>>> glht
>>> code is providing me with appropriate p-values for my post-hoc
>>> comparisons.
>>>
>>> I feel like I have reached a dead end and am not sure where else to look
>>> for information on this issue. I would be grateful for any feedback on
>>> this
>>> matter.
>>>
>>>
>>> Anne Cheverie
>>> M.Sc. Candidate
>>> Dalhousie University
>>>
>>> ______________________________****________________
>>> R-help@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/****listinfo/r-help<https://stat.ethz.ch/mailman/**listinfo/r-help>
>>> <https://stat.**ethz.ch/mailman/listinfo/r-**help<https://stat.ethz.ch/mailman/listinfo/r-help>
>>> >
>>> PLEASE do read the posting guide http://www.R-project.org/**<http://www.r-project.org/**>
>>> posting-guide.html <http://www.r-project.org/**posting-guide.html<http://www.r-project.org/posting-guide.html>>
>>>
>>>
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>>
>
>
>

	[[alternative HTML version deleted]]

