No paramétrico para ANOVA bidireccional (3x3)

8

Mi variable dependiente es continua, no normal (sesgada a la izquierda según la prueba de Shapiro-Wilk). Tengo dos variables independientes (grupo de tratamiento por color, tipo de alimento). Hay 3 niveles dentro de cada variable independiente. El número de observaciones para cada variable independiente no es igual.

He buscado pruebas no paramétricas como la prueba de Friedman y la prueba de Scheirer-Ray-Hare, ninguna de las cuales parece adecuada (debido a un número desigual de observaciones).

¿Existen pruebas alternativas que alguien pueda sugerir? Estoy usando SAS.

mbee
fuente

Respuestas:

8

¿Qué pregunta estás tratando de responder?

Si desea una prueba general de lo que está sucediendo, lo nulo es que tanto los efectos principales como la interacción son todos 0, entonces puede reemplazar todos los puntos de datos con sus rangos y simplemente hacer un ANOVA regular para compararlo con una intercepción / gran media Solo modelo. Esto es básicamente cómo funcionan muchas de las pruebas no paramétricas, el uso de los rangos transforma los datos a una distribución uniforme (debajo del valor nulo) y se obtiene una buena aproximación al tratarlo como normal (el Teorema del límite central se aplica al uniforme para la muestra tamaños superiores a aproximadamente 5 o 6).

Para otras preguntas, puede usar pruebas de permutación. Si desea probar uno de los efectos principales y la interacción juntos (pero permite que el otro efecto principal sea distinto de cero), puede permutar el predictor que se está probando. Si desea probar la interacción al tiempo que permite que ambos efectos principales sean distintos de cero, puede ajustar el modelo reducido de efectos principales únicamente y calcular los valores ajustados y los residuos, luego permutar aleatoriamente los residuos y agregar los residuos permutados de nuevo al ajusta valores y ajusta el modelo anova completo, incluida la interacción. Repita esto varias veces para obtener la distribución nula para el tamaño del efecto de interacción para comparar con el tamaño del efecto de interacción de los datos originales.

Puede haber un código SAS existente para hacer cosas como esta, he visto algunos tutoriales básicos sobre el uso de SAS para pruebas de arranque y permutación (la forma más rápida parece ser usar el paso de datos para crear todos los conjuntos de datos en una tabla grande, luego usar procesamiento para hacer los análisis). Personalmente uso R para este tipo de cosas, así que no puedo ser de más ayuda para usar SAS.


Editar

Aquí hay un ejemplo usando el código R:

> fit1 <- aov(breaks ~ wool*tension, data=warpbreaks)
> summary(fit1)
             Df Sum Sq Mean Sq F value   Pr(>F)    
wool          1    451   450.7   3.765 0.058213 .  
tension       2   2034  1017.1   8.498 0.000693 ***
wool:tension  2   1003   501.4   4.189 0.021044 *  
Residuals    48   5745   119.7                     
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
> 
> fit2 <- aov(breaks ~ wool + tension, data=warpbreaks)
> 
> tmpfun <- function() {
+   new.df <- data.frame(breaks = fitted(fit2) + sample(resid(fit2)),
+                        wool = warpbreaks$wool,
+                        tension = warpbreaks$tension)
+   fitnew <- aov(breaks ~ wool*tension, data=new.df)
+   fitnew2 <- update(fitnew, .~ wool + tension)
+   c(coef(fitnew), F=anova(fitnew2,fitnew)[2,5])
+ }
> 
> out <- replicate(10000, tmpfun())
> 
> # based on only the interaction coefficients
> mean(out[5,] >= coef(fit1)[5])
[1] 0.002
> mean(out[6,] >= coef(fit1)[6])
[1] 0.0796
> 
> # based on F statistic from full-reduced model
> mean(out[7,] >= anova(fit2,fit1)[2,5])
[1] 0.022
Greg Snow
fuente
1
+1. El esmalte mediano de Tukey funciona bien para adaptarse al modelo cuando eso es todo lo que se necesita. Sería interesante (pero quizás un poco computacionalmente intensivo) combinar eso con una prueba de permutación.
whuber
Gracias por las respuestas Este es más un estudio exploratorio, solo para examinar si hay diferencias en la variable dependiente en función de ambas variables independientes.
mbee
@ GregSnow, ¿Qué paquete usas en R para esto? Estoy usando la ezPermfunción de ezporque me permite hacer dv ~ iv1 * iv2 | subj. Me da un valor p, pero el autor desaconseja su interpretación (sé que está explicando cómo realizar esto manualmente, pero, aunque tengo una sólida formación en programación, mi conocimiento de los términos de estadísticas está empezando a mejorar)
toto_tico
1
@toto_tico, no uso ningún paquete adicional. Las pruebas de permutación son bastante fáciles de hacer con un código R normal. He incluido un ejemplo arriba usando un conjunto de datos incorporado.
Greg Snow
@ GregSnow, ¿por qué muestras en la muestra de residuos (resid (fit2))? Pensé que el muestreo se realizó en el dv (warpbreaks $ breakl). Mi intuición me dice que lo que leí en las pruebas de permutación fue para un factor, y las cosas se vuelven más complicadas para múltiples factores.
toto_tico
3

+1 a @Greg Snow. De acuerdo con su estrategia de rangos de uso no paramétrico, podría usar la regresión logística ordinal . Esto le permitirá ajustar un modelo con múltiples factores e interacciones entre ellos. La documentación relevante de SAS está aquí . Hay un tutorial sobre cómo hacer esto en SAS en el excelente sitio web de ayuda de estadísticas de UCLA aquí , y otro tutorial de la Universidad de Indiana aquí .

gung - Restablece a Monica
fuente
Sin embargo, ¿este enfoque no responde una pregunta diferente? En la configuración ANOVA, la variable continua es el resultado, y estamos probando las sumas de cuadrados dentro / entre los factores. En una regresión logística ordinal, está tratando de predecir la pertenencia a factores de acuerdo con los valores de esa variable continua. Si bien hay situaciones en las que esto le dará una inferencia similar, no estoy claro para mí que estos sean procedimientos equivalentes en GENERAL. De la misma manera que la regresión de Y = BX no siempre será igual a X = BY.
Ryan Simmons
Esencialmente, creo que las preguntas "¿Son estos grupos diferentes según X?" y "¿Cómo se puede usar X para clasificar a las personas entre estos grupos?" solo será lo mismo en circunstancias muy específicas, y que no necesariamente puede sustituir ANOVA por regresión logística y obtener resultados comparables.
Ryan Simmons
@ RyanSimmons, no necesariamente tiene que clasificar nada. La prueba del modelo OLR es una prueba si algunos grupos están asociados con valores Y típicamente más grandes que otros grupos. Simplemente está utilizando solo el componente ordinal de los valores Y. Pruebas como Kruskal-Wallis, Mann-Whitney, etc. son casos especiales de OLR.
gung - Restablece a Monica
@gung, ¿qué pasa con la parte interna del diseño del problema? ¿Es posible con una regresión logística ordinal?
toto_tico
1
@toto_tico, acabo de responderte en el otro hilo. Debe usar clmm()en el paquete ordinal.
gung - Restablece a Monica