On 4/13/07, Michael Stevens <mstevens1107 at yahoo.com>
wrote:> Hi,
> I have sort of a newbie question. I've seriously put a lot of effort
into how to handle simple replicates in a repeated ANOVA design, but haven't
had much luck.
> I really liked reading "Notes on the use of R for psychology
experiments and questionnaires", by Jonathan Baron and Yuelin Li (
http://www.psych.upenn.edu/~baron/rpsych/rpsych.html ) but still didn't run
across an example using simple replicates.
> So, I made up the data below semi-borrowing the idea of a reaction time
experiment involving noise from Maxwell, S. E. & Delaney, H. D. (1990)
Designing Experiments and Analyzing Data: A model comparison perspective.
Pacific Grove, CA: Brooks/Cole., which was referenced in the Baron and Li link
above.
>
> The experimental concept I'm trying to envision is 2 groups of subjects
(Treat and Control), 3 subjects in each. In one session, all 6 patients from
both groups are tested for reaction time by making 3 replicate tests on some
hypothetical RT test (I call this the "pre" testing phase below or one
could call this baseline ). In a second session (the "post" phase),
the subjects in the "Treat" Group are subjected to noise (or any
treatment), while the other 3 "Control" subjects are not, (i.e. the
Control subjects are basically tested exactly like they were in the
"pre" testing session).
>
> I'm trying to set up the correct model for this experimental design to
simply understand whether "noise" (or treatment) has an effect on
reaction time. Can someone tell this newbie the proper name of this
experimental design?
>
> By setting up the design this way, I'm hoping one could see if there
was a "pre" session to "post" session effect (using the
Control group) and then take into account any possible pre->post effect when
deciding whether there was a Treatment (noise) effect.
>
> Unfortunately, whenever, I put the Group factor in the Error term (to take
into account subj:Group as a random effect), I get a singular result: (see the
data entry section below)
>
> > rt.aov <- aov(rt ~ Group*prepost +
Error(subj/(prepost*Group)), data=rt.df)
> Warning message:
> Error() model is singular in: aov(rt ~ Group * prepost +
Error(subj/(prepost * Group)), data = rt.df)
>
> plus, I'm not sure how to include the replicate factor
("rep") in my Error() term -- should it be something like
> ...+Error(subj*rep/(Group*prepost))?
> (this still gives the above error if Group is in the error term, but
I'm pretty sure it should be there since all interactions given the
individual subject are random effects, aren't they?)
> In my hypothetical experiment, I'm assuming the replicates are
independent samples of reaction time -- although, admittedly, there could be a
trend that should be looked for if one assumes that the subject "gets
better" with each replicate.
>
[output deleted]
I'm not sure if this is exactly what you want but a model with fixed
effects for Group and prepost and for their interaction and with
random effects for subj can be fit using the lme4 package as shown in
the enclosed. (If your next question is, "Yes, but how do I get
p-values?" I'll defer to others on that. It's a long story.)
P.S. for Debian/Ubuntu experts. How do I set up the Mime types so
that the system knows that a file with a .Rout extension is
text/plain? Or is this a property of Firefox or Gmai.com? The
immediate problem is that when I try to attach a file with extension
.Rout to a message sent from gmail.com under Firefox off a Ubuntu
system it gets encoded as a binary file and stripped by the mailing
list software. I need to move it to a name ending in .txt before it
gets encoded as text/plain.
-------------- next part --------------
R version 2.5.0 beta (2007-04-14 r41163)
Copyright (C) 2007 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(lme4)
Loading required package: Matrix
Loading required package: lattice>
> data <- c(
+ 287,283,261,298,302,280,
+ 211,272,222,285,253,252,
+ 266,252,287,266,255,269,
+ 299,310,285,296,310,301,
+ 288,265,273,285,252,259,
+ 295,299,285,288,281,303)>
> rt.df <- data.frame(rt=data,
+ rep = factor(rep(paste("rep",1:3, sep=""),12)),
+ prepost = factor(rep(c(rep("pre",3),rep("post",3)),6)),
+ subj =
factor(rep(paste("subj",1:6,sep=""),c(6,6,6,6,6,6))),
+ Group =
factor(c(rep("Treat",18),rep("Control",18))))>
> fm1 <- lmer(rt ~ Group*prepost + (1|subj), rt.df)
> fm1
Linear mixed-effects model fit by REML
Formula: rt ~ Group * prepost + (1 | subj)
Data: rt.df
AIC BIC logLik MLdeviance REMLdeviance
293.4 301.3 -141.7 307.6 283.4
Random effects:
Groups Name Variance Std.Dev.
subj (Intercept) 239.81 15.486
Residual 245.46 15.667
number of obs: 36, groups: subj, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 286.111 10.354 27.632
GroupTreat -12.778 14.643 -0.873
prepostpre 2.667 7.386 0.361
GroupTreat:prepostpre -15.889 10.445 -1.521
Correlation of Fixed Effects:
(Intr) GrpTrt prpstp
GroupTreat -0.707
prepostpre -0.357 0.252
GrpTrt:prps 0.252 -0.357 -0.707>
> proc.time()
user system elapsed
6.956 0.188 7.140
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Stevens_R.txt
Url:
https://stat.ethz.ch/pipermail/r-help/attachments/20070414/26654fa2/attachment.txt