Est-il logique qu'un effet fixe soit imbriqué dans un effet aléatoire, ou comment coder des mesures répétées dans R (aov et lmer)?

23

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 Valencec'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:

  1. Pourquoi Error(subject/A)et non Error(subject)?
  2. Est-ce (1|subject)ou (1|subject)+(1|A:subject)ou simplement (1|A:subject)?
  3. 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?

amibe dit réintégrer Monica
la source
2
Juste un petit commentaire pour dire que, parlant strictement conceptuellement , à mon avis, il n'a pratiquement jamais de sens d'avoir un facteur fixe imbriqué dans un facteur aléatoire. J'ai lu au moins un auteur de manuel en dire autant (je ne me souviens pas de la référence pour le moment). Cela dit, il est possible que certaines des spécifications de modèle que vous avez écrites ci-dessus soient statistiquement équivalentes à des modèles qui ont plus de sens ... Je devrais y réfléchir davantage et jouer avec un peu.
Jake Westfall
4
En fait, je suppose que cela a du sens si vous pensez à la façon dont R interprète la syntaxe A / B: il étend simplement cela à A + A: B. Donc, si nous considérons un terme aléatoire comme 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 est subject + subject:condition, qui est un modèle parfaitement valide avec des effets de sujet aléatoires et des pentes aléatoires du sujet X.
Jake Westfall
@JakeWestfall Merci, c'est dans le sens que j'y pense moi-même maintenant, mais j'aimerais beaucoup que quelqu'un l'explique correctement. En fait, je suis surpris que cela se révèle être une question non triviale; Je m'attendais à ce que vous soyez l'une des personnes qui répondraient tout de suite. Mais c'est un soulagement, car à l'origine, je pensais que ma confusion devait être stupide. Soit dit en passant, existe-t-il des références lmet des aovformules standard ? Si je veux avoir une source faisant autorité sur ce que aovfait exactement (est-ce un wrapper pour lm?) Et comment les Error()termes fonctionnent, où dois-je chercher?
amibe dit Réintégrer Monica
1
@amoeba Oui, aovest un wrapper pour lmdans le sens qui lmest utilisé pour l'ajustement des moindres carrés, mais aovfait un travail supplémentaire (notamment la traduction du Errorterme pour lm). La source faisant autorité est le code source ou éventuellement la référence donnée dans help("aov"): Chambers et al (1992). Mais je n'ai pas accès à cette référence, donc je regarderais le code source.
Roland

Réponses:

12

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:

Est-il logique qu'un effet fixe soit imbriqué dans un effet aléatoire, ou comment coder des mesures répétées dans R (aov et lmer)?

(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, et lme4nous voudrons inclure Subjectle 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:

Pourquoi une erreur (sujet / A) et non une erreur (sujet)?

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.

Est-ce (1 | sujet) ou (1 | sujet) + (1 | A: sujet) ou simplement (1 | A: sujet)?

Cela concerne cette question. Dans ce cas, toutes les formulations d'effets aléatoires suivantes conduisent exactement au même résultat:

(1|subject)
(1|A:subject)
(1|subject) + (1|A:subject)
(1|subject) + (1|A:subject) + (1|B:subject)

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' cakeensemble de données dans le lme4, nous constatons que ce ne sera généralement pas le cas. De la documentation, voici la configuration expérimentale:

Données sur l'angle de rupture des gâteaux au chocolat préparés avec trois recettes différentes et cuits à six températures différentes. Il s'agit d'une conception à parcelles divisées, les recettes étant des unités entières et les différentes températures étant appliquées aux sous-unités (en répétitions). Les notes expérimentales suggèrent que la numérotation répliquée représente l'ordre temporel.

Un cadre de données avec 270 observations sur les 5 variables suivantes.

replicate un facteur de niveaux 1 à 15

recipe un facteur avec les niveaux A, B et C

temperature un facteur ordonné avec des niveaux 175 <185 <195 <205 <215 <225

temp valeur numérique de la température de cuisson (degrés F).

angle un vecteur numérique donnant l'angle auquel le gâteau s'est cassé.

Donc, nous avons répété des mesures à l'intérieur replicate, et nous sommes également intéressés par les facteurs fixes recipeet temperature(nous pouvons ignorer tempcar il s'agit simplement d'un codage différent de temperature), et nous pouvons visualiser la situation en utilisant xtabs:

> xtabs(~recipe+replicate,data=cake)

     replicate
recipe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
     A 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     B 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     C 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6

S'il recipes'agissait d'un effet aléatoire, nous dirions qu'il s'agit d'effets aléatoires croisés. En aucun cas recipe An'appartient à replicate 1ou toute autre réplique.

> xtabs(~temp+replicate,data=cake)

     replicate
temp  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  175 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  185 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  195 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  205 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  215 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  225 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3

De même pour temp.

Le premier modèle que nous pourrions adapter est donc:

> lmm1 <-  lmer(angle ~ recipe * temperature + (1|replicate), cake, REML= FALSE)

Cela traitera chacun replicatecomme 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'inclure recipeun autre effet aléatoire (croisé), mais ce serait mal avisé car nous n'avons que 3 niveaux de recipedonc nous ne pouvons pas nous attendre à ce que le modèle estime bien les composantes de la variance. Au lieu de cela, nous pouvons utiliser replicate:recipecomme 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, replicatenous aurons maintenant 45 interceptions aléatoires pour chacune des combinaisons distinctes:

lmm3 <-  lmer(angle ~ recipe * temperature + (1|replicate:recipe) , cake, REML= FALSE)

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

Pourquoi (1|subject) + (1|A:subject)et pas (1|subject) + (0+A|subject)ou même simplement (A|subject)?

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 que Ac'est imbriqué à l'intérieur subject, ce qui dans tourner signifie (pour moi) que chaque niveau de Ase produit en 1 et seulement 1 niveau subjectqui 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.

Robert Long
la source
Merci beaucoup (+1). Je ne suis pas sûr de comprendre l' cakeensemble de données. Il semble que la réplication soit imbriquée dans la recette; la raison xtabsne 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.
amibe dit Réintégrer Monica
J'ai concentré ma question uniquement sur les facteurs internes au sujet, ce serait donc comme se limiter 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.
amibe dit Réintégrer Monica
Et en ce qui concerne aovvous avez raison , il semble que Error(subject/A)et Error(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 il Error(subject/(A*B))et Error(subject)ne sont pas équivalents. Ma compréhension actuelle est que c'est parce que la première comprend des pentes aléatoires.
amibe dit Réintégrer Monica
@amoeba l' cakeensemble 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.
Robert Long
Merci. Dans l'attente de toute mise à jour, ainsi que de la mise à jour que Placidia prépare. En attendant, je pense que je vais faire une récompense ici.
amibe dit Réintégrer Monica
3

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.

Placidia
la source
2
+1, merci beaucoup. Tout dans votre réponse est logique pour moi. Cependant, je pense que nous devrions convenir que le mot «imbriqué» est utilisé dans deux sens distincts et cela crée de la confusion. @RobertLong dit que A est imbriqué dans B lorsque chaque niveau de B se produit avec différents niveaux de classes AEg sont imbriqués dans les écoles qui sont imbriquées dans les villes, etc. Dans votre exemple, les sujets sont imbriqués dans le facteur de traitement / contrôle. Vous dites que le temps est imbriqué dans les sujets, mais tous les niveaux de temps se produisent avec tous les sujets, donc Robert dirait qu'ils sont croisés! Il s'agit d'un autre "imbriqué". Droite?
amibe dit Réintégrer Monica
1
Dans votre exemple, il est clair que le temps et le traitement sont des effets fixes, mais il est loin d'être clair que le temps est imbriqué chez les patients. Pouvez-vous fournir une définition de «imbriqué»?
Joe King
Mon erreur. Je confondais la nidification et les mesures répétées. J'ai changé ma réponse - encore!.
Placidia
En fait, j'ai aimé votre réponse originale avec des corrections / ajouts plus tôt dans la journée. Il y avait beaucoup d'informations utiles pour ma question parce que, comme vous le voyez, je m'intéresse ici aux "mesures répétées" (et la question sur "l'imbrication" n'était qu'un point terminologique). Je vous suggère de conserver la révision précédente!
amibe dit Réintégrer Monica
2
En l'écrivant, j'ai réalisé que les effets aléatoires des mesures répétées sont imbriqués, et je veux tester le fonctionnement des mathématiques et les degrés de liberté. J'amplifierai ma réponse quand je serai sûr de l'avoir cloué!
Placidia