Question

Je me sers var.test et bartlett.test pour vérifier les hypothèses de base de ANOVA, entre autres, homogénéité de la variance (, l'égalité des homogénéité des écarts). La procédure est assez simple pour un ANOVA:

bartlett.test(x ~ g)  # where x is numeric, and g is a factor
var.test(x ~ g)

Mais, pour 2x2 tables, à savoir deux ANOVA de, je veux faire quelque chose comme ceci:

bartlett.test(x ~ c(g1, g2))  # or with list; see latter:
var.test(x ~ list(g1, g2))

Bien sûr, les hypothèses ANOVA peut être vérifié avec les procédures graphiques, mais qu'en est- "une option arithmétique" ? Est-ce que, du tout, facile à gérer? Comment avez-vous test en homogénéité de la variance ANOVA à deux voies?

Était-ce utile?

La solution

test est Hypothesis le mauvais outil à utiliser pour évaluer la validité des hypothèses du modèle. Si la taille de l'échantillon est faible, vous avez pas le pouvoir de détecter les différences de variance, même si les différences de variance sont grandes. Si vous avez une grande taille de l'échantillon que vous avez le pouvoir de détecter même les plus triviales écarts de variance égale, de sorte que vous rejetterez presque toujours nulle. Des études de simulation ont montré que les essais préliminaires des pistes hypothèses du modèle à des erreurs de type I peu fiables.

En regardant les résidus dans toutes les cellules est un bon indicateur, ou si vos données sont normales, vous pouvez utiliser l'AIC ou BIC avec / sans écarts égaux en tant que procédure de sélection.

Si vous pensez qu'il ya des écarts inégaux, laisser tomber l'hypothèse avec quelque chose comme:

library(car)
model.lm <- lm(formula=x ~ g1 + g2 + g1*g2,data=dat,na.action=na.omit)
Anova(model.lm,type='II',white.adjust='hc3')

Vous ne perdez pas beaucoup de puissance avec la méthode robuste (matrices de covariance cohérentes hetroscedastic), donc en cas de doute aller robuste.

Autres conseils

Vous pouvez tester hétéroscédasticité en utilisant Fligner- essai Killeen de l'homogénéité des variances. En supposant votre modèle est quelque chose comme

model<-aov(gain~diet*supplement)

fligner.test(gain~diet*supplement)

        Fligner-Killeen test of homogeneity of variances

data:  gain by diet by supplement 
Fligner-Killeen:med chi-squared = 2.0236, df = 2, p-value = 0.3636

Vous auriez pu utiliser bartlett.test (mais cela est plus un test de non-normalité que l'égalité des écarts)

bartlett.test(gain~diet*supplement)
        Bartlett test of homogeneity of variances

data:  gain by diet by supplement 
Bartlett's K-squared = 2.2513, df = 2, p-value = 0.3244

De plus, vous pouvez effectuer le Levene test pour le groupe variances égales dans les deux sens unique et ANOVA à deux voies. Implémentations de test de Levene se trouvent dans des forfaits href="http://finzi.psych.upenn.edu/R/library/car/html/leveneTest.html" (lien fixe), S20x et < a href = "http://finzi.psych.upenn.edu/R/library/lawstat/html/levene.test.html" rel = "noreferrer nofollow"> lawstat

levene.test(gain~diet*supplement)  # car package version

Levene's Test for Homogeneity of Variance
      Df F value Pr(>F)
group 11  1.1034 0.3866
      36 

Pour bartlett.test

bartlett.test(split(x,list(g1,g2)))

var.test n'est pas applicable car il ne fonctionne que quand il y a deux groupes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top