1. Ejemplo motivador

EJEMPLO 1: Tres trabajadores de una cadena de montaje van a comparar su efectividad. Se recoge el tiempo que tarda cada trabajador en realizar su tarea sobre las siguentes 10 unidades que pasan por su punto de la cadena.

A = c(4.44, 4.77, 6.56, 5.07, 5.13, 6.72, 5.46, 3.73, 4.31, 4.55)
B = c(6.22, 5.36, 5.40, 5.11, 4.44, 6.79, 5.50, 3.03, 5.70, 4.53)
C = c(3.93, 4.78, 3.97, 4.27, 4.37, 3.31, 5.84, 5.15, 3.86, 6.25)

Tenemos que decidir si hay algún trabajador “más rápido” o no. Para ello valoramos a cada uno con su tiempo medio:

Trabajador Tiempo medio
A 5.074
B 5.208
C 4.573

Por lo tanto, el más rápido ha sido el C.

Comparemos gráficamente los tiempos de cada trabajador (dibujamos nube de puntos y diagrama de caja superpuestos):

Se ve que los tiempos de cada trabajador fluctúan, cada uno en torno a su media.

FIN EJEMPLO 1

EJEMPLO 2: Misma situación que en Ejemplo 1, pero con otros tres trabajadores distintos.

D = c(5.01, 5.04, 5.22, 5.07, 5.08, 5.24, 5.11, 4.94, 5.00, 5.02)
E = c(5.18, 5.09, 5.09, 5.06, 5.00, 5.23, 5.10, 4.86, 5.12, 5.01)
F = c(4.51, 4.59, 4.51, 4.54, 4.55, 4.45, 4.70, 4.63, 4.50, 4.74)

De nuevo comparamos su rapidez usando los tiempos medios:

Trabajador Tiempo medio
D 5.073
E 5.074
F 4.572

Por lo tanto, el más rápido ha sido el F.

Vemos ahora las fluctuaciones de los tiempos de cada uno en el diagrama de caja:

FIN EJEMPLO 2

CONCLUSIÓN: SE BUSCA TÉCNICA “OBJETIVA” (JUSTIFICADA ESTADÍSTICAMENTE) QUE PERMITA COMPARAR Y DECIDIR SOBRE SI LOS PROMEDIOS DE MÁS DE 2 POBLACIONES SON SIGNIFICATIVAMENTE DISTINTOS O NO (A PARTIR DE OBSERVAR MUESTRAS DE ELLAS). ES DECIR, QUE PERMITA DECIDIR ENTRE:

2. El modelo ANOVA de un factor

El modelo ANOVA de un factor involucra:

En el ejemplo de los trabajadores:

3. Objetivos del ANOVA

4. El modelo ANOVA de un factor con R

4.1. Los datos

  • Los datos deben ser en dos variables (una para \(Y\) y otra para \(X\)). Pueden ser:
    • Dos columnas de una misma hoja de datos
    • Dos vectores sueltos
  • A veces hay varios vectores con datos de \(Y\), un vector “por cada nivel” del factor \(X\). En ese caso hay que construir dos vectores (uno para todas las \(Y\)’s y otro para todas las \(X\)’s):
    • El vector con todos los datos de \(Y\): concatenar todos los vectores de datos
    • El vector con todos los datos de \(X\): repetir “cada nivel” de \(X\) (número o palabra) tantas veces como datos de \(Y\) asociados a ese nivel, y concatenar todos al final

4.2. La tabla ANOVA y la decisión del contraste

  • Es una tabla que ayuda a calcular el estadístico \(F\) y su \(p\)-valor para decidir el contraste de igualdad de medias.
  • Se consigue en dos pasos: primero aov() y luego summary()
  • Función aov( formula, data,... ):
    • Argumentos:
      • formula: expresión de la forma y ~ x, que indica qué vector o columna hace de \(Y\) (la y) y cuál hace de \(X\) (la x). El símbolo ~ sólo sirve parar indicar que el símbolo de su izquierda es la variable dependiente, y el de su derecha es el factor.
      • data: si los datos están en dos vectores suelto, no utilizar. Si los datos están en dos columnas de una hoja de datos, poner el nombre de la hoja de datos.
    • Devuelve: un objeto tipo lista, y por pantalla, las sumas de cuadrados (inter e intra) y sus grados de libertad, además de la estimación (insesgada) de \(\sigma\)
  • Función summary(object):
    • Argumento: object, el objeto devuelto por aov()
    • Devuelve: una lista con una componente en forma de hoja de datos, que contiene la tabla ANOVA, con con los grados de libertad (Df), las sumas de cuadrados (Sum Sq) inter (con el nombre del factor) e intra (con el nombre Residuals), las medias de cuadrados (Mean Sq), el valor del estadístico de contraste (F), y su \(p\)-valor (Pr(>F)). Si se quiere acceder al \(p\)-valor exacto, poner summary(object)[[1]][1,5]
  • Decisión del contraste:
    • “Rechazar \(H_0\) si \(p\)-valor \(< \alpha\)
    • Recuerda:
      • Aceptar \(H_0\) significa…
        • Aceptar \(\mu_1 = \mu_2 = \cdots = \mu_a\), que es lo mismo que
        • Aceptar que \(Y\) se comporta igual, sea cual sea el valor de \(X\), que es lo mismo que
        • Aceptar que \(Y\) NO depende del factor \(X\), que es lo mismo que
        • Aceptar que \(X\) no ejerce influencia sobre \(Y\).
      • Rechazar \(H_0\) significa…
        • Lo contrario de todo lo anterior
        • En este caso se motiva continuar el análisis estableciendo un ranking de niveles del factor \(X\) (ver sección 4.4)

4.3. Adecuación del modelo

  • Para poder aplicar ANOVA y confiar en sus resultados, las \(Y\)’s deben cumplir las condiciones del modelo ANOVA (errores “normales”, independientes entre sí, independientes del nivel del factor, y con varianza común en todos los niveles).
  • Esta labor se suele realizar intuitivamente con dos figuras.
  • Función plot(...) aplicada sobre el objeto devuelto por aov(), devuelve 4 figuras, de las que examinamos:
    • Normal Q-Q (la segunda): se relacionan los cuantiles teóricos de la normal con los de los errores estimados.
      • Si los puntos quedan “cerca” de la diagonal, entonces, aparentemente, se está cumpliendo la normalidad de los errores.
      • Si “bastantes” puntos se alejan de la diagonal, entonces, aparentemente, está fallando la normalidad de los errores.
    • Residuals vs Factor Levels (la cuarta): se puede apreciar tanto si los errores tienen una “tendencia” que los hace “no independientes” (línea roja), como si la varianza es común en todos los niveles o no (amplitud vertical de los puntos).
  • La igualdad de varianzas se puede contrastar de manera objetiva: contraste de Bartlett de igualdad de varianzas
    • Función bartlett.test(formula, data) o bien bartlett.test(x,...):
      • formula: la misma que en aov()
      • data: el mismo que aov()
      • x,...: los vectores con los datos de \(Y\) para los diversos niveles del factor \(X\)
      • La hipótesis nula es la igualdad de varianzas en todos los niveles

4.4. Comparaciones a posteriori (por el método LSD de Fisher)

  • Si la tabla ANOVA conduce a aceptar que \(Y\) no depende de \(X\), ya está todo terminado.
  • En caso contrario, interesa conocer qué niveles de \(X\) dan mayor media de \(Y\). Hacemos un ranking de los niveles de \(X\).
  • Función LSD.test(y, trt, alpha, console), perteneciente al paquete agricolae, que se debe cargar (e instalar si no lo está).
  • Argumentos:
    • y: objeto devuelto por la función aov().
    • trt: nombre (etiqueta entrecomillada) de la variable factor (la \(X\)).
    • alpha: nivel de significación deseado (\(0.05\) por defecto).
    • console: poner a TRUE si se quiere ver en la R Console el resultado.
  • Devuelve: un objeto de tipo lista con estadísticos y tablas,
    • Una tabla con los niveles del factor y, para cada uno,
      • la media de la variable \(Y\),
      • error estándar,
      • número de observaciones,
      • intervalo de confianza, etc.;
    • Estadísticos varios;
    • LSD: valor de la mínima distancia significativa, y
    • Tabla con
      • el ranking: código (a, b, etc.) asignado por valor de media,
      • nivel del factor,
      • media de \(Y\) para dicho nivel.
      • Puede aparece un nivel con dos códigos distintos (cuando no se puede distinguir del nivel superior ni del inferior, pero ellos sí se distinguen entre sí).

6. Ejercicios evaluables

Carga el espacio de trabajo mt1021-1415-la-4-anova.RData, y en él encontrarás las variables que necesitas para los ejercicios.

# despeja esta linea cuando tengas el archivo
#load("mt1021-1415-la-4-anova.RData")

Problema 1 (25%)

La variable tiempos recoge los tiempos de realización de una misma tarea informática de varios operadores (de características muy similares) bajo 3 sistemas operativos, para comparar sobre cuál es más rápida.

  1. Realiza un gráfico “sencillo” del tiempo en función del sistema operativo, que visualice la posible influencia del sistema operativo sobre el tiempo.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Calcula los tiempos medios bajo cada sistema operativo, y establece un ranking de “rapidez” basado en esos tiempos medios.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Aplica el ANOVA para demostrar o refutar que el tiempo medio depende del sistema operativo. ¿Qué se puede decir usando un nivel de confianza del 5%?
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Comprueba si es razonable aplicar ANOVA a estos datos, o si no se debería aplicar. Figuras y comentario.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. En caso afirmativo, y si decidiste que el sistema operativo SÍ influía en los tiempos medios, haz un nuevo ranking donde se vea si hay diferencias estadísticamente significativas (al 5%) entre los sistemas operativos.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

Problema 2 (25%)

Las variables prodA, prodB, prodC y prodD recogen la producción (en miles de unidades) de 4 líneas en las que se aplican métodos distintos (A, B, C y D) que se quieren comparar.

  1. Realiza un gráfico “sencillo” de la producción en función del método, que visualice la posible influencia del método sobre la producción.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Calcula las producciones medias bajo cada método, y establece un ranking de “productividad”.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Aplica el ANOVA para demostrar o refutar que la productividad media depende del método. ¿Qué se puede decir usando un nivel de confianza del 1%?
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. Comprueba si es razonable aplicar ANOVA a estos datos, o si no se debería aplicar. Figuras y comentario.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

  1. En caso afirmativo, y si decidiste que el método SÍ influía en la productividad media, haz un nuevo ranking donde se vea si hay diferencias estadísticamente significativas (al 1%) entre los métodos.
# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

Problema 3 (25%)

Una asignatura tiene 5 grupos de laboratorio, con un profesor distinto en cada grupo. Alumnos de algún grupo se han quejado por creer que con su profesor, las notas son más bajas que en otros grupos. Utiliza los datos labo de las notas para saber qué puede aportar la estadistica a este caso. Describe el mismo esquema de trabajo de los ejericicios anteriores.

# Escribe aquí el codigo R de lo que se pide

Y TUS COMENTARIOS SI TAMBIÉN SE PIDEN

Problema 4 (25%)

  1. (75%) Programa simulaciones del modelo ANOVA, y ponlas a prueba con la tabla ANOVA, según las siguientes instrucciones.
  • Empieza estableciendo una semilla set.seed()
  • Crea un vector pvalor donde vas a guardar 10000 p-valores de 10000 aplicaciones del ANOVA, que harás en un bucle for
  • \(X\) tome los niveles \(x_1\) = “bajo” (20 muestreos), \(x_2\) = “medio” (30 muestreos) y \(x_3\) = “alto” (20 muestreos)
  • Muestreo de \(Y\) (aquí empezaría el bucle):
    • Cuando \(X\) = “bajo”, simula 20 valores de \(Y\) del modelo \(N(\mu=5, \sigma^2=2)\)
    • Cuando \(X\) = “medio”, simula 30 valores de \(Y\) del modelo \(N(\mu=5, \sigma^2=2)\)
    • Cuando \(X\) = “alto”, simula 20 valores de \(Y\) del modelo \(N(\mu=5, \sigma^2=2)\)
    • Crea la hoja de datos con los datos de \(X\) e \(Y\)
    • Aplica el ANOVA a esa muestra y guarda el \(p\)-valor en el vector pvalor
  • Repite el proceso 10000 veces.
# aqui la programacion
  1. (25%) Contesta las siguientes preguntas:

2.1. En el modelo ANOVA programado, ¿\(Y\) depende de \(X\)? ¿Por qué?

AQUÍ TU RESPUESTA, NO VALE SI NO SE RAZONA

2.2. Si hubieras usado una significación del 5% con las 10000 muestras simuladas, ¿en qué porcentaje de ellas te habría resultado “rechazar que las medias de \(Y\) son iguales”?