16 votos

¿Cómo ejecutar un ANOVA de dos vías en datos sin normalidad ni igualdad de varianza en R?

Estoy trabajando en mi tesis de maestría en este momento y planeaba ejecutar las estadísticas con SigmaPlot. Sin embargo, después de pasar algún tiempo con mis datos llegué a la conclusión de que SigmaPlot podría no ser adecuado para mi problema (puedo estar equivocado) así que empecé mis primeros intentos en R, lo que no facilitó precisamente.

El plan era ejecutar un simple ANOVA DE DOS VÍAS en mis datos que resultan de 3 proteínas diferentes y 8 tratamientos diferentes en ellos, por lo que mis dos factores son las proteínas y los tratamientos. He comprobado la normalidad utilizando ambos

> shapiro.test(time)

y

> ks.test(time, "norm", mean=mean(time), sd=sqrt(var(time)))

En ambos casos (tal vez no sea sorprendente) terminé con una distribución no normal.

Lo que me dejó con las primeras preguntas de qué prueba usar para la igualdad de varianzas. Se me ocurrió

> chisq.test(time)

y el resultado fue que tampoco tengo igualdad de varianza en mis datos.

Probé diferentes transformaciones de los datos (log, centro, estandarización), todas las cuales no resolvieron mis problemas con las varianzas.

Ahora no sé cómo realizar el ANOVA para comprobar qué proteínas y qué tratamientos difieren significativamente entre sí. Encontré algo sobre una prueba de Kruskal-Walis, pero sólo para un factor (?). También encontré cosas sobre la clasificación o la randamización, pero aún no sé cómo implementar esas técnicas en R.

¿Alguien tiene alguna sugerencia sobre lo que debería hacer?

Edito: gracias por vuestras respuestas, estoy un poco abrumado por la lectura (parece que cada vez es más en lugar de menos), pero por supuesto seguiré adelante.

Aquí un ejemplo de mis datos, como se sugiere (lo siento mucho por el formato, no pude averiguar otra solución o lugar para poner un archivo. Todavía soy nuevo en todo esto):

protein treatment   time  
A   con 2329.0  
A   HY  1072.0  
A   CL1 4435.0  
A   CL2 2971.0  
A   CL1-HY sim  823.5  
A   CL2-HY sim  491.5  
A   CL1+HY mix  2510.5  
A   CL2+HY mix  2484.5  
A   con 2454.0  
A   HY  1180.5  
A   CL1 3249.7  
A   CL2 2106.7  
A   CL1-HY sim  993.0  
A   CL2-HY sim  817.5  
A   CL1+HY mix  1981.0  
A   CL2+HY mix  2687.5  
B   con 1482.0  
B   HY  2084.7  
B   CL1 1498.0  
B   CL2 1258.5  
B   CL1-HY sim  1795.7  
B   CL2-HY sim  1804.5  
B   CL1+HY mix  1633.0  
B   CL2+HY mix  1416.3  
B   con 1339.0  
B   HY  2119.0  
B   CL1 1093.3  
B   CL2 1026.5  
B   CL1-HY sim  2315.5  
B   CL2-HY sim  2048.5  
B   CL1+HY mix  1465.0  
B   CL2+HY mix  2334.5  
C   con 1614.8  
C   HY  1525.5  
C   CL1 426.3  
C   CL2 1192.0  
C   CL1-HY sim  1546.0  
C   CL2-HY sim  874.5  
C   CL1+HY mix  1386.0  
C   CL2+HY mix  364.5  
C   con 1907.5  
C   HY  1152.5  
C   CL1 639.7  
C   CL2 1306.5  
C   CL1-HY sim  1515.0  
C   CL2-HY sim  1251.0  
C   CL1+HY mix  1350.5  
C   CL2+HY mix  1230.5

12voto

Sean Hanley Puntos 2428

Esto puede ser más un comentario que una respuesta, pero no cabe como comentario. Es posible que podamos ayudarte aquí, pero esto puede llevar unas cuantas iteraciones; necesitamos más información.

En primer lugar, ¿cuál es su variable de respuesta?

En segundo lugar, observe que la distribución marginal de su respuesta no no tiene que ser normal, sino que la distribución condicional del modelo (es decir, los residuos) debería serlo; no está claro que haya examinado sus residuos. Además, la normalidad es la menos importante La suposición de un modelo lineal (por ejemplo, un ANOVA); los residuos no tienen por qué ser perfectamente normales. Las pruebas de normalidad no suelen merecer la pena (véase aquí para un debate sobre el CV), las parcelas son mucho mejores. Yo probaría con un qq-plot de sus residuos. En R esto se hace con qqnorm() o intente qqPlot() en el car paquete. También vale la pena considerar la forma en que los residuos no son normales: la asimetría es más perjudicial que el exceso de curtosis, en particular si los sesgos alternan las direcciones entre los grupos.

Si realmente hay un problema del que vale la pena preocuparse, una transformación es una buena estrategia. Tomar el logaritmo de los datos brutos es una opción, pero no la única. Tenga en cuenta que centrar y normalizar no son realmente transformaciones en este sentido. Usted quiere mirar en el Familia de transformaciones de potencia de Box & Cox . Y recuerde, el resultado no tiene que ser perfectamente normal, sólo lo suficientemente bueno.

A continuación, no sigo su uso de la prueba de chi-cuadrado para la homogeneidad de la varianza, aunque puede estar perfectamente bien. Le sugiero que utilice Prueba de Levene (utilizar leveneTest() en car ). La heterogeneidad es más perjudicial que la no normalidad, pero el ANOVA es bastante robusto si la heterogeneidad es menor. Una regla empírica estándar es que la mayor varianza del grupo puede ser hasta cuatro veces la menor sin plantear grandes problemas. Una buena transformación también debería abordar la heterogeneidad.

Si estas estrategias son insuficientes, probablemente exploraría regresión robusta antes de intentar un enfoque no paramétrico.

Si puede editar su pregunta y decir más sobre sus datos, es posible que pueda actualizar esto para proporcionar información más específica.

5voto

Hertanto Lie Puntos 965

( nota: esta respuesta fue publicada antes de que la pregunta fuera migrada y fusionada desde SO, por lo que se han añadido detalles a la pregunta que no se tratan aquí. Muchos de ellos se tratan en los comentarios y en la respuesta de @gung).

Hay muchos enfoques diferentes, y esta cuestión se ha tratado en otra parte de este sitio. Aquí hay una lista de algunos enfoques, con enlaces a otras preguntas en el sitio y algunas referencias.:

  1. La transformación de potencia de Box-Cox puede normalizar los residuos que están en una escala no lineal
  2. ANOVA sobre datos clasificados es muy fácil pero tiene una potencia reducida y es difícil de interpretar. Véase Conover e Iman, (1981)
  3. Modelo logístico ordinal de probabilidades proporcionales
  4. Pruebas de permutación ( Anderson y ter Braak 2003 ), implementado en y descrito por Anderson y como el adonis en la función Paquete R Vegan
  5. Bootstrapping
  6. La modelización jerárquica bayesiana ( Gelman 2005 )

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