Comment écrire le terme d'erreur en mesures répétées ANOVA dans R: Erreur (sujet) vs Erreur (sujet / heure)

10

Ma question est très étroitement liée à un poste précédent Spécifier le terme d' erreur () dans des mesures répétées ANOVA dans R . Cependant, j'aimerais avoir plus d'informations sur la façon de définir le terme d'erreur.

Supposons que j'ai une ANOVA répétée dans les deux sens, le facteur de l'effet entre les groupes est le traitement (contrôle vs placebo), tandis que le temps est l'effet intra-groupe mesuré plusieurs fois plus de 4 fois (T1 ~ T4). L'identification des patients est enregistrée en tant que sujet. Ici, j'ai emprunté les données d'un exemple du didacticiel de http://gjkerns.github.io/R/2012/01/20/power-sample-size.html pour que les données ressemblent à ceci

 Time Subject Method      NDI
 0min    1     Treat 51.01078
 15min   1     Treat 47.12314
 48hrs   1     Treat 26.63542
 96hrs   1     Treat 20.78196
 0min    2     Treat 42.61345
 15min   2     Treat 32.77171

Pour appliquer l'ANOVA:

aovComp <- aov(NDI ~ Time*Method + Error(Subject/Time), theData)
summary(aovComp)
Error: Subject
          Df Sum Sq Mean Sq F value Pr(>F)
Method     1    113   112.7   0.481  0.491
Residuals 58  13579   234.1              

Error: Subject:Time        
            Df Sum Sq Mean Sq F value  Pr(>F)    
Time          3  13963    4654 103.789 < 2e-16 ***
Time:Method   3   1221     407   9.074 1.3e-05 ***
Residuals   174   7803      45 

J'ai également essayé l'autre terme d'erreur:

aovComp1 <- aov(NDI ~ Time*Method + Error(Subject), theData)
summary(aovComp1)

Error: Subject      
          Df Sum Sq Mean Sq F value Pr(>F)
Method     1    113   112.7   0.481  0.491
Residuals 58  13579   234.1               

Error: Within
             Df Sum Sq Mean Sq F value  Pr(>F)    
Time          3  13963    4654 103.789 < 2e-16 ***
Time:Method   3   1221     407   9.074 1.3e-05 ***
Residuals   174   7803      45

Quelqu'un peut-il m'aider à expliquer les différences entre ces deux termes d'erreur? Si le premier terme est le bon, que signifient les résultats du deuxième terme d'erreur?

Mise à jour par @amoeba: Les deux sorties sont les mêmes donc il semble que dans ce cas il n'y a pas de différence, mais la question reste de savoir quelle est la différence de principe . Sont Error(subject)et Error(subject/time)toujours la même chose?

tiantianchen
la source
3
désolé, je viens de réaliser que ces deux termes donnent les mêmes résultats. Donc je suppose que ce sont les mêmes :-)
tiantianchen
1
J'espérais une explication à cela: /
vipin8169
Tout ce que je peux comprendre sur le terme d'erreur est le suivant >> "Dans une conception à mesures répétées, nous devons spécifier un terme d'erreur qui tient compte de la variation naturelle d'un participant à l'autre. (Par exemple, je pourrais réagir un peu différemment à la musique effrayante que vous) faire parce que j'aime les films de zombies et que vous les détestez!) Nous le faisons avec la fonction Error (): spécifiquement, nous disons que nous voulons contrôler cette variation entre les participants sur toutes nos variables intra-sujets. "
vipin8169
(+1) Ils sont équivalents uniquement lorsqu'il y a exactement 1 mesure pour chaque combinaison sujet / temps. S'il y a plus de mesures par combinaison sujet / temps (soit simplement parce que les mesures ont été répétées, soit parce qu'il y a un autre facteur B au sein du sujet, en plus de time), alors Error(subject)et Error(subject/time)cela produira des valeurs F et p différentes pour time.
amoeba
La même question sur SO: stackoverflow.com/questions/37497948 - malheureusement sans réponses entièrement satisfaisantes non plus (à mon humble avis).
amoeba

Réponses:

2

Tout d'abord, la subject/timenotation est timeimbriquée dans subject, et se développe donc en deux parties, subjectet l' subject:timeinteraction. Ainsi, la question devient plus correctement, quand faut-il spécifier l' subject:timeinteraction, et quelle différence cela fait-il?

Avant de répondre à cette question, une autre chose importante à réaliser est que tous les modèles incluent un terme d'erreur supplémentaire qui n'a pas besoin d'être spécifié, qui est le terme d'erreur associé aux mesures individuelles (le niveau le plus bas, si vous y réfléchissez hiérarchiquement).

Dans ce cas, l' subject:timeinteraction est le niveau le plus bas, qui est toujours inclus dans le modèle. Donc, utilisez Error(subject)et Error(subject/time)donnez le même résultat; la seule différence est que dans la sortie, ce niveau de résultats est appelé Withinpour le premier et est appelé subject:timepour le second.

Cependant, dans les cas où il y a plusieurs mesures à chaque subject/timecombinaison, il est nécessaire de spécifier l' subject:timeinteraction, car alors cette interaction n'est pas au niveau le plus bas.

Aaron a laissé Stack Overflow
la source
(J'ai eu une générosité ouverte sur cette question mais elle a malheureusement manqué hier ...) +1, mais je pense que cette réponse évite ce qui peut être le problème central ici: en présence de plusieurs mesures pour chaque subject/timecombinaison, pourquoi devrions-nous nécessairement vous voulez tester l'effet de timerelatif à l' subject:timeinteraction? C'est essentiellement le contenu de ma question ici stats.stackexchange.com/questions/286280 , donc j'invite tous les futurs lecteurs de ce fil à y chercher une justification conceptuelle.
amoeba
De plus, il y a des questions et réponses très similaires ici: stats.stackexchange.com/questions/247582 .
amoeba