[R] Balanced design, differences in results using anova and lmer/anova
Rolf Turner
r.turner at auckland.ac.nz
Sun Mar 1 20:33:50 CET 2009
Not sure --- never sure with this stuff! :-) --- but I think that
your problem
might be (at least in part) that the coding for block is repeated within
each location. Block 1 in location 1 is *not* the same as block 1 in
location 2;
this is what nesting in effect means. The structure of lmer()
requires that
this be acknowledged explicitly. You have a total of 8 blocks ---
four in location 1
and four in location 2. Code them as 1, ..., 8 and not as 1, ..., 4
repeated.
Give this a go and see if it helps.
cheers,
Rolf Turner
On 27/02/2009, at 10:06 PM, Lars Kunert wrote:
> Hi, I am trying to do an analysis of variance for an unbalanced
> design.
> As a toy example, I use a dataset presented by K. Hinkelmann and O.
> Kempthorne in "Design and Anaylysis of Experiments" (p353-356).
> This example is very similar to my own dataset, with one
> difference: it
> is balanced.
> Thus it is possible to do an anaylsis using both: (1) anova, and
> (2) lmer.
> Furthermore, I can compare my results with the results presented in
> the
> book (the book uses SAS).
>
> In short:
>> using anova, I can reproduce the results presented in the book.
>> using lmer, I fail to reproduce the results
> However, for my "real" analysis, I need lmer - what do I do wrong?
>
> The example uses as randomized complete block desigh (RCBD) with a
> nested blocking structure
> and subsampling.
>
> response:
> height (of some trees)
> covariates:
> HSF (type of the trees)
> nested covariates:
> loc (location)
> block (block is nested in location)
>
> # the data (file: pine.txt) looks like this:
>
> loc block HSF height
> 1 1 1 210
> 1 1 1 221
> 1 1 2 252
> 1 1 2 260
> 1 1 3 197
> 1 1 3 190
> 1 2 1 222
> 1 2 1 214
> 1 2 2 265
> 1 2 2 271
> 1 2 3 201
> 1 2 3 210
> 1 3 1 220
> 1 3 1 225
> 1 3 2 271
> 1 3 2 277
> 1 3 3 205
> 1 3 3 204
> 1 4 1 224
> 1 4 1 231
> 1 4 2 270
> 1 4 2 283
> 1 4 3 211
> 1 4 3 216
> 2 1 1 178
> 2 1 1 175
> 2 1 2 191
> 2 1 2 193
> 2 1 3 182
> 2 1 3 179
> 2 2 1 180
> 2 2 1 184
> 2 2 2 198
> 2 2 2 201
> 2 2 3 183
> 2 2 3 190
> 2 3 1 189
> 2 3 1 183
> 2 3 2 200
> 2 3 2 195
> 2 3 3 197
> 2 3 3 205
> 2 4 1 184
> 2 4 1 192
> 2 4 2 197
> 2 4 2 204
> 2 4 3 192
> 2 4 3 190
>
> #
> # then I load the data
> #
> read.data = function()
> {
> d = read.table( "pines.txt", header=TRUE )
>
> d$loc = as.factor( d$loc )
> d$block.tmp = as.factor( d$block )
> d$block = ( d$loc:d$block.tmp )[drop=TRUE] # lme4 does not
> support
> implicit nesting
>
> d$HSF = as.factor( d$HSF )
>
> return( d )
> }
>
> d = read.data()
>
>
> #
> # using anova.....
> #
> m.aov = aov( height ~ HSF*loc + Error(loc/block + HSF:loc/block),
> data=d )
> summary( m.aov )
>
> #
> # I get:
> #
> Error: loc
> Df Sum Sq Mean Sq
> loc 1 20336 20336
>
> Error: loc:block
> Df Sum Sq Mean Sq F value Pr(>F)
> Residuals 6 1462.33 243.72
>
> Error: loc:HSF
> Df Sum Sq Mean Sq
> HSF 2 12170.7 6085.3
> HSF:loc 2 6511.2 3255.6
>
> Error: loc:block:HSF
> Df Sum Sq Mean Sq F value Pr(>F)
> Residuals 12 301.167 25.097
>
> Error: Within
> Df Sum Sq Mean Sq F value Pr(>F)
> Residuals 24 529.00 22.04
>
> #
> # which is, what I expected, however, using lmer....
> #
> m.lmer = lmer( height ~ HSF*loc + HSF*(loc|block), data=d )
> anova( m.lmer )
>
> #
> # I get:
> #
> Analysis of Variance Table
> Df Sum Sq Mean Sq
> HSF 2 12170.7 6085.3
> loc 1 1924.6 1924.6
> HSF:loc 2 6511.2 3255.6
>
> #
> # what is, at least not what I expected...
> #
> Thanks for your help, Lars
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.
######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}
More information about the R-help
mailing list