¿Cómo realizar el ANOVA de una vía en R?

¿Cómo realizar el ANOVA de una vía en R?

ago´17 Rosana Ferrero 18 comentarios

Un ejemplo práctico para comprender el ANOVA de una vía en R Software.

En la entrada anterior te hablé sobre la prueba ANOVA de una vía para un factor entre-grupos.

Si aún no lo has leído… ¡¿qué estás esperando?! 

Pero hoy te traigo un ejemplo muy divertido para mostrarte cómo realizar esta prueba ANOVA en R.

Vamos a analizar los efectos del consumo de alcohol en la selección de pareja. ¿Qué te parece? ¿Crees que nos volvemos menos selectivos cuando tomamos una copa de más? ¿En qué momento el alcohol hace su efecto?

¿Nos volvemos menos selectivos con unas copas de más?

Vamos a trabajar con los datos “googles” del paquete WRS2 para averiguar si luego de consumir alcohol las percepciones subjetivas del atractivo físico se vuelven menos rigurosas (beer goggles effect).

Los datos

Los datos corresponden a 48 participantes (24 hombres y 24 mujeres) que se han dividido en 3 grupos de 8 participantes cada uno. Cada grupo asistió a un club nocturno, a un grupo no se le dio alcohol, otro tomó 2 pintas y el último 4 pintas de alcohol. Al final de la noche el investigador tomó una fotografía a la pareja elegida por el participante y un grupo de jueces independientes evaluó el poder de atracción de dicha persona.La base de datos tiene 3 variables:

  • el sexo (variable gender: hombre o mujer),
  • el alcohol consumido (variable alcohol: nada, 2 pintas o 4 pintas),
  • el nivel de atracción física de la pareja encontrada (variable attractiveness: puntaje de 0 a 100 dado por los jueces)

Tenemos entonces una variable dependiente numérica (attractiveness) y la queremos comparar entre tres niveles de una variable categórica (alcohol) que corresponden a muestras independientes porque son sujetos distintos. Debemos utilizar un ANOVA de una vía o un factor entre-grupos.Luego de evaluar si existen diferencias entre los grupos, y si obtenemos un resultado estadísticamente significativo (sí hay diferencias), nos interesará evaluar entre qué grupos específicamente encontramos estas diferencias. Para ello utilizaremos la prueba de comparaciones múltiples post hoc.

¿Cómo se realiza el ANOVA de una vía con R?

¡Manos a la obra!

Los primeros pasos de cualquier análisis incluyen realizar un análisis descriptivo y buscar posibles datos atípicos. Si aún no tienes claro estos conceptos te recomiendo que revises nuestras entradas sobre estos temas antes de continuar.En esta entrada vamos a probar los supuestos de los modelos lineales (normalidad, homogeneidad de varianza e independencia), a realizar el ANOVA de una vía con un factor entre-grupos (calcular el estadístico F y el valor de probabilidad asociado, p-valor) y luego la prueba de comparación múltiple post-hoc.

Acceder a los datos

Para acceder a los datos debemos primero instalar el paquete WRS2 si es que aún no la tienen instalada (utiliza install.packages("WRS2")), activarla y luego activar los datos. Si tienes problemas para instalar este paquete consulta este link para hacerlo desde Github.También vamos a calcular un resumen estadístico rápido de los datos. # install.packages("WRS2") # utilízalo si aún no tienes instalada la librería.

Describir los datos

Para las variables categóricas obtenemos la frecuencia (número de observaciones) de cada nivel, mientras que para las variables numéricas obtenemos una serie de estadísticos (Min=mínimo, 1st Qu=primer cuartil, Median=mediana, Mean=media, 3rd Qu=tercer cuartil, Max=máximo).

Veamos cómo está formada la base de datos.

Tenemos 16 observaciones por grupo (¡son pocos datos!).Calculamos los estadísticos descriptivos por grupo utilizando la función describeBy del paquete psych (pero hay varios caminos para llegar a Roma, puedes utilizar la función que más te guste). install.packages("psych") # utilízalo si aún no tienes instalada la librería.

Los dos primeros grupos presentaron valores similares en el atractivo de las parejas que encontraron, sin embargo, estos valores disminuyeron en el grupo que consumió más alcohol:

  • No consume alcohol, 63.75±8.47
  • 2 pintas de alcohol, 64.69±9.91
  • 4 pintas de alcohol, 46.56±14.34

Los valores se presentan como media±sd (desviación estándar). Visualizamos los datos (y observamos si existen datos atípicos).

Según el gráfico de cajas y los estadísticos descriptivos, la selección de pareja según su atractivo físico disminuye para sujetos que beben mucho alcohol, pero también este comportamiento parece que se vuelve más variable.

Datos atípicos: comprueba que no hay valores atípicos significativos en tus datos.

Los datos atípicos (outliers) pueden influir negativamente en los resultados del ANOVA.Vamos a identificar posibles datos atípicos mediante la función rp.outlier del paquete rapportools que aplica la prueba de Lund (1975). Esta prueba nos dice si hay datos atípicos y cuáles son. install.packages("rapportools") # utilízalo si aún no tienes instalada la librería.

No hemos detectado datos atípicos (NULL=ninguno).

Normalidad: comprueba que la variable dependiente tiene distribución “aproximadamente" normal para cada categoría de la variable independiente.

Utilizaremos la prueba de normalidad de Shapiro-Wilks que funciona bien para conjuntos de datos pequeños. Para esta prueba la hipótesis nula implica que los datos siguen una distribución normal, y la hipótesis alternativa indica lo contrario. Por tanto, si el p-valor de la prueba es inferior a 0.05 (el nivel alfa de significación que se toma por defecto) rechazaremos la hipótesis nulas y diremos que la respuesta no sigue una distribución normal en cada grupo de estudio. En caso contrario, si el p-valor es mayor a 0.05, no estaremos incumpliendo el supuesto de normalidad.

En los 3 grupos la variable attractiveness tiene distribución normal pero debemos tener cuidado, ¡ya que solo tenemos 16 observaciones por grupo! también podríamos realizar gráficos q-q para evaluar este supuesto, que siempre es más preciso (¡lo dejo en vuestras manos!).

Homogeneidad de varianza: comprueba que las varianzas de la respuesta en cada grupo son iguales. 

Utilizaremos distintos tipos de pruebas para evaluar la homocedasticidad (homogeneidad de varianza).Las diferencias entre las pruebas se deben a su sensibilidad al supuesto de normalidad visto anteriormente. Para esta prueba la hipótesis nula implica que los datos presentan homogeneidad de varianza entre los grupos, por lo cual si el p-valor es inferior a 0.05 estaríamos incumpliendo este supuesto. Si el p-valor es mayor a 0.05 existe homogeneidad de varianza.

En todos los casos obtenemos p>0.05, es decir, no encontramos problemas de heterocedasticidad (falta de homogeneidad de varianza).Las pruebas de normalidad y homogeneidad de varianza no indican problemas con los supuestos estadísticos clásicos, si bien debemos recordar que tenemos tan solo 16 sujetos por grupo.

¿Existen diferencias entre los grupos?: prueba ANOVA R

Recordemos nuestra pregunta. Sin diferenciar por sexo, ¿al consumir alcohol los sujetos se vuelven menos selectivos a la hora de elegir pareja? ¿en qué momento se vuelven más selectivos? ¿con 2 pintas o con 4 pintas de alcohol?Para el caso del ANOVA de un factor entre grupos, las hipótesis que corresponden son:

  • H0: mu_None=mu_2pints=mu_4pints; el atractivo físico de las parejas de sujetos con distinto consumo de alcohol es similar (los sujetos, inependientemente del nivel de consumo de alcohol que tengan encima, son igual de selectivos a la hora de encontrar pareja).
  • H1: alguno es distinto (existen diferencias entre al menos alguno de los 3 grupos de consumo de alcohol, alguno de ellos es más selectivo pero no indico cuál)

Prueba paramétrica: ANOVA de un factor entre-grupos.

Existen diferencias estadísticamente significativas entre los grupos de consumo de alcohol (F(2,45)=13.31, p<0.05).

¿Entre qué grupos hay diferencias?: pruebas post hoc

Como hemos detectado diferencias entre los grupos, nos preguntamos específicamente qué grupos son significativamente distintos. Para ello utilizamos la prueba de comparación múltiple post hoc de Tukey (también llamada prueba HSD).

Encontramos que existen diferencias entre 4 Pints-None y 4 Pints-2 Pints (p<0.001), pero no entre 2 Pints-None.Observando los gráficos y estadísticos descriptivos que hemos calculado anteriormente podemos afirmar que solo para 4 pintas de alcohol disminuye estadística y significativamente el nivel de atracción de las parejas.

Reflexión final sobre la prueba ANOVA R

No detectamos valores atípicos y los datos se distribuyeron de manera normal en cada grupo, como indicó la prueba de Lund para valores atípicos, el gráfico de cajas (Figura) y la prueba de normalidad de Shapiro-Wilks (p>.1), respectivamente.

Tampoco detectamos problemas de homogeneidad de varianza, como observamos en la prueba de Levene (p>.1).

El nivel de atracción de las parejas fue estadística y significativamente distinto entre los grupos de sujetos con diferente consumo de alcohol (F(2,45)=13.31, p<.05).El grupo de sujetos que no habían consumido alcohol (63.75±8.47) y el que consumió 2 pintas (64.69±9.91) presentaron valores similares en el atractivo de las parejas que encontraron, sin embargo, estos valores disminuyeron para el grupo que consumió 4 pintas (46.56±14.34). Solo se detectaron diferencias estadísticamente significativas al comparar con el último grupo. La prueba de comparaciones múltiple post hoc de Tukey indicó que la disminución en el atractivo de las parejas fue significativo desde 0 a 4 pintas (diferencia de medias-18.13, IC al 95% [-27.71, -8.54]) y desde 2 a 4 pintas (diferencia de medias=-17.19, IC al 95% [-26.78, -7.60]), pero no de 0 a 2 pintas (diferencia de medias=.94, IC al 95% [-8.65,10.52]). Dicho de otro modo, detectamos diferencias significativas en el atractivo de las parejas de sujetos con distinto consumo de alcohol, en particular vemos que los sujetos se volvieron menos selectivos en la búsqueda de pareja a partir de 4 pintas de alcohol. Moraleja, un poco de alcohol no nos hace menos selectivos en la búsqueda de pareja pero si nos pasamos... Como comentario final, recuerda que los datos también incluyen información sobre el sexo del sujeto analizado. Esto nos permitiría investigar si el efecto del consumo del alcohol sobre la selección de pareja ocurre antes en los hombres respecto a las mujeres, o viceversa. Analizar estos dos factores (consumo de alcohol y sexo) requiere una prueba ANOVA de dos vías, que veremos en un futuro post, ¿pero tú qué esperarías obtener? ¡Saludos! 

18 comentarios

¹ Todos los campos son obligatorios.
² Tu correo electrónico no será publicado.

  • Excelente articulo

    Responder

    Monica 12 de diciembre de 2018, 09:45

    • ¡Muchas gracias Mónica por tu comentario! Saludos

      Responder

      Rosana Ferrero 12 de diciembre de 2018, 09:53

  • Muchas gracias por este artículo. Si hicieras más de este tipo pero utilizando otras pruebas estadísticas en R, incluso de estadística robusta, me serías de gran ayuda.
    De todas formas, después de este post ya he guardado tu blog en favoritos.
    ¡Gracias!

    Responder

    Marta 15 de enero de 2019, 18:50

  • Excelente!

    Responder

    Ivette Fernandez 20 de febrero de 2020, 19:23

    • ¡Muchas gracias Ivette! 😉

      Responder

      Rosana Ferrero 20 de febrero de 2020, 19:35

  • Hola Rosana, la información que compartes me parece excelente, gracias. Sin embargo tengo dos dudas. Tengo una base de datos de diferentes especies de aves a las que les medí talla, longitud del ala y del pico, saque las medias y la desviación estándar. Quiero saber si hay diferencias entre las medias de las especies y en caso de haberlas, entre que especies. Mis dudas son, puedo usar una ANOVA de una vía para obtener esta información? Y si es así, cómo debo elaborar los datos para correrlos en R? Saludos

    Responder

    Jesús Ortega 31 de julio de 2020, 21:45

    • Hola Jesús,

      tienes múltiples variables respuesta y una única variable explicativa (la especie). Podrías realizar un ANOVA de 1 vía para cada variable respuesta y/u optar por un MANOVA que es la versión multivariante del ANOVA para hacer un único análisis. Son aproximaciones complementarias.

      Debes utilizar los datos originales, no las estimaciones de medias y varianzas (esto lo hará la prueba por ti, pero necesita la información original para realizar los cálculos). Recuerda que los datos deben tener la siguiente estructura ordenada: variables en las columnas y casos en las filas. Dicho esto, ya sí podrás aplicar lo que les muestro en el post.

      ¡Saludos!

      Responder

      Rosana Ferrero 3 de agosto de 2020, 12:21

  • Hola Rosana, en primer lugar, un artículo súper claro, me ha encantado la forma en la que está explicado todo, enhorabuena por tu trabajo.

    Sin embargo, quería hacerte algunas preguntas.
    – En el caso de que existieran valores atípicos, ¿qué procedimiento seguirías?
    Es decir, si existieran valores atípicos, lo más lógico sería «quitarlos» de tus datos para que no alterasen los resultados de las medias ¿no? Pero en ese caso, si los quitas, a la hora de realizar el ANOVA, ¿cómo lo harías? Porque en ese caso los datos dejarían de estar balanceados y tengo entendido que si los datos no están balanceados es un problema a la hora de realizar el ANOVA.

    – En el caso de que alguno de los grupos no presentase normalidad ¿habría que transformar los datos de los 3 grupos para obtener la normalidad de todos los grupos o directamente se haría un test no paramétrico? ¿Qué transformaciones se harían? ¿O sólo se transforman los datos en el caso de que no exista homogeneidad de varianzas? Y por último, ¿al realizar el ANOVA, usarías los datos transformados o los originales?

    Perdona por hacerte tantas preguntas y muchísimas gracias de antemano.

    Responder

    Andrea 20 de septiembre de 2020, 22:17

    • Hola Andrea, gracias por tu comentario.
      muchos estadísticos descriptivos como las medias, las desviaciones estándar y las correlaciones, son muy sensibles a los valores atípicos. Y por tanto, las técnicas estadísticas que los utilizan, como la regresión lineal y el ANOVA, también lo son. A pesar de ello, NO es aconsejable descartar una observación solo porque sea un valor atípico. Pueden ser observaciones legítimas y, a veces, pueden ser las más interesantes. Es importante investigar la naturaleza del valor atípico antes de tomar una decisión.
      Mis recomendaciones:
      1. Analizar si el valor atípico se debe a datos ingresados ​​o medidos incorrectamente, y en ese caso reparar el error o eliminar el valor.
      2. Puedes realizar el análisis con y sin el valor atípico, e indicar en sus resultados cómo cambiaron los resultados. ¿Afecta los resultados o los supuestos?
      3. Puedes realizar pruebas o modelos robustos (robustos a la presencia de valores atípicos), con el paquete WRS2 de R.
      4. En algunos casos puedes aplicar una transformación (e.g. logarítmica) en los datos para dar «menos peso» a los valores atípicos. Ten en cuenta que cambia la interpretación de los resultados.
      Cualquiera sea el enfoque que adoptes debes conocer bien tus datos (realiza análisis descriptivos para ver a cómo son los valores atípicos y cuáles son sus consecuencias) y su área de investigación. Prueba diferentes enfoques y decide cuál tiene mayor sentido.

      Existen 3 formas diferentes de calcular un ANOVA, utilizando las sumas de cuadrados de Tipo I, Tipo II y Tipo III. Los tres métodos dan el mismo resultado cuando el diseño está equilibrado, pero cuando el diseño está desequilibrado (i.e. cuando cuando los tamaños de muestra dentro de cada nivel/categoría de las variables explicativas/independientes no son los mismos) no dan los mismos resultados. Simplificando, se suele recomendar la suma de cuadrados de Tipo III en estos casos. La función Anova() del paquete car se puede utilizar para calcular la prueba ANOVA para diseños no balanceados con error tipo III:
      library(car)
      modelo <- aov(respuesta ~ explicativa, data = datos) Anova(modelo, type = "III") Sobre la falta de normalidad de los datos, depende. Depende de a qué se debe la falta de normalidad. Si es por la presencia de outliers, se aplica lo que te comenté antes. Si es simplemente porque no se ajusta a lo normal pero no es "demasiado pronunciada la diferencia" (es subjetivo), podrías seguir adelante con las pruebas paramétricas porque son robustas al incumplimiento de la normalidad. Si fuera por la naturaleza de las variables (e.g. estás analizando variables ordinales) deberías utilizar pruebas no paramétricas. El supuesto más delicado es la homogeneidad de varianza. Existen algunas correcciones que te permiten disminuir su impacto en los resultados, e.g. la corrección de Welch o White. Anova(modelo, Tipo = "III", white.adjust = TRUE) Todos estos detalles y muchos más los vemos en nuestro Máster de Estadística Aplicada con R, que comienza en OCTUBRE. ¡Estás invitada! Saludos

      Responder

      Rosana Ferrero 21 de septiembre de 2020, 10:49

  • Muchas felicidades, excelente entrada.

    Responder

    Nerys 3 de diciembre de 2020, 14:16

  • Solo tomaré dos pintas

    Responder

    Jimmy 8 de marzo de 2022, 10:18

    • Jajaja, buena conclusión Jimmy!

      Responder

      Rosana Ferrero 9 de marzo de 2022, 09:49

  • Excelente y muy educativo artículo. ???

    Responder

    Luis 25 de agosto de 2022, 02:42

    • Gracias a ti Luis! Me alegro de que hayas disfrutado el post. Si quieres aprender más sobre ANOVAs y sobre diseño experimental e inferencia en general, te recomiendo realizar nuestro Máster de Estadística Aplicada a la Ciencia de Datos: https://www.maximaformacion.es/masters/master-de-estadistica-aplicada-con-r-software/.
      Programa una reunión con nuestro equipo para ampliar información: +598 94 707 187 (Joana)
      Saludos

      Responder

      Rosana Ferrero 1 de septiembre de 2022, 10:28

  • Buen dato. Muy bien explicado, con claridad, te mereces cinco estrellas, felicitaciones.
    Esperando el Anova jerarquico para ver el efecto de sexo. Saludos

    Responder

    Nelson Cala 20 de octubre de 2022, 17:51

Te llamamos

Introduce los siguientes datos y nos pondremos en contacto contigo para atender tus dudas sin compromiso.

Te llamamos

Muchas gracias por solicitar información.
Te contactaremos lo antes posible.

Diseño web: Albin Soft.