Dear all, I am unsure about how to specify a model in R and I thought of asking some advice to the list. I have two groups ("Group"= A, B) of subjects, with each subject undertaking a test before and after a certain treatment ("Time"= pre, post). Additionally, I want to enter the age of the subject as a covariate (the performance on the test is affected by age), and I also want to allow different slopes for the effect of age in the two groups of subjects (age might affect the performance of the two groups differentially). Is the right model to use something like the following? aov (y ~ Group*Time + Group*Age + Error(Subj/Group), data=df1 ) (If I enter that command, within summary, I get the following: Error() model is singular in: aov(y ~ Group * Time + Group * Age + Error(Subj/Group), data = df1)) As a second question: I have an outlier in one of the two groups. The outlier is not due to a measurement error but simply to the performance of the subject (possibly related to his medical history, but I have no way to determine that with certainty). This subject is signaled to be an outlier within its group: averaging the pre and post values for the performance of the subjects in his group, the Grubbs test yields a probability of 0.002 for the subject to be an outlier (the subject is marked as a significant outlier also if I perform the test separately on the pre and the post data). If I remove this subject from its group, I get significant effects of Group and Group X Age (not using the R formula above, but another stat software), but if I leave the subject in those effects disappear. Since I understand that removing outliers is always worrysome, I would like to know if it is possible in R to estimate a model similar to that outlined above but in a resistant/robust fashion, and what would be the actual syntax to do that. I will very much appreciate any help or suggestion about this. thanks in advance and best regards giuseppe Giuseppe Pagnoni Dept. of Psychiatry 101 Woodruff Circle Altanta, GA 30322 Tel: 404-712-9582 Fax: 404-727-3233 [[alternative HTML version deleted]]
Dear all, First of all I apologize if you received this twice: I was checking the archive and I noticed that the text was scrubbed from the message, probably due to some setting in my e-mail program. I am unsure about how to specify a model in R and I thought of asking some advice to the list. I have two groups ("Group"= A, B) of subjects, with each subject undertaking a test before and after a certain treatment ("Time"= pre, post). Additionally, I want to enter the age of the subject as a covariate (the performance on the test is affected by age), and I also want to allow different slopes for the effect of age in the two groups of subjects (age might affect the performance of the two groups differentially). Is the right model to use something like the following? aov (y ~ Group*Time + Group*Age + Error(Subj/Group), data=df1 ) (If I enter that command, within summary, I get the following: Error() model is singular in: aov(y ~ Group * Time + Group * Age + Error(Subj/Group), data = df1)) As a second question: I have an outlier in one of the two groups. The outlier is not due to a measurement error but simply to the performance of the subject (possibly related to his medical history, but I have no way to determine that with certainty). This subject is signaled to be an outlier within its group: averaging the pre and post values for the performance of the subjects in his group, the Grubbs test yields a probability of 0.002 for the subject to be an outlier (the subject is marked as a significant outlier also if I perform the test separately on the pre and the post data). If I remove this subject from its group, I get significant effects of Group and Group X Age (not using the R formula above, but another stat software), but if I leave the subject in those effects disappear. Since I understand that removing outliers is always worrysome, I would like to know if it is possible in R to estimate a model similar to that outlined above but in a resistant/robust fashion, and what would be the actual syntax to do that. I will very much appreciate any help or suggestion about this. thanks in advance and best regards giuseppe -- ----- Giuseppe Pagnoni Psychiatry and Behavioral Sciences Emory University School of Medicine 101 Woodruff Circle, Suite 4000 Atlanta, GA, 30322 tel: 404.712.8431 fax: 404.727.3233
On Monday 24 July 2006 20:16, Giuseppe Pagnoni wrote:> Dear all, > > First of all I apologize if you received this twice: I was checking the > archive and I noticed that the text was scrubbed from the message, > probably due to some setting in my e-mail program. > > > I am unsure about how to specify a model in R and I thought of asking > some advice to the list. I have two groups ("Group"= A, B) of subjects, > with each subject undertaking a test before and after a certain > treatment ("Time"= pre, post). Additionally, I want to enter > the age of the subject as a covariate (the performance on the test is > affected by age), and I also want to allow different slopes for the > effect of age in the two groups of subjects (age might affect the > performance of the two groups differentially). > > Is the right model to use something like the following? > > aov (y ~ Group*Time + Group*Age + Error(Subj/Group), data=df1 ) > > (If I enter that command, within summary, I get the following: > Error() model is singular in: aov(y ~ Group * Time + Group * Age + > Error(Subj/Group), data = df1)) >try: aov(y~Group*Time*Age + Error(Subj*Time*Age), data = df1) which specifies an ANOVA (but not with mixed effects) with three main effects and all interaction terms plus an error term that is independent between groups (!) and relates to within subjects variability. For a "real" mixed effects analysis you should use the (n)lme function from the nlme package and one possible model could look like this: lme(y~Group*Time, random ~ age | Subj, data = df1) but the exact specification depends on your assumptions, in which it is possible to specify two or three models and compare their fits with anova(). For more information on mixed effects you should consult: Jose C. Pinheiro & Douglas M. Bates (2000) Mixed-Effects Models in S and S-PLUS. Springer, New York. Good luck, Thilo> > As a second question: I have an outlier in one of the two groups. The > outlier is not due to a measurement error but simply to the performance > of the subject (possibly related to his medical history, but I have no > way to determine that with certainty). This subject is > signaled to be an outlier within its group: averaging the pre and post > values for the performance of the subjects in his group, the Grubbs test > yields a probability of 0.002 for the subject to be an outlier (the > subject is marked as a significant outlier also if I > perform the test separately on the pre and the post data). > > If I remove this subject from its group, I get significant effects of > Group and Group X Age (not using the R formula above, but another stat > software), but if I leave the subject in those effects disappear. Since > I understand that removing outliers is always worrysome, I would like to > know if it is possible in R to estimate a model similar to that outlined > above but in a resistant/robust fashion, and what would be the actual > syntax to do that. I will very much appreciate any help or suggestion > about this. > > thanks in advance and best regards > > giuseppe-- Thilo Kellermann Department of Psychiatry and Psychotherapy RWTH Aachen University Pauwelstr. 30 52074 Aachen Tel.: +49 (0)241 / 8089977 Fax.: +49 (0)241 / 8082401 E-Mail: thilo.kellermann at rwth-aachen.de
Possibly Parallel Threads
- Repeated-measures anova with a within-subject covariate (or varying slopes random-effects?)
- arrays of lists in R ("cell arrays" in Matlab)
- Post-hoc t-tests in 2-way repeated measure ANOVA
- Function nlme::lme in Ubuntu (but not Win or OS X): "Non-positive definite approximate variance-covariance"
- (REPOST) Simple main effects in 2-way repeated measure ANOVA