Test omoschedasticità per Two-Way ANOVA
Domanda
Ho usato var.test
e bartlett.test
per verificare le ipotesi di base ANOVA, tra gli altri, homoscedascity (homogeniety, uguaglianza delle varianze). La procedura è abbastanza semplice per One-Way ANOVA:
bartlett.test(x ~ g) # where x is numeric, and g is a factor
var.test(x ~ g)
Ma, per 2x2 tavole, vale a dire ANOVA a due vie di, voglio fare qualcosa di simile:
bartlett.test(x ~ c(g1, g2)) # or with list; see latter:
var.test(x ~ list(g1, g2))
Naturalmente, ipotesi ANOVA può essere controllato con procedure grafiche, ma per quanto riguarda "un'opzione aritmetica" ? E 'questo, a tutti, gestibile? Come si fa a testare homoscedascity in ANOVA a due vie?
Soluzione
Verifica di ipotesi è lo strumento sbagliato per usare di valutare la validità delle ipotesi di modello. Se la dimensione del campione è piccolo, non hai il potere di rilevare eventuali differenze di varianza, anche se le differenze sono grandi varianza. Se si dispone di una dimensione di ampio campione avete il potere di rilevare anche i più banali deviazioni dalla varianza uguale, quindi sarà quasi sempre rifiutare l'ipotesi nulla. Studi di simulazione hanno dimostrato che i test preliminari di porta modello di assunzione di errori di tipo inaffidabile I.
Guardando i residui attraverso tutte le cellule è un indicatore di buona, o se i dati sono normali, è possibile utilizzare l'AIC o BIC con / senza varianze uguali come una procedura di selezione.
Se si pensa che ci sono varianze ineguali, cadere il presupposto con qualcosa di simile:
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')
Non perdere molto potere con il metodo robusto (hetroscedastic matrici di covarianza coerente), quindi in caso di dubbio andare robusta.
Altri suggerimenti
È possibile verificare per eteroschedasticità utilizzando il Fligner- Killeen prova di omogeneità delle varianze. Supponendo il vostro modello è qualcosa di simile
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
bartlett.test (ma questo è più un test di non normalità che di uguaglianza delle varianze)
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
Inoltre, è possibile eseguire la Levene test
per la parità di gruppo varianze sia a senso unico e ANOVA a due vie. Le implementazioni di prova di Levene si trovano nei pacchetti (collegamento fisso), s20x e < a href = "http://finzi.psych.upenn.edu/R/library/lawstat/html/levene.test.html" rel = "nofollow noreferrer"> 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
Per bartlett.test
bartlett.test(split(x,list(g1,g2)))
var.test
non è applicabile in quanto funziona solo quando ci sono due gruppi.