Skip to content

Getting Sphericity Tests for Within Subject Repeated Measure Anova (using "car" package) (Adjusted Dataset)

4 messages · John Fox, Sergios (Sergey) Charntikov, Peter Dalgaard

#
Dear Segios,

For repeated-measures designs, the Anova() function requires a multivariate
linear model fit to the "wide" version of the data set, in which each of the
repeated measures appears as a separate variable. It is necessary that you
have the same occasions observed for all subjects. For your scaled-down
example, you'd have two response variables named, e.g., Sessn1 and Sessn2.
Then you'd fit the multivariate linear model as mod <- lm(cbind(Sessn1,
Sessn2) ~ Trtmnt, data=Dataset). The idata data frame could simply be idata
<- data.frame(Sessn=factor(1:2)). Then you could get the MANOVA and
repeated-measure ANOVA, including sphericity test, etc., as
summary(Anova(mod, idata=idata, idesign=~Sessn)).

I hope this helps,
 John

--------------------------------
John Fox
Senator William McMaster 
  Professor of Social Statistics
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox
On
but
not
1
of
http://www.R-project.org/posting-guide.html
#
Based on what you suggested I did the following:


1. Dataset$Sessn <- as.factor(Dataset$Sessn)
2. mod <- lm(cbind(Sessn=="1", Sessn=="2") ~ Trtmt, data=Dataset)
3. idata <- data.frame(Sessn=factor(1:2))
4. Anova(mod, idata=idata, idesign=~Sessn))
ERROR:  The error SSP matrix is apparently of deficient rank = 0 < 1

I have noticed that my DV (Response) is not in play in the coding above.
Then I have modified it to:

mod2 <- lm(*Response*~(cbind(Sessn=="1", Sessn=="2")) * Trtmt, data=Dataset)
idata2 <- data.frame(Sessn=factor(1:2))
Anova(mod, idata=idata2, idesign=~Sessn)
ERROR: The error SSP matrix is apparently of deficient rank = 0 < 1

Then I have modified it to:

mod2 <- lm(Response~(cbind(Sessn=="1", Sessn=="2")) * Trtmt, data=Dataset)
idata2 <- data.frame(Sessn=factor(1:2))
Anova(mod, idata=idata2, idesign=~*(cbind(Sessn=="1", Sessn=="2")) * Trtmt*)
ERROR:  object 'Trtmt' not found

Then I have modified it to:

mod2 <- lm(Response~(cbind(Sessn=="1", Sessn=="2")) * Trtmt, data=Dataset)
idata2 <- data.frame(Sessn=factor(1:2))
Anova(mod, idata=idata2, idesign=~(cbind(Sessn=="1", Sessn=="2")) * *
Dataset$Trtmt*)
ERROR:  variable lengths differ (found for 'Dataset$Trtmt') [THIS IS THE
ERROR THAT I HAVE BEEN
GETTING WITH MY ACTUAL DATASET FOLLOWING "CAR" PACKAGE RECOMMENDATIONS)

Any idea what am I doing wrong?  I have attached my mock data for
convenience in csv.


Sincerely,

Sergios Charntikov (Sergey), MA

Behavioral Neuropharmacology Lab
Department of Psychology
University of Nebraska-Lincoln
Lincoln, NE 68588-0308  USA

sergioschr at gmail.com
www.unl.edu/psychoneuropharm/
On Mon, Nov 9, 2009 at 12:33 PM, John Fox <jfox at mcmaster.ca> wrote:

            
#
Sergios (Sergey) Charntikov wrote:
Either you forgot, or your mailer did not say that it is a text file, 
and the mailing list software consequently scrubbed it...

I think what you need is an analysis of 6 observations with a 
2x2==4-dimensional response. You may want to look at my paper in R News 
2007-2. The reacttime example used there is pretty similar. You're not 
going to get much sphericity testing when all factors have only two 
levels, though.