Dear John,

thanks for your reply! The reason why I did not want to factorize the within-subjects variable was to avoid increasing the Df of the model from 1 (continuous variable) to k-1 (where k is the number of levels of the factors). I am now confused, because you have factorized the variable (indeed using "factor"), but the Df of myfactor_nc seems to be 1. Could you explain that?

Comparing the results obtained with the two methods I seem to get completely different results:

* aov()*

dv <- c(1,3,4,2,2,3,2,5,6,3,4,4,3,5,6);
subject <- factor(c("s1","s1","s1","s2","s2","s2","s3","s3","s3","s4","s4","s4","s5","s5","s5"));
myfactor_nc <- c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
mydata_nc <- data.frame(dv, subject, myfactor_nc)

am1_nc <- aov(dv ~ myfactor_nc + Error(subject/myfactor_nc), data=mydata_nc)
summary(am1_nc)

Error: subject
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals  4   12.4     3.1

Error: subject:myfactor_nc
            Df Sum Sq Mean Sq F value Pr(>F)
myfactor_nc  1   14.4    14.4      16 0.0161 *
Residuals    4    3.6     0.9
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Error: Within
          Df Sum Sq Mean Sq F value Pr(>F)
Residuals  5  1.333  0.2667


*Anova()*

dvm <- with(mydata_nc, cbind(dv[myfactor_nc==1],dv[myfactor_nc==2], dv[myfactor_nc==3]))

mlm1 <- lm(dvm ~ 1)
myfactor_nc <- factor(1:3)
contrasts(myfactor_nc) <- matrix(-1:1, ncol=1)
idata <- data.frame(myfactor_nc)
Anova(mlm1, idata=idata, idesign=~myfactor_nc)
Note: model has only an intercept; equivalent type-III tests substituted.

Type III Repeated Measures MANOVA Tests: Pillai test statistic
            Df test stat approx F num Df den Df   Pr(>F)
(Intercept)  1   0.93790   60.409      1      4 0.001477 **
myfactor_nc  1   0.83478    7.579      2      3 0.067156 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Why is that?

Thanks a lot
Cristiano


On 12/14/2015 05:25 PM, Fox, John wrote:
Dear Cristiano,

If I understand correctly what you want to do, you should be able to use 
Anova() in the car package (your second question) by treating your numeric 
repeated-measures predictor as a factor and defining a single linear contrast 
for it.

Continuing with your toy example:

myfactor_nc <- factor(1:3)
contrasts(myfactor_nc) <- matrix(-1:1, ncol=1)
idata <- data.frame(myfactor_nc)
Anova(mlm1, idata=idata, idesign=~myfactor_nc)
Note: model has only an intercept; equivalent type-III tests substituted.

Type III Repeated Measures MANOVA Tests: Pillai test statistic
             Df test stat approx F num Df den Df   Pr(>F)
(Intercept)  1   0.93790   60.409      1      4 0.001477 **
myfactor_nc  1   0.83478    7.579      2      3 0.067156 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

With just 3 distinct levels, however, you could just make myfactor_nc an 
ordered factor, not defining the contrasts explicitly, and then you'd get both 
linear and quadratic contrasts.

I hope this helps,
  John

-----------------------------------------------
John Fox, Professor
McMaster University
Hamilton, Ontario, Canada
http://socserv.socsci.mcmaster.ca/jfox/



-----Original Message-----
From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of
Cristiano Alessandro
Sent: Monday, December 14, 2015 8:43 AM
To: r-help@r-project.org
Subject: [R] repeated measure with quantitative independent variable

Hi all,

I am new to R, and I am trying to set up a repeated measure analysis
with a quantitative (as opposed to factorized/categorical)
within-subjects variable. For a variety of reasons I am not using
linear-mixed models, rather I am trying to fit a General Linear Model (I
am aware of assumptions and limitations) to assess whether the value of
the within-subjects variable affects statistically significantly the
response variable. I have two questions. To make myself clear I propose
the following exemplary dataset (where myfactor_nc is the quantitative
within-subjects variable; i.e. each subject performs the experiment
three times -- nc_factor=1,2,3 -- and produces the response in variable
dv).

dv <- c(1,3,4,2,2,3,2,5,6,3,4,4,3,5,6);
subject <-
factor(c("s1","s1","s1","s2","s2","s2","s3","s3","s3","s4","s4","s4","s5
","s5","s5"));
myfactor_nc <- c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
mydata_nc <- data.frame(dv, subject, myfactor_nc)

*Question 1 (using function aov)*

Easily done...

am1_nc <- aov(dv ~ myfactor_nc + Error(subject/myfactor_nc),
data=mydata_nc)
summary(am1_nc)

Unlike the case when myfactor_nc is categorical, this produces three
error strata: Error: subject, Error: subject:myfactor_nc, Error: Within.
I cannot understand the meaning of the latter. How is that computed?

*Question 2 (using function lm)*

Now I would like to do the same with the functions lm() and Anova()
(from the car package). What I have done so far (please correct me if I
am mistaking) is the following:

# Unstack the dataset
dvm <- with(mydata_nc, cbind(dv[myfactor_nc==1],dv[myfactor_nc==2],
dv[myfactor_nc==3]))

#Fit the linear model
mlm1 <- lm(dvm ~ 1)

(is that model above correct for my design?)

Now I should use the Anova function, but it seems that it only accepts
factors, and not quantitative within-subject variable.

Any help is highly appreciated!

Thanks
Cristiano

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to