J'ai regardé à travers cet aperçu des formules lm / lmer R par @conjugateprior et je suis devenu confus par l'entrée suivante:
Supposons maintenant que A est aléatoire, mais B est fixe et B est imbriqué dans A.
aov(Y ~ B + Error(A/B), data=d)
Ci-dessous, une formule de modèle mixte analogue lmer(Y ~ B + (1 | A:B), data=d)
est fournie pour le même cas.
Je ne comprends pas très bien ce que cela signifie. Dans une expérience où les sujets sont divisés en plusieurs groupes, nous aurions un facteur aléatoire (sujets) imbriqué dans un facteur fixe (groupes). Mais comment un facteur fixe peut-il être imbriqué dans un facteur aléatoire? Quelque chose de fixe imbriqué dans des sujets aléatoires? Est-ce même possible? Si ce n'est pas possible, ces formules R ont-elles du sens?
Cette vue d' ensemble est mentionné partiellement fondé sur les pages de la personnalité-projet sur faire ANOVA dans R se base sur ce tutoriel sur des mesures répétées dans R . Voici l'exemple suivant pour les mesures répétées ANOVA:
aov(Recall ~ Valence + Error(Subject/Valence), data.ex3)
Ici, les sujets sont présentés avec des mots de valence variable (facteur à trois niveaux) et leur temps de rappel est mesuré. Chaque sujet est présenté avec des mots des trois niveaux de valence. Je ne vois rien imbriqué dans cette conception (il semble barré, selon la grande réponse ici ), et donc je penserais naïvement que Error(Subject)
ou (1 | Subject)
devrait être un terme aléatoire approprié dans ce cas. La Subject/Valence
"nidification" (?) Prête à confusion.
Notez que je comprends que Valence
c'est un facteur intra-sujet . Mais je pense que ce n'est pas un facteur "imbriqué" au sein des sujets (car tous les sujets connaissent les trois niveaux de Valence
).
Mise à jour. J'explore les questions sur CV concernant le codage des mesures répétées ANOVA en R.
Ici, ce qui suit est utilisé pour les mesures fixes intra-sujet / répétées A et aléatoires
subject
:summary(aov(Y ~ A + Error(subject/A), data = d)) anova(lme(Y ~ A, random = ~1|subject, data = d))
Ici pour deux effets fixes intra-sujet / mesures répétées A et B:
summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d)) lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)
Voici trois effets intra-sujet A, B et C:
summary(aov(Y ~ A*B*C + Error(subject/(A*B*C)), data=d)) lmer(Y ~ A*B*C + (1|subject) + (0+A|subject) + (0+B|subject) + (0+C|subject) + (0+A:B|subject) + (0+A:C|subject) + (0+B:C|subject), data = d)
Mes questions:
- Pourquoi
Error(subject/A)
et nonError(subject)
? - Est-ce
(1|subject)
ou(1|subject)+(1|A:subject)
ou simplement(1|A:subject)
? - Est-ce
(1|subject) + (1|A:subject)
ou(1|subject) + (0+A|subject)
, et pourquoi pas simplement(A|subject)
?
À ce jour, j'ai vu des fils qui prétendent que certaines de ces choses sont équivalentes (par exemple, le premier: une affirmation selon laquelle ils sont les mêmes, mais une revendication opposée sur SO ; le troisième: une sorte de revendication selon laquelle ils sont les mêmes ). Sont-ils?
la source
subject/condition
, cela est conceptuellement douteux car il semble suggérer que les conditions sont imbriquées chez les sujets, alors que c'est clairement le contraire, mais le modèle qui est réellement en forme estsubject + subject:condition
, qui est un modèle parfaitement valide avec des effets de sujet aléatoires et des pentes aléatoires du sujet X.lm
et desaov
formules standard ? Si je veux avoir une source faisant autorité sur ce queaov
fait exactement (est-ce un wrapper pourlm
?) Et comment lesError()
termes fonctionnent, où dois-je chercher?aov
est un wrapper pourlm
dans le sens quilm
est utilisé pour l'ajustement des moindres carrés, maisaov
fait un travail supplémentaire (notamment la traduction duError
terme pourlm
). La source faisant autorité est le code source ou éventuellement la référence donnée danshelp("aov")
: Chambers et al (1992). Mais je n'ai pas accès à cette référence, donc je regarderais le code source.Réponses:
Dans les modèles mixtes, le traitement des facteurs comme fixes ou aléatoires, en particulier lorsqu'ils sont croisés, partiellement croisés ou imbriqués, peut conduire à beaucoup de confusion. En outre, il semble y avoir des différences de terminologie entre ce que l'on entend par imbrication dans le monde des expériences anova / conçues et le monde des modèles mixtes / multiniveaux.
Je ne prétends pas connaître toutes les réponses, et ma réponse ne sera pas complète (et peut produire d'autres questions) mais j'essaierai de résoudre certains des problèmes ici:
(le titre de la question)
Non, je ne pense pas que cela ait du sens. Lorsque nous avons affaire à des mesures répétées, alors, quelle que soit la raison pour laquelle les mesures sont répétées, elles seront aléatoires, appelons-le simplement
Subject
, etlme4
nous voudrons inclureSubject
le côté droit d'une ou plusieurs|
dans la partie aléatoire de la formule. Si nous avons d'autres effets aléatoires, ceux-ci sont soit croisés, partiellement croisés ou imbriqués - et ma réponse à cette question répond à cela.Le problème avec ces expériences conçues de type anova semble être de savoir comment traiter les facteurs qui seraient normalement considérés comme fixes, dans une situation de mesures répétées, et les questions dans le corps du PO en parlent:
Je n'utilise pas d'habitude
aov()
donc je pourrais manquer quelque chose mais, pour moi,Error(subject/A)
c'est très trompeur dans le cas de la question liée .Error(subject)
conduit en fait exactement aux mêmes résultats.Cela concerne cette question. Dans ce cas, toutes les formulations d'effets aléatoires suivantes conduisent exactement au même résultat:
Cependant, cela est dû au fait que le jeu de données simulé dans la question n'a aucune variation dans quoi que ce soit, il est simplement créé avec
Y = rnorm(48)
. Si nous prenons un ensemble de données réel tel que l'cake
ensemble de données dans lelme4
, nous constatons que ce ne sera généralement pas le cas. De la documentation, voici la configuration expérimentale:Donc, nous avons répété des mesures à l'intérieur
replicate
, et nous sommes également intéressés par les facteurs fixesrecipe
ettemperature
(nous pouvons ignorertemp
car il s'agit simplement d'un codage différent detemperature
), et nous pouvons visualiser la situation en utilisantxtabs
:S'il
recipe
s'agissait d'un effet aléatoire, nous dirions qu'il s'agit d'effets aléatoires croisés. En aucun casrecipe A
n'appartient àreplicate 1
ou toute autre réplique.De même pour
temp
.Le premier modèle que nous pourrions adapter est donc:
Cela traitera chacun
replicate
comme la seule source de variation aléatoire (autre que le résiduel bien sûr). Mais il pourrait y avoir des différences aléatoires entre les recettes. Nous pourrions donc être tentés d'inclurerecipe
un autre effet aléatoire (croisé), mais ce serait mal avisé car nous n'avons que 3 niveaux derecipe
donc nous ne pouvons pas nous attendre à ce que le modèle estime bien les composantes de la variance. Au lieu de cela, nous pouvons utiliserreplicate:recipe
comme variable de regroupement qui nous permettra de traiter chaque combinaison de répliques et de recettes comme un facteur de regroupement distinct. Ainsi, alors qu'avec le modèle ci-dessus, nous aurions 15 interceptions aléatoires pour les niveaux de,replicate
nous aurons maintenant 45 interceptions aléatoires pour chacune des combinaisons distinctes:Notez que nous avons maintenant (très légèrement) des résultats différents indiquant qu'il existe une certaine variabilité aléatoire due à la recette, mais pas beaucoup.
Nous pourrions également faire la même chose avec
temperature
.Maintenant, pour revenir à votre question, vous demandez également
Je ne suis pas tout à fait sûr d'où cela (en utilisant des pentes aléatoires) vient - cela ne semble pas se poser dans les 2 questions liées - mais mon problème
(1|subject) + (1|A:subject)
est que c'est exactement la même chose que(1|subject/A)
ce qui signifie queA
c'est imbriqué à l'intérieursubject
, ce qui dans tourner signifie (pour moi) que chaque niveau deA
se produit en 1 et seulement 1 niveausubject
qui n'est clairement pas le cas ici.J'ajouterai et / ou modifierai probablement cette réponse après y avoir réfléchi un peu plus, mais je voulais faire part de mes premières réflexions.
la source
cake
ensemble de données. Il semble que la réplication soit imbriquée dans la recette; la raisonxtabs
ne montre pas que c'est exactement la raison que vous décrivez dans votre réponse imbriquée vs croisée: la réplication est codée de manière confuse comme 1-15 et non comme 1-45. Pour chaque recette, 15 "réplications" ont été faites avec 6 gâteaux; chaque gâteau a ensuite été cuit à différentes températures. La recette est donc un facteur inter-sujet et la température est un facteur intra-sujet. Donc, selon votre réponse, ça devrait être(1|recipe/replicate)
. Non?(1|replicate:recipe)
est probablement équivalent.cake
à une seule recette. En ce qui concerne le troisième point dont vous dites que vous ne savez pas d'où il vient, veuillez consulter le tout dernier lien dans mon Q, avec un exemple de trois facteurs intra-sujet. Voir aussi le commentaire surévalué de Jake sous ce Q, où il mentionne des pentes aléatoires.aov
vous avez raison , il semble queError(subject/A)
etError(subject)
donner les mêmes résultats s'il n'y a pas d' autres facteurs, mais prendre un exemple du fil lié à deux facteurs, et ilError(subject/(A*B))
etError(subject)
ne sont pas équivalents. Ma compréhension actuelle est que c'est parce que la première comprend des pentes aléatoires.cake
ensemble de données n'était pas un bon exemple de travail. Mes excuses. J'y regarderai un peu plus en profondeur et j'essaierai probablement d'en trouver un meilleur pour l'illustration.Ooooops. Les commentateurs d'alerte ont remarqué que mon message était plein de bêtises. Je confondais les conceptions imbriquées et les conceptions de mesures répétées.
Ce site donne une ventilation utile de la différence entre les conceptions de mesures imbriquées et répétées. Fait intéressant, l'auteur montre les carrés moyens attendus pour fixe dans fixe, aléatoire dans fixe et aléatoire dans aléatoire - mais pas fixe dans aléatoire. Il est difficile d'imaginer ce que cela signifierait - si les facteurs du niveau A sont choisis au hasard, alors le hasard régit maintenant la sélection des facteurs du niveau B. Si 5 écoles sont choisies au hasard dans une commission scolaire, puis 3 enseignants sont choisis dans chaque école (enseignants emboîtés dans les écoles), les niveaux du facteur «enseignant» sont désormais une sélection aléatoire des enseignants de la commission scolaire grâce à la sélection aléatoire des écoles. Je ne peux pas "réparer" les professeurs que j'aurai dans l'expérience.
la source