[R-sig-eco] question on using ghlt (multcomp) for mixed models with lme (nlme)

Hem Nalini Morzaria Luna hmorzarialuna at gmail.com
Fri Jun 10 21:12:47 CEST 2011


Hi:

I am comparing biomass response in a an experiment with  three factors
(N-two levels, W-three levels, and S-two levels) using lme. Unit is
just specified as a block effect. (Data example below)

This is my model

> w.lme <- lme(fixed=log(Ry.above) ~ W * S * N, data= Mono, random=~1 | Unit/W/N)

I'd like to do multiple comparisons.
In this case, interaction terms of W:Species is slightly significant
(p 0.07) so if I want to only test for W within each Species.

I tried the following code to get a contrast matrix for those factors

> library(contrast)
> contrast(w.lme, list(W=c('High','Medium','Low'), Species = 'Tc'), list(W=c('High','Medium','Low'), Group = 'Sv'), type='average')

But I get

>Error in gendata.default(fit = list(modelStruct = list(reStruct = list( :
  not enough factors

I was also trying to understand what the correct way to specify
multiple comparions for the whole model is:

One factor is straightforward
> comp.Species <- glht(w.lme, linfct=mcp(Species="Tukey"))

To specify all comparisons I know mcp will not take interactions but
the linfct argument can use a matrix of comparisons but I am unclear
what is the correct approach to set up that matrix.

I tried:

1) matrix from fixed effects

> K <- diag(length(fixef(w.lme)))
> glht(w.lme, linfct=K)

2) matrix using contrasts

> matrix.con = contrasts(Mono$S:Mono$N:Mono$W)
#matrix dimension is [11,12]
#so I added one more column, results in this matrix being equal to K(above)
> missing.column = matrix(0,12,1)
> missing.column[1,1] = 1
con.matrix = cbind(missing.column,matrix.con)
>glht(w.lmer, linfct = con.matrix)

1 & 2 give the same result from glht. Is it correct to assume the rows
in K are the same as in the contrast matrix?

3) Model matrix using model.matrix
> lme.matrix <- model.matrix(w.lme, data=Mono)
glht(w.lmer, linfct = lme.matrix)

In 3) lme.matrix dimension is [36,12] and the results of glht repeat
three times each. I am having a hard time understanding why this is
and what the rows and columns in the matrix represent. Colnames are an
incomplete set of contrasts.

What is the correct approach to specify all comparisons?


Any help is appreciated. Thank you!

Hem Nalini Morzaria Luna

Data (Mono)
      N      W Unit Species  Ry.above
1  High   High    1      Sv 0.6156346
2  High   High    2      Sv 0.6235052
3  High   High    3      Sv 0.6985453
4   Low   High    4      Sv 1.7452381
5   Low   High    5      Sv 0.8424228
6   Low   High    6      Sv 0.6643357
7  High Medium    7      Sv 0.8251745
8  High Medium    8      Sv 0.7424867
9  High Medium    9      Sv 0.9362663
10  Low Medium   10      Sv 1.0038536
11  Low Medium   11      Sv 0.7767575
12  Low Medium   12      Sv 1.5007492
13 High    Low   13      Sv 0.9536121
14 High    Low   14      Sv 0.9799515
15 High    Low   15      Sv 0.5596921
16  Low    Low   16      Sv 0.8706301
17  Low    Low   17      Sv 1.0032415
18  Low    Low   18      Sv 1.3620130
19 High   High    1      Tc 0.6514929
20 High   High    2      Tc 0.4309266
21 High   High    3      Tc 0.2800695
22  Low   High    4      Tc 0.7883481
23  Low   High    5      Tc 0.4541833
24  Low   High    6      Tc 0.6007958
25 High Medium    7      Tc 0.6987778
26 High Medium    8      Tc 0.2240063
27 High Medium    9      Tc 0.1477910
28  Low Medium   10      Tc 0.2017751
29  Low Medium   11      Tc 0.3621421
30  Low Medium   12      Tc 0.2590503
31 High    Low   13      Tc 0.4265925
32 High    Low   14      Tc 0.5525204
33 High    Low   15      Tc 0.4196785
34  Low    Low   16      Tc 0.4507284
35  Low    Low   17      Tc 1.1027065
36  Low    Low   18      Tc 0.3676259



More information about the R-sig-ecology mailing list