EDIT 2: Au départ, je pensais que je devais exécuter une ANOVA à deux facteurs avec des mesures répétées d'un facteur, mais je pense maintenant qu'un modèle linéaire à effets mixtes fonctionnera mieux pour mes données. Je pense que je sais presque ce qui doit se passer, mais je suis encore dérouté par quelques points.
Les expériences que j'ai besoin d'analyser ressemblent à ceci:
- Les sujets ont été affectés à l'un des groupes de traitement
- Les mesures de chaque sujet ont été prises sur plusieurs jours
- Alors:
- Le sujet est imbriqué dans le traitement
- Le traitement est croisé avec le jour
(chaque sujet est affecté à un seul traitement et des mesures sont prises chaque jour sur chaque sujet)
Mon jeu de données contient les informations suivantes:
- Sujet = facteur de blocage (facteur aléatoire)
- Jour = facteur faisant l'objet de mesures répétées ou répétées (facteur fixe)
- Traitement = facteur de sujet (facteur fixe)
- Obs = variable mesurée (dépendante)
UPDATE OK, alors je suis allé parler à un statisticien, mais il utilise SAS. Il pense que le modèle devrait être:
Traitement + Jour + Sujet (Traitement) + Jour * Sujet (Traitement)
Il est évident que sa notation est différente de la syntaxe R, mais ce modèle est censé prendre en compte:
- Traitement (fixe)
- Jour (fixe)
- l'interaction Traitement * Jour
- Sujet imbriqué dans le traitement (aléatoire)
- Jour croisé avec "Sujet pendant le traitement" (aléatoire)
Alors, est-ce la syntaxe correcte à utiliser?
m4 <- lmer(Obs~Treatment*Day + (1+Treatment/Subject) + (1+Day*Treatment/Subject), mydata)
Je suis particulièrement préoccupé par le fait que la partie "Jour dans le traitement" soit correcte. Quelqu'un est-il familier avec SAS ou a-t-il l'assurance de comprendre ce qui se passe dans son modèle et de savoir si ma triste tentative de syntaxe correspond?
Voici mes précédentes tentatives de création d'un modèle et d'une syntaxe d'écriture (abordées dans les réponses et les commentaires):
m1 <- lmer(Obs ~ Treatment * Day + (1 | Subject), mydata)
Comment puis-je gérer le fait que le sujet est imbriqué dans le traitement? Comment m1
diffère de:
m2 <- lmer(Obs ~ Treatment * Day + (Treatment|Subject), mydata)
m3 <- lmer(Obs ~ Treatment * Day + (Treatment:Subject), mydata)
et sont m2
et m3
équivalent (et sinon, pourquoi)?
De plus, dois-je utiliser nlme au lieu de lme4 si je veux spécifier la structure de corrélation (comme correlation = corAR1
)? Selon Mesures répétées , pour une analyse de mesures répétées avec des mesures répétées sur un facteur, la structure de covariance (la nature des corrélations entre les mesures d'un même sujet) est importante.
Lorsque j'essayais de réaliser une ANOVA à mesures répétées, j'avais décidé d'utiliser un SS de type II. est-ce toujours pertinent, et si oui, comment puis-je spécifier cela?
Voici un exemple de ce à quoi ressemblent les données:
mydata <- data.frame(
Subject = c(13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 62, 63, 64, 65),
Day = c(rep(c("Day1", "Day3", "Day6"), each=28)),
Treatment = c(rep(c("B", "A", "C", "B", "C", "A", "A", "B", "A", "C", "B", "C",
"A", "A", "B", "A", "C", "B", "C", "A", "A"), each = 4)),
Obs = c(6.472687, 7.017110, 6.200715, 6.613928, 6.829968, 7.387583, 7.367293,
8.018853, 7.527408, 6.746739, 7.296910, 6.983360, 6.816621, 6.571689,
5.911261, 6.954988, 7.624122, 7.669865, 7.676225, 7.263593, 7.704737,
7.328716, 7.295610, 5.964180, 6.880814, 6.926342, 6.926342, 7.562293,
6.677607, 7.023526, 6.441864, 7.020875, 7.478931, 7.495336, 7.427709,
7.633020, 7.382091, 7.359731, 7.285889, 7.496863, 6.632403, 6.171196,
6.306012, 7.253833, 7.594852, 6.915225, 7.220147, 7.298227, 7.573612,
7.366550, 7.560513, 7.289078, 7.287802, 7.155336, 7.394452, 7.465383,
6.976048, 7.222966, 6.584153, 7.013223, 7.569905, 7.459185, 7.504068,
7.801867, 7.598728, 7.475841, 7.511873, 7.518384, 6.618589, 5.854754,
6.125749, 6.962720, 7.540600, 7.379861, 7.344189, 7.362815, 7.805802,
7.764172, 7.789844, 7.616437, NA, NA, NA, NA))
la source
Je ne me sens pas assez à l'aise pour commenter votre problème d'erreurs autocorrélées (ni pour les différentes implémentations de lme4 vs nlme), mais je peux parler du reste.
Votre modèle
m1
est un modèle à interception aléatoire, dans lequel vous avez inclus l’interaction croisée entre Traitement et Jour (l’effet de Jour peut varier d’un groupe de traitement à l’autre). Afin de permettre aux changements dans le temps de différer selon les participants (par exemple, de modéliser explicitement les différences individuelles dans les changements dans le temps), vous devez également permettre que l'effet de Day soit aléatoire . Pour ce faire, vous devez spécifier:Dans ce modèle:
Les interceptions et l'effet du jour sur le score sont aléatoires (chaque sujet est autorisé à avoir un score prédit différent à Day = 0 et un changement linéaire différent dans le temps). La covariance entre les intersections et les pentes est également modélisée (elles sont autorisées à être covary).
Comme vous pouvez le constater, l’interprétation des coefficients des deux variables nominales est conditionnelle à Day = 0. Ils vous diront si le score prévu au jour = 0 pour la catégorie de référence est significativement différent des deux groupes de traitement restants. Par conséquent, il est important que vous décidiez de centrer votre variable Day. Si vous centrez sur le jour 1, les coefficients vous indiqueront si le score prévu pour la catégorie de référence au jour 1 est significativement différent du score prévu des deux groupes restants. De cette façon, vous pouvez voir s'il existe des différences préexistantes entre les groupes . Si vous centrez sur le jour 3, les coefficients vous indiqueront si le score prévu pour la catégorie de référence au jour 3est significativement différent du score prédit des deux groupes restants. De cette façon, vous pourriez voir s'il y a des différences entre les groupes à la fin de l'intervention .
Enfin, notez que les sujets ne sont pas imbriqués dans Traitement. Vos trois traitements ne sont pas des niveaux aléatoires d'une population de niveaux auxquels vous souhaitez généraliser vos résultats. Au contraire, comme vous l'avez mentionné, vos niveaux sont fixes et vous souhaitez généraliser vos résultats à ces niveaux uniquement. (Sans oublier, vous ne devriez pas utiliser la modélisation à multiniveaux si vous n'avez que 3 unités de niveau supérieur; voir Maas & Hox, 2005.) Le traitement est plutôt un prédicteur de niveau 2, c'est-à-dire un prédicteur qui prend une seule valeur sur plusieurs jours. (unités de niveau 1) pour chaque matière. Par conséquent, il est simplement inclus en tant que prédicteur dans votre modèle.
Référence:
Maas, CJM et Hox, JJ (2005). Des échantillons suffisants pour la modélisation à plusieurs niveaux. Méthodologie: Revue européenne des méthodes de recherche en sciences du comportement et des sciences sociales , 1 , 86-92.
la source
...,control=lmerControl(check.nobs.vs.nRE="ignore")
. voir ce lien pour plus d'explications par Ben Bolker.(1 + Day|Subject)
signifie un modèle de pentes aléatoires, qui permet à la valeur initiale de chaque sujet (Intercept) et au taux de changement du résultat d'être différents.