Régression vs écart ANOVA (aov vs lm dans R)

21

J'ai toujours eu l'impression que la régression n'est qu'une forme plus générale d'ANOVA et que les résultats seraient identiques. Récemment, cependant, j'ai effectué une régression et une ANOVA sur les mêmes données et les résultats diffèrent considérablement. Autrement dit, dans le modèle de régression, les effets principaux et l'interaction sont significatifs, tandis que dans l'ANOVA, un effet principal n'est pas significatif. Je m'attends à ce que cela ait quelque chose à voir avec l'interaction, mais je ne vois pas clairement ce qui est différent dans ces deux façons de modéliser la même question. Si c'est important, un prédicteur est catégorique et l'autre est continu, comme indiqué dans la simulation ci-dessous.

Voici un exemple de l'apparence de mes données et des analyses que j'exécute, mais sans que les mêmes valeurs de p ou effets soient significatifs dans les résultats (mes résultats réels sont décrits ci-dessus):

group<-c(1,1,1,0,0,0)
moderator<-c(1,2,3,4,5,6)
score<-c(6,3,8,5,7,4)

summary(lm(score~group*moderator))
summary(aov(score~group*moderator))
Rebecca
la source
Le résumé (lm ()) vous donne les coefficients des contrastes que vous avez spécifiés, qui sont des contrastes de traitement en l'absence de spécification ici. Alors que résumé (aov ()) vous donne la table anova. Si vous voulez l'anova pour le modèle lm, vous avez besoin d'anova (lm ())
Matt Albrecht
groupest un vecteur numérique, est-ce exprès? Normalement, les facteurs de regroupement doivent avoir une classe factor, de sorte que la transformation en contrastes peut être gérée automatiquement par des fonctions comme lm(). Cela deviendra apparent une fois que vous aurez plus de deux groupes, ou utilisez un codage autre que 0/1 pour votre groupvariable.
caracal
Voir aussi stats.stackexchange.com/questions/268006/…
kjetil b halvorsen

Réponses:

17

La summaryfonction appelle différentes méthodes en fonction de la classe de l'objet. La différence n'est pas dans le aovvs lm, mais dans les informations présentées sur les modèles. Par exemple, si vous avez utilisé anova(mod1)et à la anova(mod2)place, vous devriez obtenir les mêmes résultats.

Comme le dit @Glen, la clé est de savoir si les tests rapportés sont basés sur des sommes de carrés de type 1 ou de type 3. Celles-ci diffèrent lorsque la corrélation entre vos variables explicatives n'est pas exactement de 0. Lorsqu'elles sont corrélées, certains SS sont uniques à un prédicteur et certains à l'autre, mais certains SS peuvent être attribués à l'un ou aux deux. ( Vous pouvez visualiser cela en imaginant le symbole MasterCard--il y a une petite région de chevauchement au centre.) Il n'y a pas de réponse unique dans cette situation, et malheureusement, c'est la norme pour les données non expérimentales. Une approche consiste pour l'analyste à utiliser son jugement et à affecter le SS qui se chevauchent à l'une des variables. Cette variable entre en premier dans le modèle. L'autre variable entre dans le deuxième modèle et obtient le SS qui ressemble à un cookie avec une bouchée retirée. Son effet peut être testé par ce qu'on appelle parfoisR2changer ou F changer. Cette approche utilise le SS de type 1. Alternativement, vous pouvez le faire deux fois avec chaque entrée en premier et signaler le test de changement F pour les deux prédicteurs. De cette façon, aucune variable n'obtient le SS en raison du chevauchement. Cette approche utilise des SS de type 3. (Je dois également vous dire que cette dernière approche est peu respectée.)

En suivant la suggestion de @BrettMagill dans le commentaire ci-dessous, je peux essayer de rendre cela un peu plus clair. (Notez que, dans mon exemple, j'utilise seulement 2 prédicteurs et aucune interaction, mais cette idée peut être étendue pour inclure ce que vous voulez.)

Type 1: SS (A) et SS (B | A)

Type 3: SS (A | B) et SS (B | A)

gung - Réintégrer Monica
la source
1
Ceci est une belle description du problème. Vous pouvez clarifier un peu le texte avec ceci: Type I: SS_A = SS (A) SS_B = SS (B | A) et SS_AB = SS (AB | B, A) Type III: SS_A = SS (A | B, AB ) et SS_B = SS (B | A, AB) et SS_AB = SS (AB | A, B)
Brett
1
Je vous remercie beaucoup pour votre aide. Je comprends maintenant ce qui se passe en termes de différence entre ces modèles, mais je ne sais toujours pas quand il conviendrait d'utiliser un modèle anova ou de régression. Mon conseiller conseille anova, mais on m'a toujours appris à utiliser la régression et je ne sais pas laquelle est la plus appropriée à utiliser lorsque les résultats sont divergents. Avez-vous des exemples ou une ressource à conseiller sur le moment approprié? Merci encore pour votre aide.
Rebecca
1
Je suis désolé, je ne suis pas tout à fait suivre. Mon point est que les modèles ne sont pas réellement différents. Une ANOVA est une régression avec tous les prédicteurs qualitatifs. Si vous avez un modèle de régression avec des prédicteurs continus et qualitatifs et que vous saisissez d'abord le prédicteur continu, les prédicteurs qualitatifs (mais sans terme d'interaction) sont ANCOVA. Les deux approches conviennent, car «en coulisses», elles sont identiques. Je code généralement cela comme une régression, mais c'est une question de style. OTOH, si votre conseiller souhaite qu'il exécute le style ANOVA, alors suivez cette voie, car il n'y a pas de différence.
gung - Rétablir Monica
2
Quelques choses: (3 en haut) une interaction ne signifie pas que vos variables indépendantes sont corrélées, ce sont juste des choses différentes; (2 up) si le modèle 3 est significativement meilleur que le modèle 2, alors oui, cela suggère que l'interaction est significative (puisque l'interaction est la seule chose qui diffère entre eux); (1 place) vous voulez éviter de pêcher uniquement pour des effets significatifs, sauf si vous envisagez votre étude comme un pilote que vous utiliserez pour planifier une étude de confirmation ultérieure (dans ce cas, je pense que vous êtes d'accord); Je suppose que vous avez mené cette étude pour examiner les trois, donc allez avec le modèle 3.
gung - Réinstallez Monica
2
De plus, une interaction implique que vous ne devez pas interpréter les principaux effets, donc présenter uniquement le modèle 1 pourrait être dangereusement trompeur. Si vous voulez plus d'informations sur les types de SS, j'ai écrit une réponse assez complète ici: stats.stackexchange.com/questions/20452/… En outre, vous devriez accepter l'une des réponses, à un moment donné, en cliquant sur la coche à côté de l'un d'eux.
gung - Réintégrer Monica
10

Les résultats de la sortie aov vous donnent des probabilités basées sur la somme des carrés de type 1. C'est pourquoi le résultat de l'interaction est le même et les principaux effets diffèrent.

Si vous utilisez des probabilités basées sur la somme des carrés de type 3, elles correspondront aux résultats de la régression linéaire.

library(car)
Anova(aov(score~group*moderator),type=3)
Glen
la source
5
Les modèles linéaires et ANOVA seront équivalents lorsque les modèles testent les mêmes hypothèses et lorsque la paramétrisation des facteurs est équivalente. Les sommes dites "Type I" et "Type III" sont des carrés sont simplement des tests d'hypothèses sous-jacentes différentes (effets des sommes séquentielles de carrés par rapport aux sommes marginales de carrés). L'ANOVA a tendance à cacher certaines de ces décisions telles qu'elles sont implémentées dans de nombreux packages - un fait qui me fait croire que la mise en place et le test des hypothèses d'intérêt par le paramétrage des facteurs et la comparaison des modèles dans GLM est une approche supérieure.
Brett
+1, je pense que vous avez une faute de frappe, cependant. lm utilise SS de type 1 et aov utilise SS de type 3.
gung - Rétablir Monica
2
Le type III (marginal) des sommes de carrés est utilisé par défaut dans lm. AOV utiliserait le Type I (séquentiel) par défaut. Les résultats LM sont invariants à l'ordre tandis que les résultats aov dépendent de l'ordre des facteurs.
Brett
Je pensais que lm et aov utilisaient le type I par défaut, d'où l'utilisation du capital A Anova () pour les types II et III.
Matt Albrecht
6
En général, Anova(..., type=3)ne pas vous donner bon type III SS, à moins que vous passez aussi des contrastes de traitement (par défaut en R) à l' effet codant pour des facteurs désordonnées ( options(contrasts=c("contr.sum", "contr.poly"))) ou d'autres codes de contraste somme à zéro (par exemple, Helmert). Cela deviendra apparent une fois que vous avez des tailles de cellules déséquilibrées et plus de deux groupes et est également mentionné dans la page d'aide de Anova().
caracal
-2

La principale différence entre la régression linéaire et l'ANOVA est que, dans l'ANOVA, les variables prédictives sont discrètes (c'est-à-dire qu'elles ont des niveaux différents). Alors qu'en régression linéaire, les variables prédictives sont continues.

vivek
la source
3
Ce n'est généralement pas vrai.
Michael R. Chernick
Je l'ai lu quelque part sur Internet. Pouvez-vous expliquer la principale différence. Je suis un débutant.
vivek