Ya que los procedimientos ANOVA de dos muestras permiten comparar las medias de dos poblaciones o las respuestas medias a dos tratamientos de un experimento. Sin embargo, en ocasiones necesitamos comparar más de 2 grupos. El modelo del Análisis de la Varianza (ANOVA), nos permitirá abordar este tipo de situaciones. Lo vemos con un ejemplo:
El departamento de Psicología de una Universidad de Castilla-La Mancha ha realizado un estudio sobre hábitos, preferencias y satisfacción sexual en estudiantes universitarios. Hemos utilizado los datos que recogieron en sus encuestas y queremos conocer si existen diferencias entre la frecuencia mensual de relaciones sexuales de estudiantes universitarios pertenecientes a tres titulaciones universitarias diferentes:
T1: 11 14 7 15 11 13 11 16 10 15 18 12 9 9 10 10 15 10 14 10 10 12 14 12 15 7 13 6 10 15 20 10 13 10 6 14 8 10 8 11
T2: 13 10 12 7 5 10 10 16 9 7 7 2 6 9 9 8 8 10 3 6 5 2 9 3 4 5 10 8 5 9 10 8 13 10 0 2 1 1 0 4
T3: 6 7 3 5 9 6 1 6 0 2 5 6 11 6 7 0 5 7 5 4 7 4 2 8 9 6 1 4 7 7 8 9 7 5 1 6 9 4 7 6
Generamos dos variables: frecuencia_sexual es la variable respuesta y universidades es la variable factor (establece los grupos de interés):
frecuencia <- c(11, 14, 7, 15, 11, 13, 11, 16, 10, 15, 18, 12, 9, 9, 10, 10, 15, 10, 14, 10, 10, 12, 14, 12, 15, 7, 13, 6, 10, 15, 20, 10, 13, 10, 6, 14, 8, 10, 8, 11, 13, 10, 12, 7, 5, 10, 10, 16, 9, 7, 7, 2, 6, 9, 9, 8, 8, 10, 3, 6, 5, 2, 9, 3, 4, 5, 10, 8, 5, 9, 10, 8, 13, 10, 0, 2, 1, 1, 0, 4, 6, 7, 3, 5, 9, 6, 1, 6, 0, 2, 5, 6, 11, 6, 7, 0, 5, 7, 5, 4, 7, 4, 2, 8, 9, 6, 1, 4, 7, 7, 8, 9, 7, 5, 1, 6, 9, 4, 7, 6)
universidades <- as.factor(c(rep(c("T1", "T2", "T3"), each =40)))
Exploramos los datos de la muestra:
Realiazamos digramas de caja y bigote para las 3 universidades
boxplot(frecuencia ~ universidades, col = c("red", "purple", "white"), ylab = "Frecuencia mensual de relaciones sexuales")
El valor de las medias de las Universidades es:
tapply(frecuencia, universidades, mean)
## T1 T2 T3
## 11.60 6.90 5.45
Los datos obtenidos nos permiten establecer que la mayor distribución de datos en la universidad T1 esta en la parte superior, tomando en cuenta que su media es de 11.60 relaciones sexuales cada mes. En tonor a la universidad T2 se puede observar que la dispersion esta en un sentido casi neutral es decir existe una distribucion similar en tanto arriba de la media como bajo de la misma, es importante recalcar que la media es de 6.90 relaciones sexules cada mes y esta es inferior a la media de la primera universidad. La ultima grafica muestra que la distribucion de la mayoria de los datos se encuentra por debajo de la media, la media es de 5.45 relaciones sexuales cada mes y es la menor de las tres universidades.
Esta es la forma de pedir un ANOVA en R:
fm = aov( lm(frecuencia ~ universidades) )#busca la relacion entre las variables
Resumen de la tabla del ANOVA
summary(fm)#estadisticamente significativo
## Df Sum Sq Mean Sq F value Pr(>F)
## universidades 2 826.9 413.4 38.98 1.07e-13 ***
## Residuals 117 1241.1 10.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Elementos generados en el ANOVA:
names(fm)
## [1] "coefficients" "residuals" "effects" "rank"
## [5] "fitted.values" "assign" "qr" "df.residual"
## [9] "contrasts" "xlevels" "call" "terms"
## [13] "model"
H0: Las medias de las tres universidades son iguales
H1: Al menos una media de las universidades es diferente
Valor estadistico de constraste: 38.98
Grados de libertad: 2
Grados de libertad residuales: 117
Estadístico de contraste F
qf(0.05, 2-1, 80-2, lower.tail = F)
## [1] 3.963472
Debido a que el valor de contraste es mayor el Estadistico de contraste, se dice que son estadisticamente iguales.
El intervalo de confianza de la media
Universidad T1, con un nivel de confianza del 95%:
mediaT1 <- mean(frecuencia[universidades =="T1"])
valor_t <- pt(0.05/2, 80 - 2) #prueba de dos colas
sp <- sqrt(10.6) #desviación típica de la varianza muestral común
ee <- valor_t * (sp/ sqrt(40))
mediaT1
## [1] 11.6
mediaT1 + ee
## [1] 11.86251
mediaT1 - ee
## [1] 11.33749
Universidad T2, con un nivel de confianza del 95%:
mediaT2 <- mean(frecuencia[universidades =="T2"])
valor_t <- pt(0.05/2, 80 - 2) #prueba de dos colas
sp <- sqrt(10.6) #desviación típica de la varianza muestral común
ee <- valor_t * (sp/ sqrt(40))
mediaT2
## [1] 6.9
## [1] 7.162508
mediaT2 - ee
## [1] 6.637492
Universidad T3, con un nivel de confianza del 95%:
mediaT3 <- mean(frecuencia[universidades =="T3"])
valor_t <- pt(0.05/2, 80 - 2) #prueba de dos colas
sp <- sqrt(10.6) #desviación típica de la varianza muestral común
ee <- valor_t * (sp/ sqrt(40))
mediaT3
## [1] 5.45
mediaT3 + ee
## [1] 5.712508
mediaT2 - ee
## [1] 6.637492
Si hemos detectado diferencias no tan significativas entre las medias de las poblaciones. Por eso para asegurar unos resultados veraces se procede a hacer:
Prueba de Turkey
intervals = TukeyHSD(fm)
intervals
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = lm(frecuencia ~ universidades))
##
## $universidades
## diff lwr upr p adj
## T2-T1 -4.70 -6.428861 -2.9711395 0.0000000
## T3-T1 -6.15 -7.878861 -4.4211395 0.0000000
## T3-T2 -1.45 -3.178861 0.2788605 0.1189269
plot(intervals)
Debido a que los valores son cercanos a 0 se puede interpretar que son valores diferentes, es decir las medias de las tres universidades son diferentes entre si.
A partir de los residuos del modelo comprobaremos si el modelo ANOVA es adecuado. Los supuestos que se deben cumplir son tres: independencia, homocedasticidad y normalidad.
plot(fm$residuals)
Ya que los datos estan muy dispersos se puede establecer que no estan corelacionados.
Los gráficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos:
summary(fm$residuals)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -6.900 -1.900 0.400 0.000 2.175 9.100
Homocedasticidad = igual varianza porque la distancia de los cuartiles es semenjante aunque hay un dato tipico
boxplot(fm$residuals)
Existe un solo valor atipico en la parte superior.
hist(fm$residuals)
qqnorm(fm$residuals)
qqline(fm$residuals)
El test de Shapiro-Wilk indica que no tenemos evidencia suficiente para rechazar la hipótesis nula (normalidad de los residuos)
shapiro.test(fm$residuals)
##
## Shapiro-Wilk normality test
##
## data: fm$residuals
## W = 0.98473, p-value = 0.1945
Debido a que el p-valor es mayot a 0.05, se dice que existe una normalidad en los residuos.
Los gráficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos:
boxplot(fm$residuals~universidades, col = c("blue", "white","green"))
desviaciones <- tapply(fm$residuals, universidades, sd)
Comparando la desviación máxima con la mínima obtenemos una orientación sobre la falta de homocedasticidad (>2 aproximadamente)
max(desviaciones) / min(desviaciones)
## [1] 1.45217
Debido a que el valor calculado no es ayor que dos, se dice que existe Homocedasticidad entre las varibles, relacionando al grafico, entre T2 y T3 esta la mayor cantidad de relacion entre sus varianzas.
Test de Bartlett
Indica que no tenemos evidencia suficiente para rechazar la hipótesis nula (las varianzas son iguales)
bartlett.test(fm$residuals ~ universidades)
##
## Bartlett test of homogeneity of variances
##
## data: fm$residuals by universidades
## Bartlett's K-squared = 5.3467, df = 2, p-value = 0.06902
El resultado del test de Barlet es que no existe homocedasticidad, debido a que el p-valor es un poco mayor a 0.05, pero debemos analisar que en el anterior se dijo que es homocedastico, esto es debido a que la relacion entre la universidad T1 y T2 difiere por un poco y genera esta contradiccion.
¿Qué hipótesis contrasta el test ANOVA?
Ho: las medias son iguales en todas las poblaciones
Ha: hay alguna media distinta
¿Qué hipótesis contrasta la prueba de Kruskal-Wallis?
Ho: la variable respuesta es la misma en todas las poblaciones valoradas
Ha: la variable respuesta es mayor en alguna de las poblaciones
Cuando no se cumplen las hipótesis exigidas por el modelo ANOVA, es posible utilizar la prueba no paramétrica Kruskal-Wallis: ¿hay diferencias significativas entre las poblaciones?
kruskal.test(frecuencia, universidades)
##
## Kruskal-Wallis rank sum test
##
## data: frecuencia and universidades
## Kruskal-Wallis chi-squared = 51.504, df = 2, p-value = 6.547e-12
Bajo la Ho el estadístico de contraste H del test de Kruskal-Wallis se distribuye como una Chi-cuadrado de grados de libertad (I-1) (donde I es el número de grupos que disponemos). Así obtenemos el cuantil buscado:
qchisq(0.05, 2-1, lower.tail = F)
## [1] 3.841459
Valores del estadístico > 3.841459 estarán incluidos en la región de rechazo. En nuetro caso 51.504 es mucho mayor que el valor crítico obtenido.Acepto la hipotesis alternativa
Si transformáramos los datos de la variable respuesta, utilizando logaritmos y después aplicáramos el test de KrusKal-Wallis al logaritmo del número de insectos atrapados, ¿variarían los resultados del test estadístico?
##
## Kruskal-Wallis rank sum test
##
## data: log(frecuencia) and universidades
## Kruskal-Wallis chi-squared = 51.504, df = 2, p-value = 6.547e-12
Los resultados son exactamente los mismos. No se producen variaciones porque el test de Kruskal-Wallis trabaja sobre rangos, es decir, sobre ordenaciones de los valores de la variable en cada uno de los grupos. Aunque realicemos una transformación logarítmica, el orden entre los valores de la variable se mantiene y por lo tanto la transformación no afecta a los resultados del test.
Si hemos detectado diferencias significativas en la variable respuesta para las distintas poblaciones. ¿Sería posible saber cuáles son los grupos que generan estas diferencias?
library(PMCMR)
posthoc.kruskal.nemenyi.test(frecuencia, universidades, method = "Chisq") #ayuda a saber cual se debe considerar como un solo (-) = no hay diferentes significativa se le podria considerar como un solo (azul, blanco). Libreria muestra cuales son iguales y cuales diferentes/analisis por detras de todos los analisis de anova
##
## Pairwise comparisons using Tukey and Kramer (Nemenyi) test
## with Tukey-Dist approximation for independent samples
##
## data: frecuencia and universidades
##
## T1 T2
## T2 1.5e-06 -
## T3 1.4e-11 0.14
##
## P value adjustment method: none