5 votos

¿Por qué estoy recibiendo un 10-15% tipo de tasa de error de un 2 x 2 ANOVA?

Durante la prueba de error de tipo I de la tasa de uso de R, me encontré con que me estoy haciendo mayor que 5% de falsos positivos con un 2-way ANOVA.

Sin embargo, pensé que una de las razones para el uso de un ANOVA (como opuesto a varias pruebas) fue la de controlar el error de tipo I. Así que, ¿qué estoy haciendo mal?

Aquí está el código R:

generate.dat <- function(N=30)
  # Generate data with 2 factors.
  # N is number of subjects per group.
{
  # id is the subject id, we use N*4 because there are four groups.
  # group is the full name of the group, A1, A2, B1, B2
  # value is the measured/observed result in our experiment, again N*4.
  # the mean value is 0 for all groups, i.e. there are no effects of group.
  dat <- data.frame(id=factor(1:(N*4)),
                    group=factor(c(
                          rep(c("A1", "A2"), each=N),
                          rep(c("B1", "B2"), each=N))),
                    value=rnorm(N*4))

  # split group into separate factors
  dat$factor1 <- factor(substring(dat$group, 1, 1))
  dat$factor2 <- factor(substring(dat$group, 2, 2))

  dat
}

# e.g.
# dat <- generate.dat(3)
# print(dat)
#   id group       value factor1 factor2
# 1   1    A1  0.42385602       A       1
# 2   2    A1 -0.34829466       A       1
# 3   3    A1 -1.40946883       A       1
# 4   4    A2 -0.09177423       A       2
# 5   5    A2 -1.26614034       A       2
# 6   6    A2 -1.18024188       A       2
# 7   7    B1 -0.86129559       B       1
# 8   8    B1 -1.30517594       B       1
# 9   9    B1  0.50221849       B       1
# 10 10    B2  0.42755864       B       2
# 11 11    B2 -0.03262990       B       2
# 12 12    B2  0.85593000       B       2

do.anova <- function(dat)
  # Perform a 2 way between-subjects anova on dat.
  # Return the lowest p value obtained.
  # (We are interested whether there is at least one significant effect
  # in this particular data set).
{
  results <- aov(value ~ factor1 * factor2, data=dat)
  min( summary(results)[[1]]$`Pr(>F)`[1:3] )
}


# Peform 1000 replications:
# each time generate some data and get the lowest p value
# from the resulting anova.
out <- replicate(1000, do.anova(generate.dat()))

# How many times out of the 1000 was there a significant effect?
sum(out < .05) / 1000 # about 14%

Dudo que haya realmente un 14% de posibilidades de encontrar un efecto, entonces, ¿qué estoy haciendo mal?

Muchas gracias.

4voto

zowens Puntos 1417

Como ya hemos discutido en los comentarios de arriba, ANOVA de los controles de la familia-sabio tipo de tasa de error a través de la "familia" de los niveles, no a través de la "familia" de los factores. Por ejemplo, ANOVA de una vía con 10 grupos (niveles) controla la tasa de error, como se opuso a la realización de todos los 45 pares t-pruebas de que, obviamente, se ejecuta en la comparación múltiple problema. Sin embargo, de dos vías de la prueba ANOVA de dos factores y una interacción, por lo que realiza básicamente en tres F pruebas. Como es bien demostrado por su simulación, este también sufre de una comparación múltiple problema, que no está controlada por ANOVA. Tenga en cuenta que $1-(1-0.05)^3=0.14$, por lo que la simulación proporciona una estimación precisa de la teóricamente esperada de la tasa de error.

No soy experto en eso, pero después de que escribí mi comentario anterior hice una búsqueda en google y me encontré con Cramer et al. Oculto Multiplicidad en Multiway ANOVA: Prevalencia, Consecuencias y Remedios, al parecer un preprint de 2013. Permítanme citar su resumen pie de la letra:

Muchos investigadores empíricos no se dan cuenta de que el común multiway análisis de la varianza (ANOVA) alberga una comparación múltiple problema. En el caso de dos factores, tres hipótesis nula son objeto de prueba (es decir, dos efectos principales y de la interacción). En consecuencia, la probabilidad de un error Tipo I es de 14% en lugar de 5%. Vamos a explicar la comparación múltiple problema y demostrar que los investigadores casi nunca en lo correcto. Se describe uno de los varios procedimientos de corrección (es decir, secuencial de Bonferroni), y muestran que su aplicación se altera al menos uno de los sustantivos conclusiones en 45 de los 60 artículos considerados. Un método alternativo para combatir la multiplicidad en multiway ANOVA es el prerregistro de las hipótesis.

3voto

Eero Puntos 1612

El análisis de VARIANZA procedimientos de control de la familia sabia de error en el conjunto de factores e interacciones, pero es necesario hacerlo correctamente, no mirar al mínimo de múltiples p-valores. Una forma de ver el total de la prueba de F es ejecutar summary.lm sobre el resultado de objeto en lugar de sólo summary , a continuación, buscar en la parte inferior de la impresión. Para la simulación puede ser más fácil de comparar con un modelo nulo (intercept sólo) el uso de la anova función. Aquí está una nueva versión de su simulación de la función que realiza el global de la prueba:

do.anova2 <- function(dat) {
  results <- aov(value ~ factor1 * factor2, data=dat)
  results0 <- update(results, .~1)
  anova(results0, results)[2,6]
}

Cuando se ejecute esta versión:

> out2 <- replicate(1000, do.anova2(generate.dat()))
> mean(out2 < 0.05)
[1] 0.043
> out2 <- replicate(1000, do.anova2(generate.dat()))
> mean(out2 < 0.05)
[1] 0.049
> out2 <- replicate(1000, do.anova2(generate.dat()))
> mean(out2 < 0.05)
[1] 0.051
>

Vemos el 5% que estabas esperando.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X