Skip to content

Analisis de Varianza (ANOVA)

Published: at 12:00 AM

Análisis de varianza

Elementos del diseño de experimento

Experimento: situación planeada y controlada. Prueba o serie de pruebas para identificar causas

Ejemplo:

Tomemos la siguiente situación problemática. Estudiar el crecimiento de una planta, en función de tres variedades de fertilizante y de cuatro tipos de suelo.

ANOVA a una vía

Un factor, kk niveles, buscamos comparar los promedios de una variable en los kk grupos. Se seleccionan muestras aleatorias independientes de las kk poblaciones (diseño completamente aleatorizado).

Supuestos

Hipótesis

Ejemplo 0: Dados

Tenemos 12 dados de 6 caras y 6 dados de 4 caras. Si hacemos 3 grupos de la siguiente forma:

G1{\color{red}G1}G2{\color{red}G2}G3{\color{red}G3}
D4D4D4D4D4D4
D6D6D6D6D6D6
D6D6D6D6D6D6

Si lanzamos los dados y generamos una tabla, ¿esperamos una diferencia en el promedio entre grupos?

Si los 3 grupos son:

G4{\color{blue}G4}G5{\color{blue}G5}G6{\color{blue}G6}
D4D4D6D6D6D6
D4D4D6D6D6D6
D4D4D6D6D6D6

Si lanzamos los dados y generamos una tabla, ¿esperamos una diferencia en el promedio entre grupos?

¿Hay más diferencia entre promedios de los grupos rojos (1,2,3) o entre los grupos azules (4,5,6)?

Hipótesis

yijy_{ij}, la jj-ésima observación del ieˊsimo tratamiento\color{blue}i-ésimo\ tratamiento

G1{\color{blue}1}G2{\color{blue}2}Gk{\color{blue}k}
y11y_{{\color{blue}1}1}y21y_{{\color{blue}2}1}yk1y_{{\color{blue}k}1}
y1ny_{{\color{blue}1}n}y2ny_{{\color{blue}2}n}ykny_{{\color{blue}k}n}
Totaly1y_{{\color{blue}1} \square}y2y_{{\color{blue}2}\square}yky_{{\color{blue}k}\square}yy_{\square\square}
Mediay1\overline{y_{{\color{blue}1} \square}}y2\overline{y_{{\color{blue}2}\square}}yk\overline{y_{k\square}}y\overline{y_{\square\square}}

yi=j=1nyijy_{{\color{blue}i}\square} = \sum_{j=1}^n y_{{\color{blue}i}j} : es la suma del ieˊsimo grupo{\color{blue}i-ésimo\ grupo}

yi=yin\overline{y_{{\color{blue}i}\square}} = \frac{y_{{\color{blue}i}\square}}{n} es el promedio del ieˊsimogrupo{\color{blue}i-ésimo grupo}

yj=1ni=1kyij{y_{\square\square}} \sum_{j=1}^n\sum_{i=1}^k y_{{\color{blue}i}j} es la suma de todos los grupos

y=ykn\overline{y_{\square \square}} = \frac{y_{ \square \square}}{kn} es el promedio de todos los datos

Modelo

yij=μi+ϵij i=1,2,...,k j=1,2,...,n y_{ij} = \mu_i + \epsilon_{ij} \ i=1,2,...,k \ j=1,2,...,n

Suma de Cuadrados Total SST{\color{red}SST}

O variación total en el experimento: SST=i=1kj=1n(yijy)2{\color{red}SST}= \sum_{i=1}^k\sum_{j=1}^n (y_{ij}-\overline{y_{\square\square}})^2

yijyy_{ij} - \overline{y_{\square\square}} es la distancia de cada medición al promedio. Luego la SST{\color{red}SST} es la suma de los cuadrados de las distancias al promedio.

Ejemplo 1

Si tenemos Los siguientes grupos:

G1G2G3
81410
71612
91216
131715
101112

Para hallar la suma de cuadrados total calculamos total y media por grupo:

G1G2G3
Total, yiy_{i\square}477065
Media, yi\overline{y_{i\square}}9.41413

Y calculamos la suma de todos los datos y su promedio:

y=182{y_{\square\square}} = 182
y=12.13\overline{y_{\square \square}} = 12.13

Ejemplo 2 (KA), SST

De Khan Academy, en el enlace: https://youtu.be/tH01ocwZGkQ?si=C7f4ZRoxIGunajC8

Suma de cuadrados entre tratamientos y dentro de tratamientos

La expresión para SST se puede modificar haciendo algo de álgebra (como lo muestra el profesor Contento en su libro del año 2019). Después de ésto se llega a :

SST=SCTr+SSE{\color{red}SST} = {\color{blue}SCTr} + {\color{green}SSE}

SST=i=1kj=1n(yijy)2=i=1kj=1n(yiy)2+i=1kj=1n(yijyi)2{\color{red}SST} = {\color{red}\sum_{i=1}^k\sum_{j=1}^n (y_{ij}-\overline{y_{\square\square}})^2} = {\color{blue}\sum_{i=1}^k\sum_{j=1}^n (\overline{y_{i\square}}-\overline{y_{\square\square}})^2} + {\color{green}\sum_{i=1}^k\sum_{j=1}^n (y_{ij}-\overline{y_{i\square}})^2}

Donde: SST{\color{red}SST} es la suma de cuadrados total que ya conocemos, y

Volviendo al…

Ejemplo 1

Tenemos que:

SST=(812.13)2+(712.13)2+...+(1512.13)2+(1212.13)2{\color{red}SST} = (8-12.13)^2 + (7-12.13)^2 + ... + (15-12.13)^2 + (12-12.13)^2

SCTr=(9.412.13)2+(9.412.13)2+...+(1312.13)2+(1312.13)2{\color{blue}SCTr} = (9.4 - 12.13)^2 +(9.4-12.13)^2 + ... + (13-12.13)^2 + (13-12.13)^2

SSE=(89.4)2+(79.4)2+...+(1513)2+(1213)2{\color{green}SSE} = (8-9.4)^2 +(7-9.4)^2 + ... + (15-13)^2+(12-13)^2

Ejemplo 2

Para calcular SCTr y SSE para el ejemplo 2, siga el enlace: https://www.youtube.com/watch?v=l_VHVIF7_cs

Grados de Libertad

Recordemos que estamos interesados en identificar si existe variabilidad entre diferentes grupos. Ahora, como necesariamente habrá más variabilidad si hay más grupos y más datos, es necesario tener en cuenta los grados de libertad.

Cuadrados medios

Con los grados de libertad se calculan los cuadrados medios de variación

Prueba de Hipótesis

Si el tratamiento no funciona, los promedios serán todos iguales. Si el tratamiento funciona habrá uno de ellos que es diferente. Entonces podemos lanzar las hipótesis:

Ejercicios

Aquí se pueden hacer los ejercicios 1 y 2 de Contento, página 372

Ejemplo

Supongamos que para un proceso tenemos los siguientes valores y sus respectivos promedios.

3{\color{blue} -3}1.2{\color{blue} -1.2}1{\color{blue} 1}2.2{\color{blue} 2.2 }μc=0.25{\color{blue}\mu_c = -0.25 }
2{\color{red} -2 }0.9{\color{red} -0.9}0.9{\color{red} 0.9 }2{\color{red} 2}μs=0{\color{red} \mu_s = 0}
2.1{\color{green} -2.1 }1{\color{green} -1}0.6{\color{green} 0.6}3{\color{green} 3 }μt=0.125{\color{green} \mu_t = 0.125}

Los representamos en la siguiente gráfica.

Representación de los datos de la tabla anterior. El primer conjunto está con discos azules, el segundo con cuadrados rojos y el tercero con triángulos verdes. En general los símbolos se sobreponen, porque los valores están cercanos. Los promedios también están cercanos

Aquí podemos ver que los poromedios tienden a estar cerca entre ellos.

Ahora, μ0.0416\mu \approx -0.0416. Entonces SCTr=3(0.250.0416)2+3(00.0416)2+3(0.1250.125)2=0.28125SCTr = 3 \cdot (-0.25-0.0416)^2 + 3 \cdot (0 - 0.0416) ^2 + 3 \cdot (-0.125-0.125)^2 = 0.28125 y CMTR=0.09375{\color{blue} CMTR=0.09375} SSE=(3+0.25)2+(1.2+0.125)2+...+(30.125)238.2818SSE = (-3+0.25)^2 +(-1.2+0.125)^2 + ... + (3-0.125)^2 \approx 38.2818 y CME4.253{\color{green}CME \approx 4.253}. Fijate que no se cumple que (CMTr){\color{blue}(CMTr)}>(CME){\color{green}(CME)}

Ahora si la tabla fuese diferente, por ejemplo la siguiente:

3{\color{blue} -3}2.5{\color{blue} -2.5}2{\color{blue} -2}1.5{\color{blue}-1.5 }μc=2.25{\color{blue}\mu_c = -2.25 }
1.5{\color{red} 1.5}2.1{\color{red} 2.1}2.4{\color{red} 2.4 }3{\color{red} 3}μs=2.25{\color{red}\mu_s = 2.25}
1.3{\color{green} 1.3 }1.9{\color{green} 1.9}2.5{\color{green} 2.5}3.1{\color{green} 3.1 }μt=2.2{\color{green} \mu_t = 2.2}

Aquí los valores azules están alejados de los verdes y rojos, como se puede ver en la gráfica:

Representación de los datos. Los valores de la primera fila de la tabla son discos azules, la segunda cuadrados rojos, la tercera triángulos verdes. Están segregados, los azules a la izquierda separados de los rojos y verdes que se sobreponen. También los promedios, el de los discos está a la izquierda, mientras que los otros dos están similares. El promedio total, rperesentado por un punto negro, está más cerca a los rojos y verdes, pero igual no se sobrepone a ellos

Calculamos los valores, encontrando

μ0.73\mu \approx 0.73

SCTr53.41SCTr \approx 53.41

CMTr26.703,{\color{blue} CMTr \approx 26.703,}

SSE4.22SSE \approx 4.22,

CME0.489{\color{green}CME \approx 0.489}

Vemos que se cumple que (CMTr){\color{blue}(CMTr)}>(CME){\color{green}(CME)}

Prueba de Hipótesis para ANOVA

Los cuadrados medios CMTr=SCTrk1CMTr = \frac{{\color{blue}SCTr}}{k-1} y CME=SSEk(n1)CME = \frac{{\color{green}SSE}}{k(n-1)} representan variables entre{\color{blue}entre} grupos y dentro{\color{green}dentro} de los grupos. Su división fc=CMTrCMEf_c=\frac{{\color{blue}CMTr}}{{\color{green}CME}} es una variable aleatoria que se distribuye como una función FF con k1k-1 y k(n1)k(n-1) grados de libertad.

Ejemplo (Contento 2019, pg. 362)

Niveles de atención (minutos) de lectura matutina, en tres grupos

Sin DesayunoDesayuno ligeroDesayuno completo
81410
71612
91216
131715
101112
\Sin DesayunoDesayuno ligeroDesayuno completo
Totales477065

Para trabajarlo en Python:

import pandas as pd
import statsmodels.api as sm
import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as stats
plt.ion()
from statsmodels.formula.api import ols
datos = pd.DataFrame({'atencion':[8,7,9,13,10,14,16,12,17,11,10,12,16,15,12],'tipo_desayuno':['sin','sin','sin','sin','sin','ligero','ligero','ligero','ligero','ligero','completo','completo','completo','completo','completo']})
lm = ols('atencion ~ C(tipo_desayuno)',data=datos).fit()
tabla_anova = sm.stats.anova_lm(lm,typ=2)
tabla_anova

El resultado es el siguiente:

.sum_sqdfFPR(>F)
C(tipo_desayuno)58.5333332.04.9325840.027326
Residual71.20000012.0NaNNaN

La tabla indica los valores de la suma de cuadrados, los grados de libertad de grupos y datos, el valor de FF y la probabilidad de encontrar ese valor por azar, 0.0273260.027326. Como este valor es más pequeño al 5%, pero más grande al 1%, se concluye el resultado es significativo a un nivel de 5%.

Ejemplo 2, Khan Academy:

Se puede ver en el siguiente video: https://youtu.be/46CVRPdlKHc?si=0xxT_TOcSO5rWHV0

Condiciones para ANOVA

Para que se pueda aplicar el método del análisis de varianza, y sus resultados tengan sentido, se tinen que cumplir una serie de condiciones.

  1. Normalidad de los residuales: la distribución de los errores experimentales debe ser una distribución gaussiana.

  2. Homogeneidad de la varianza (homocedasticidad): las varianzas de las variables dependientes deben ser aproximadamente similares entre los grupos de tratamiento.

  3. Independencia: no hay relación entre las observaciones de diferentes grupos, son independientes entre ellos

Y relacionado con estos tenemos también la continuidad de la variable dependiente, ya que cuando esta variable no lo és se invalida la condicion de normalidad y homogeneidad de la varianza.

Pruebas para las condiciones

Se investigan con estadísticos de prueba (Shapiro, Levene, entre otros) o gráficamente (gráficos de residuos QQ o histogramas)

Normalidad

Shapiro

Usando el test de shapiro:

stats.shapiro(lm.resid)

El resultado son dos números, la estadística de prueba y el nivel de significacncia, α\alpha. La hipótesis nula es que si se distribuyen de manera normal. En este caso se obtiene el siguiente texto: ShapiroResult(statistic=np.float64(0.9272863300806745), pvalue=np.float64(0.24845535561613769)). Es decir, el valor del estadístico de prueba es 0.9272863300806745, y la significancia es 0.24845535561613769. Cómo éste valor no es menor a 0.05, no tenemos evidencia contra la hipótesis nula; es decir que aceptamos que se cumple la condición de normalidad de los rediduos.

Gráficamente

fig = plt.figure(figsize= (10, 10))
ax = fig.add_subplot(111)

normality_plot, stat = stats.probplot(lm.resid, plot= plt, rvalue= True)
ax.set_title("Probability plot of model residual's", fontsize= 20)
ax.set

Se obtiene la siguiente gráfica:

Gráfica de los residuales. En el eje x dice 'theoretical quantities', y varía de -1.5 a 1.5. en el eje y dice 'observed values', y varía de -4 a 4. La figura muestra los datos en puntos azules, cercanos a una recta roja.

Homogeneidad de la varianza

Primero construimos una tabla de los datos divididos por categorías.

data = [datos['atencion'][datos['tipo_desayuno'] == 'sin'],
        datos['atencion'][datos['tipo_desayuno'] == 'ligero'],
        datos['atencion'][datos['tipo_desayuno'] == 'completo']]

A continuación se genera la gráfica.

fig = plt.figure(figsize= (10, 10))
ax = fig.add_subplot(111)

ax.set_title("Tiempos de atención", fontsize= 20)
ax.set


ax.boxplot(data,
           labels= ['sin', 'ligero', 'completo'],
           showmeans= True)

plt.xlabel("Desayuno")
plt.ylabel("Atención")

El resultado es la siguiente gráfica:

Diagrama de caja de los tiempos de atención. Hay tres cajas, marcadas en el eje horizontal como 'sin', 'ligero' y 'completo'. Las cajas que representan los dos casos con desayuno tienen en general mayores tiempos de atención que el caso sin desayuno. En general las distribuciones son simétricas.

En el cuadrado verde está el promedio . La línea naranja es la mediana.

¿usted diría que la distribución es simétrica?

Bibliografía


Previous Post
Tarea: Distribución Gaussiana
Next Post
Datos Faltantes