# [R] aov contrasts residual error calculation

Steven Lacey slacey at umich.edu
Fri Apr 21 18:03:59 CEST 2006

```Jacques,

Thanks for the reply. I am not using lme because I don’t have the time to
understand how it works and I have a balanced design, so typcial linear
modelling in aov should be sufficient for my purposes. Down the road I plan
to learn lme, but I'm not there yet. So any suggestions with respect to aov
would be greatly appreciated.

Steve

-----Original Message-----
From: Jacques Veslot [mailto:jacques.veslot at good.ibl.fr]
Sent: Friday, April 21, 2006 11:58 AM
To: Steven Lacey
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] aov contrasts residual error calculation

why not using lme() ?

first, you need transform data:
dat2 <- as.data.frame(lapply(subset(dat, sel=-c(A,B,C)), rep, 3))
dat2\$y <- unlist(subset(dat, sel=c(A,B,C)), F, F)

dat2\$cond <- factor(rep(c("A","B","C"), each=nrow(dat)))

dat2\$inter <- factor(dat2\$map):factor(dat2\$cond)

lme1 <- lme(fixed = y ~ mapping + cond + inter + other fixed effects,
random = ~ 1 |subj, data=dat2,
contrast=list(inter=poly(nlevels(dat2\$inter)[,1:4]))

Steven Lacey a écrit :
> Hi,
>
> I am using aov with an Error component to model some repeated measures
> data. By repeated measures I mean the data look something like this...
>
> subj    A        B        C
> 1       4        11       15
> 2       3        12       17
> 3       5        9        14
> 4       6        10       18
>
> For each subject I have 3 observations, one in each of three
> conditions (A, B, C). I want to test the following contrast (1, 0,
> -1). One solution is to apply the contrast weights at the subject
> level explicitly and then call t.test on the difference scores.
> However, I am looking for a more robust solution as I my actual design
> has more within-subjects factors and one or more between subjects
> factors.
>
> A better solution is to specify the contrast in an argument to aov.
> The estimated difference of the contrast is the same as that in the
> paired t-test, but the residual df are double. While not what I
> expected, it follows from the documentation, which explicitly states
> that these contrasts are not to be used for any error term. Even
> though I specify 1 contrast, there are 2 df for a 3 level factor, and
> I suspect internally the error term is calculated by pooling across
> multiple contrasts.
>
> While very useful, I am wondering if there is way to get aov to
> calculate the residual error term only based on the specified
> contrasts (i.e., not assume homogeneity of variance and sphericity)
> for that strata?
>
> If not, I could calculate them directly using model.matrix, but I've
> never done that. If that is the preferred solution, I'd also
> appreciate coding suggestions to do it efficiently.
>
>
> How would I do the same thing with a two factor anova where one factor
> is within-subjects and one is between...
>                                 Condition
> Mapping     Subject        A        B        C
> 1            1             4        11       15
> 1            2
> 1            3
> 1            4
> 1            5
> 1            6
> 1            7
> 1            8
> 2            9
> 2            10
>
> Mapping is a between-subject factor. Condition is a within-subject
> factor. There are 5 levels of mapping, 8 subjects nested in each level
> of mapping. For each of the 40 combinations of mapping and subject
> there are 3 observations, one in each level of the condition factor.
>
> I want to estimate the pooled error associated with the following set
> of 4 orthogonal contrasts:
>
> condition.L:mapping.L
> condition.L:mapping.Q
> condition.L:mapping.C
> condition.L:mapping^4
>
> What is the best way to do this? One way is to estimate the linear
> contrast for condition for each subject, create a 40 row matrix where
> the measure for each combination of mapping and subject is the linear
> contrast on condition. If I pass this dataframe to aov, the mse it
> returns is the value I am looking for.
>
> If possible, I would like to obtain the estimate without collapsing
> the dataframe, but am not sure how to proceed. Suggestions?
>
> Thanks,
> Steve
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> http://www.R-project.org/posting-guide.html
>

--
-------------------------------------------------------------------
Jacques.Veslot at good.ibl.fr
CNRS UMR 8090 - http://www-good.ibl.fr
Génomique et physiologie moléculaire des maladies métaboliques I.B.L 2eme
etage - 1 rue du Pr Calmette, B.P.245, 59019 Lille Cedex Tel : 33
(0)3.20.87.10.44 Fax : 33 (0)3.20.87.10.31

```