J'essayais d'ajuster une série de données temporelles (sans répliques) en utilisant un modèle de régression. Les données se présentent comme suit:
> xx.2
value time treat
1 8.788269 1 0
2 7.964719 6 0
3 8.204051 12 0
4 9.041368 24 0
5 8.181555 48 0
6 8.041419 96 0
7 7.992336 144 0
8 7.948658 1 1
9 8.090211 6 1
10 8.031459 12 1
11 8.118308 24 1
12 7.699051 48 1
13 7.537120 96 1
14 7.268570 144 1
En raison du manque de répétitions, je traite le temps comme une variable continue. La colonne "traiter" affiche respectivement les données de cas et de contrôle.
Tout d'abord, j'adapte le modèle "valeur = temps * traiter" avec "lm" dans R
:
summary(lm(value~time*treat,data=xx.2))
Call:
lm(formula = value ~ time * treat, data = xx.2)
Residuals:
Min 1Q Median 3Q Max
-0.50627 -0.12345 0.00296 0.04124 0.63785
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.493476 0.156345 54.325 1.08e-13 ***
time -0.003748 0.002277 -1.646 0.1307
treat -0.411271 0.221106 -1.860 0.0925 .
time:treat -0.001938 0.003220 -0.602 0.5606
La valeur du temps et du traitement n'est pas significative.
Avec anova, j'ai obtenu des résultats différents:
summary(aov(value~time*treat,data=xx.2))
Df Sum Sq Mean Sq F value Pr(>F)
time 1 0.7726 0.7726 8.586 0.0150 *
treat 1 0.8852 0.8852 9.837 0.0106 *
time:treat 1 0.0326 0.0326 0.362 0.5606
Residuals 10 0.8998 0.0900
La valeur du temps et du traitement a changé.
Avec la régression linéaire, si j'ai raison, cela signifie que le temps et le traitement n'ont aucune influence significative sur la valeur, mais avec l'ANOVA, cela signifie que le temps et le traitement ont une influence significative sur la valeur.
Quelqu'un pourrait-il m'expliquer pourquoi il y a une différence entre ces deux méthodes et laquelle utiliser?
lm
etaov
vous pouvez vérifier qu'ils produisent des ajustements identiques; par exemple, comparer leurs résidus avec laresiduals
fonction ou examiner leurs coefficients (la$coefficients
fente dans les deux cas).Réponses:
L'ajustement pour lm () et aov () est identique mais le rapport est différent. Les tests t sont l'impact marginal des variables en question, compte tenu de la présence de toutes les autres variables. Les tests F sont séquentiels - ils testent donc l'importance du temps en présence de rien d'autre que l'interception, de traiter en présence de rien d'autre que l'interception et le temps, et de l'interaction en présence de tout ce qui précède.
En supposant que vous vous intéressez à l'importance du traitement, je suggère que vous adaptiez deux modèles, un avec et un sans, comparez les deux en mettant les deux modèles dans anova (), et utilisez ce test F. Cela permettra de tester le traitement et l'interaction simultanément.
Considérer ce qui suit:
la source
aov
.anova()
anova()
la source
Les deux réponses ci-dessus sont excellentes, mais j'ai pensé en ajouter un peu plus. Une autre pépite d'informations peut être glanée d' ici .
Lorsque vous signalez les
lm()
résultats avec le terme d'interaction, vous dites quelque chose comme: "le traitement 1 est différent du traitement 0 (bêta! = 0, p = 0,0925), lorsque le temps est défini sur la valeur de base de 1 ". Alors que lesanova()
résultats ( comme mentionné précédemment ) ignorent toutes les autres variables et ne se préoccupent que des différences de variance.Vous pouvez le prouver en supprimant votre terme d'interaction et en utilisant un modèle simple avec seulement deux effets principaux ( m1 ):
Dans ce cas, nous voyons que les valeurs de p rapportées sont les mêmes; c'est parce que dans le cas de ce modèle plus simple,
la source
summary(lm)
etanova(lm)
ne donnera pas toujours un résultat identique s'il n'y a pas de terme d'interaction. Il se trouve que dans ces donnéestime
ettreat
sont orthogonales, les sommes de carrés de type I (séquentiel) et III (marginal) donnent des résultats identiques.REPRODUCTION DU PROBLÈME
QUELQUES MODÈLES UTILISÉS DANS L'EXPLICATION
FONCTIONNEMENT DE LM T_TEST ET RELATION AVEC F-TEST
COMMENT AOV FONCTIONNE ET CHOISIT DF DANS LES F-TESTS
NOTE IMPORTANTE
la source