Estoy trabajando en mi tesis de maestría en este momento y planeé ejecutar las estadísticas con SigmaPlot. Sin embargo, después de pasar un 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 comencé mis primeros intentos en R, lo que no lo hizo exactamente más fácil.
El plan era ejecutar un ANOVA DE DOS VÍAS simple en mis datos que resulta de 3 proteínas diferentes y 8 tratamientos diferentes en esos, por lo que mis dos factores son proteínas y tratamientos. Probé la normalidad usando 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 sobre qué prueba usar para la igualdad de varianzas. se me ocurrio
> chisq.test(time)
y el resultado fue que tampoco tengo igualdad de varianza en mis datos.
Intenté diferentes transformaciones de datos (registro, centro, estandarización), todo lo cual no resolvió mis problemas con las variaciones.
Ahora estoy perdido, cómo llevar a cabo el ANOVA para probar qué proteínas y qué tratamientos difieren significativamente entre sí. Encontré algo sobre una prueba de Kruskal-Walis, pero solo por un factor (?). También encontré cosas sobre la clasificación o la randamización, pero aún no cómo implementar esas técnicas en R.
¿Alguien tiene una sugerencia de lo que debo hacer?
Editar: gracias por sus respuestas, estoy un poco abrumado por la lectura (parece que cada vez es más y no menos), pero, por supuesto, continuaré.
Aquí un ejemplo de mis datos, como se sugiere (lo siento mucho por el formato, no pude encontrar otra solución o lugar para colocar 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
fuente
?bartlett.test
)Respuestas:
Esto puede ser más un comentario que una respuesta, pero no cabe como un comentario. Podemos ayudarlo aquí, pero esto puede tomar algunas iteraciones; Necesitamos más información.
Primero, ¿cuál es su variable de respuesta?
Segundo, tenga en cuenta que la distribución marginal de su respuesta no tiene que ser normal, sino que la distribución condicional en el modelo (es decir, los residuos) debería serlo; no está claro que haya examinado sus residuos. Además, la normalidad es lo menos importante. supuesto de un modelo lineal (por ejemplo, un ANOVA); Es posible que los residuos no necesiten ser perfectamente normales. Las pruebas de normalidad generalmente no valen la pena (ver aquí para una discusión sobre CV), las tramas son mucho mejores. Intentaría un qq-plot de sus residuos. En
R
esto se hace conqqnorm()
, o intenteqqPlot()
en elcar
paquete. También vale la pena considerar la manera en que los residuos no son normales: la asimetría es más dañina que el exceso de curtosis, en particular si las asimetrías alternan direcciones entre los grupos.Si realmente hay un problema por el que vale la pena preocuparse, una transformación es una buena estrategia. Tomar el registro de sus datos en bruto es una opción, pero no la única. Tenga en cuenta que centrar y estandarizar no son realmente transformaciones en este sentido. Desea examinar la familia de transformaciones de poder de Box & Cox . Y recuerde, el resultado no tiene que ser perfectamente normal, solo lo suficientemente bueno.
A continuación, no sigo su uso de la prueba de ji cuadrado para la homogeneidad de la varianza, aunque puede estar perfectamente bien. Le sugiero que use la prueba de Levene (use
leveneTest()
incar
). La heterogeneidad es más perjudicial que la no normalidad, pero el ANOVA es bastante robusto si la heterogeneidad es menor. Una regla general estándar es que la varianza del grupo más grande puede ser hasta cuatro veces la más pequeña sin presentar grandes problemas. Una buena transformación también debería abordar la heterogeneidad.Si estas estrategias son insuficientes, probablemente exploraría una regresión robusta antes de intentar un enfoque no paramétrico.
Si puede editar su pregunta y decir más sobre sus datos, puedo actualizarla para proporcionar información más específica.
fuente
( nota: esta respuesta se publicó antes de que la pregunta fuera migrada y fusionada desde SO, por lo que se han agregado detalles a la pregunta que no se abordan aquí. Muchos se abordan en los comentarios y la respuesta de @gung).
Hay muchos enfoques diferentes, y esta pregunta se ha cubierto en otra parte de este sitio. Aquí hay una lista de algunos enfoques, con enlaces a otras preguntas en el sitio y algunas referencias:
adonis
función en el paquete R Veganfuente
adonis
en elVegan
paquete R / David 16 de mayo a las 16:20adonis
parece funcionar incluso con dvs univariados. Sin embargo, tengo la sensación de que usa algo así como sumas de cuadrados tipo 1 cuando recibo el mensajeTerms added sequentially (first to last)
cada vez que lo ejecuto. ¿Lo has usado o puedes decir algo al respecto? - Henrik 16 de mayo a las 17:03