Análisis biavariante

1 Covarianza

La estadística univariante se centra en analizar una única variable (por ejemplo, la varianza de las horas de estudio o la varianza de las notas de forma aislada). Sin embargo, las variables no están solas; nos interesa saber si los cambios en una variable están vinculados a los cambios en otra.

Cuando cruzamos dos variables cuantitativas, el objetivo es analizar el grado de asociación y la dirección de dicha relación.

El primer paso es siempre visual es utilizar el gráfico de dispersión que dibuja un punto en un plano cartesiano por cada individuo de la muestra, donde:

  • El eje horizontal representa a la variable independiente (\(X\)).
  • El eje vertical representa a la variable dependiente (\(Y\)).

Covarianza positiva (X↑, Y↑)

   Y
   
  6|          *
  5|        *
  4|      *
  3|    *
  2|  *
  1|*
   +--------------------→ X
    1  2  3  4  5  6

Covarianza negativa (X↑, Y↓)

   Y
   
  6|*
  5|  *
  4|    *
  3|      *
  2|        *
  1|          *
   +--------------------→ X
    1  2  3  4  5  6

Covarianza cero (sin relación lineal)

   Y
   
  6|     *       *
  5|  *
  4|        *
  3|   *        *
  2|        *
  1| *      *
   +--------------------→ X
    1  2  3  4  5  6

La varianza de una variable (\(s_X^2\) o \(s_Y^2\)) mide la dispersión de los datos respecto a su propia media, es una medida “unidimensional”. Al no emparejar datos no se puede saber si las dos variables se influyen mutuamente, necesitamos por lo tanto, una medida que evalúe cómo varían conjuntamente. Esa medida es la Covarianza.

La covarianza (\(s_{XY}\)) es el estadístico que indica la variabilidad conjunta de dos variables cuantitativas.

\[s_{XY} = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{n - 1}\]

  • \(x_i, y_i\): Los valores individuales de cada observación.
  • \(\bar{x}, \bar{y}\): Las medias aritméticas de las variables \(X\) e \(Y\) respectivamente.
  • \(n\): El tamaño de la muestra.

Imagina que queremos ver si hay relación entre las Horas de estudio a la semana (\(X\)) y la Nota del examen (\(Y\)).

  • Alumno 1: Estudia 2 horas \(\rightarrow\) Saca un 4 de nota.
  • Alumno 2: Estudia 6 horas \(\rightarrow\) Saca un 6 de nota.
  • Alumno 3: Estudia 10 horas \(\rightarrow\) Saca un 8 de nota.

Primero calculamos el centro de nuestro gráfico (las medias aritméticas):

Media de Horas (\(\bar{x}\)):

\[\bar{x} = \frac{2 + 6 + 10}{3} = \frac{18}{3} = 6 \text{ horas}\]

Media de Notas (\(\bar{y}\)):

\[\bar{y} = \frac{4 + 6 + 8}{3} = \frac{18}{3} = 6 \text{ de nota}\]

La fórmula de la covarianza nos pide que para cada alumno restemos su valor menos la media, y luego multipliquemos esos resultados:

\[\text{Fórmula del numerador:} \quad (x_i - \bar{x})(y_i - \bar{y})\]

Alumno Horas (X) Nota (Y) Desviación X (\(x_i - \bar{x}\)) Desviación Y (\(y_i - \bar{y}\)) Co-producto (\((x_i - \bar{x})(y_i - \bar{y})\))
1 2 4 \(2 - 6 = -4\) \(4 - 6 = -2\) \((-4) \cdot (-2) = +8\)
2 6 6 \(6 - 6 = 0\) \(6 - 6 = 0\) \((0) \cdot (0) = 0\)
3 10 8 \(10 - 6 = +4\) \(8 - 6 = +2\) \((+4) \cdot (+2) = +8\)
Suma (\(\sum\)) 16

Para finalizar hay que coger la suma resultante de la tabla y dividirlo entre \(n - 1\):

\[s_{XY} = \frac{\text{Suma de Co-productos}}{n - 1}\]\[s_{XY} = \frac{16}{3 - 1} = \frac{16}{2} = \mathbf{8}\]

La covarianza ha dado como resultado 8:

  • El Signo (+): Al ser positivo, confirma que existe una relación directa. A más horas de estudio, mayor es la nota del examen. Los alumnos se mueven de forma coordinada en la misma dirección.
  • El Número (8): Nos indica que hay una variación conjunta, pero por sí solo no nos dice si la relación es “fuerte” o “débil”. Si cambiáramos las notas a una escala de 0 a 100 (un 40, un 60 y un 80), las distancias serían mayores y la covarianza se dispararía a 80, a pesar de que la relación entre los alumnos sigue siendo exactamente la misma.

Una matriz de covarianza contiene las covarianzas de cada par de variables que estudiamos. Y en la diagonal de una matriz de covarianza encontramos las varianzas de cada variable.

Imagina que en lugar de solo dos variables, ahora tuvieras tres:

  • Horas de estudio (\(X\))
  • Nota del examen (\(Y\))
  • Nivel de estrés (\(Z\))

La matriz de covarianza (a la que se le suele llamar con la letra griega Sigma, \(\Sigma\)) se organizaría de la siguiente forma:

Horas (X) Nota (Y) Estrés (Z)
Horas (X) Varianza de X (sX²) Covarianza (sXY) Covarianza (sXZ)
Nota (Y) Covarianza (sYX) Varianza de Y (sY²) Covarianza (sYZ)
Estrés (Z) Covarianza (sZX) Covarianza (sZY) Varianza de Z (sZ²)
import numpy as np

# 1. Definimos los datos de los 5 alumnos para cada variable
# Alumno:        [ A1,  A2,  A3,  A4,  A5]
horas_estudio =  [  2,   4,   6,   8,  10] # Variable X
notas_examen  =  [  4,   5,   6,   8,   9] # Variable Y
nivel_estres  =  [ 10,   8,   7,   5,   2] # Variable Z (A más estudio, menos estrés)

# 2. Agrupamos las variables en una sola lista (matriz de datos)
datos = [horas_estudio, notas_examen, nivel_estres]

# 3. Calculamos la matriz de covarianza
# ddof=1 asegura que use el divisor (n - 1) para muestras, tal y como hacemos a mano
matriz_cov = np.cov(datos, ddof=1)

# 4. Mostramos los resultados de forma bonita
print("=== MATRIZ DE COVARIANZA EN PYTHON ===")
print("          Horas(X)    Nota(Y)    Estrés(Z)")
print(f"Horas(X)  {matriz_cov[0,0]:8.2f}  {matriz_cov[0,1]:9.2f}  {matriz_cov[0,2]:10.2f}")
print(f"Nota(Y)   {matriz_cov[1,0]:8.2f}  {matriz_cov[1,1]:9.2f}  {matriz_cov[1,2]:10.2f}")
print(f"Estrés(Z) {matriz_cov[2,0]:8.2f}  {matriz_cov[2,1]:9.2f}  {matriz_cov[2,2]:10.2f}")
=== MATRIZ DE COVARIANZA EN PYTHON ===
          Horas(X)    Nota(Y)    Estrés(Z)
Horas(X)     10.00       6.50       -9.50
Nota(Y)       6.50       4.30       -6.20
Estrés(Z)    -9.50      -6.20        9.30

Por ejemplo, vemos que la relación entre horas y notas es de 6.50, es positiva, por tanto confirma matemáticamente que a más horas de estudio, mayor tiende a ser la nota del examen. La relación entre horas y estrés es de -9.50, es negativa, por tanto a más horas de estudio menor tiende a aser el nivel de estrés.

Con pandas, se puede calcular directamente la matriz de covarianzas con una única función.

import pandas as pd

# 1. Creamos un diccionario con nuestros datos
datos_alumnos = {
    'Horas Estudio (X)': [2, 4, 6, 8, 10],
    'Nota Examen (Y)':   [4, 5, 6, 8, 9],
    'Nivel Estrés (Z)':  [10, 8, 7, 5, 2]
}

# 2. Convertimos los datos en una TABLA de Pandas (DataFrame)
df = pd.DataFrame(datos_alumnos)

# 3. Llamamos a la función directa para calcular la matriz
matriz_tabla = df.cov()

# 4. Imprimimos la tabla directamente
print("=== MATRIZ DE COVARIANZA DIRECTA CON PANDAS ===")
print(matriz_tabla)
=== MATRIZ DE COVARIANZA DIRECTA CON PANDAS ===
                   Horas Estudio (X)  Nota Examen (Y)  Nivel Estrés (Z)
Horas Estudio (X)               10.0              6.5              -9.5
Nota Examen (Y)                  6.5              4.3              -6.2
Nivel Estrés (Z)                -9.5             -6.2               9.3

2 Correlación

El Coeficiente de Correlación de Pearson (\(r\)) es más la covarianza estandarizada. Al tomar la covarianza y dividirla entre las desviaciones estándar de ambas variables, queda dentro de un rango que va desde el -1 al 1.

El coeficiente de Pearson solo mide la relación lineal (si los puntos forman una línea recta). Si \(r = 0\), significa que no hay relación lineal, pero las variables podrían seguir siendo súper dependientes mediante otra forma geométrica (como una parábola o una curva).

  • 1 o cerca de 1. Es que hay una correlación lineal positiva
  • -1 o cerca de -1. Es que hay una correlación lineal negativa
  • 0 o cerca de 0. Es que no hay correlación lineal

Volvemos al ejemplo anterior, tenemos los siguientes alumnos que estudian unas horas y obtienen una nota.

  • Alumno 1: 2 horas \(\rightarrow\) Nota: 4
  • Alumno 2: 6 horas \(\rightarrow\) Nota: 6
  • Alumno 3: 10 horas \(\rightarrow\) Nota: 8

Los tres datos fundamentales ya calculados son:

  • La media de horas (\(\bar{x}\)) = \(6\)
  • La media de notas (\(\bar{y}\)) = \(6\)
  • La Covarianza (\(s_{XY}\)) = \(8\)

Para poder estandarizar la covarianza, la fórmula de Pearson nos pide que calculemos la desviación estándar de \(X\) y de \(Y\) por separado. Para ello, primero calculamos sus varianzas elevando las desviaciones al cuadrado:

Para las Horas (\(X\)):

  • Alumno 1: \((2 - 6)^2 = (-4)^2 = 16\)
  • Alumno 2: \((6 - 6)^2 = (0)^2 = 0\)
  • Alumno 3: \((10 - 6)^2 = (4)^2 = 16\)

\[\text{Varianza de } X \ (s_X^2) = \frac{16 + 0 + 16}{3 - 1} = \frac{32}{2} = \mathbf{16}\] \[\text{Desviación estándar de } X \ (s_X) = \sqrt{16} = \mathbf{4}\]

Para las Notas (\(Y\)):

  • Alumno 1: \((4 - 6)^2 = (-2)^2 = 4\)
  • Alumno 2: \((6 - 6)^2 = (0)^2 = 0\)
  • Alumno 3: \((8 - 6)^2 = (2)^2 = 4\)

\[\text{Varianza de } Y \ (s_Y^2) = \frac{4 + 0 + 4}{3 - 1} = \frac{8}{2} = \mathbf{4}\] \[\text{Desviación estándar de } Y \ (s_Y) = \sqrt{4} = \mathbf{2}\]

La fórmula del coeficiente de correlación consiste en tomar la covarianza y dividirla entre el producto de las dos desviaciones estándar que acabamos de sacar:

\[r = \frac{s_{XY}}{s_X \cdot s_Y}\]Sustituimos nuestros números:\[r = \frac{8}{4 \cdot 2}\] \[r = \frac{8}{8} = \mathbf{1}\]

Entonces en este caso hay una relación lineal positiva, a más horas mejores notas y a menos horas peores notas. Al ser exactamente 1, nos está diciendo que existe una correlación positiva perfecta. Si dibujáramos a estos tres alumnos en un gráfico de dispersión, los tres puntos caerían sobre una línea recta perfecta. No hay nada de dispersión ni de “ruido”, el comportamiento de una variable explica de manera absoluta el de la otra.

Cuando intentamos calcular exactamente cuántas unidades de nota (\(Y\)) aumentan por cada unidad de hora (\(X\)), entramos en la Regresión Lineal.La regresión busca encontrar la ecuación de esa línea recta perfecta, que en este ejemplo sería:

\[\text{Nota} = 3 + 0.5 \cdot (\text{Horas})\]

Esto no es más que la ecuación de la recta trazada por los puntos, es así gracias a que la relación lineal es perfecta en este caso.

3 Contraste de Independencia de Chi-cuadrado

En el análisis biavariante cuando las variables a estudiar son categóricas, se requiere un enfoque basado en el análisis de frecuencias y tablas de contingencia. El procedimiento estándar para evaluar la asociación entre dos variables categóricas es el Contraste de Independencia de Chi-cuadrado.

Chi-cuadrado es una distribución de probabilidad continua que deriva de la suma de variables aleatorias normales estándar independientes elevadas al cuadrado.

  • La variable aleatoria \(\chi^2\) solo puede tener valores mayores o iguales a cero (\([0, +\infty)\)). Por lo tanto, la función de densidad de probabilidad nace en \((0,0)\).
  • La distribución tiene cola larga hacia la derecha.
  • La forma exacta de la curva se determina por sus grados de libertad (\(df\)). A medida que los grados de libertad aumentan, la asimetría disminuye, convergiendo asintóticamente hacia una distribución normal.

El propósito del contraste no es medir diferencias numéricas directas, sino evaluar el grado de dependencia estocástica entre dos variables cualitativas. El contraste formaliza dos hipótesis contrapuestas:

  • Hipótesis Nula (\(H_0\)): Las dos variables categóricas son independientes. La distribución de frecuencias de una variable no altera la probabilidad condicionada de la otra.
  • Hipótesis Alternativa (\(H_a\)): Las variables son dependientes. Existe una relación de asociación o vinculación entre los criterios de clasificación.

Para contrastar estas hipótesis, se construye una matriz de doble entrada denominada Tabla de Contingencia, donde se cruzan las categorías de ambas variables y se computan las frecuencias reales observadas en la muestra.

Imagina que haces una encuesta en tu oficina a 120 personas para ver si la variable Tipo de Café que toman (Cápsulas vs. Cafetera Italiana Tradicional) está relacionada con su Nivel de Energía percibido al llegar. Ambas variables son categóricas (cualitativas).

Registramos las respuestas reales de los 120 empleados. Esto es lo que llamamos Frecuencias Observadas (\(O\)):

Energía Alta Energía Media Energía Baja Total por Café
Café de Cápsulas 30 20 10 60
Café Tradicional 10 20 30 60
Total por Energía 40 40 40 120 (Total)

Si observas la tabla, el café de cápsulas parece concentrarse en la energía alta (\(30\)), mientras que el tradicional se concentra en la baja (\(30\)). En la energía media ambos empatan (\(20\)).

Ahora la estadística calcula la tabla teórica: ¿Qué pasaría si el café no tuviera absolutamente ningún efecto en la energía (\(H_0\) es cierta)?. Si el café no influyera, las 60 personas que toman cápsulas deberían repartirse a partes iguales entre los tres niveles de energía (\(20\) en cada uno). Y lo mismo para las 60 personas de café tradicional.

Energía Alta (Esperado) Energía Media (Esperado) Energía Baja (Esperado)
Café de Cápsulas 20 20 20
Café Tradicional 20 20 20

El test de Chi-cuadrado compara la de frecuencias observadas con la tabla teórica casilla por casilla, restando los valores y elevando la diferencia al cuadrado para eliminar los signos negativos:

Matriz de las Restas \((O - E)\)

Energía Alta Energía Media Energía Baja
Café de Cápsulas 30 − 20 = +10 20 − 20 = 0 10 − 20 = −10
Café Tradicional 10 − 20 = −10 20 − 20 = 0 30 − 20 = +10

Matriz de los Cuadrados \((O - E)^2\)

Energía Alta Energía Media Energía Baja
Café de Cápsulas (+10)² = 100 (0)² = 0 (−10)² = 100
Café Tradicional (−10)² = 100 (0)² = 0 (+10)² = 100

Matriz Resultante Final \(\frac{(O - E)^2}{E}\)

Energía Alta Energía Media Energía Baja Total Fila
Café de Cápsulas 100/20 = 5 0/20 = 0 100/20 = 5 10
Café Tradicional 100/20 = 5 0/20 = 0 100/20 = 5 10
TOTAL (∑) 10 0 10 RESULTANTE = 20

Para obtener la resultante final, solo hay que sumar los totales de las filas o de las columnas. El resultado será el mismo, en este caso será 20. Lo que hemos hecho aquí es:

\[\chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]

Ahora hay que calcular los grados de libertad:

\[df = (\text{Filas} - 1) \times (\text{Columnas} - 1)\] \[df = (2 - 1) \times (3 - 1) = 1 \times 2 = \mathbf{2 \text{ grados de libertad}}\]

Al contrastar los resultados con la tabla de la distribución Chi-cuadrado para dos grados de libertad, se observa que nuestra resultante (\(\chi^2 = 20\)) es un valor tan elevado que ni siquiera figura en las tablas estándar. Geométricamente, esto sitúa al estadístico muy a la derecha de la cola del gráfico.Esto implica que la probabilidad de obtener estos datos bajo el supuesto de que la hipótesis nula (que postula la independencia de las variables) sea cierta es prácticamente nula. Por lo tanto, se rechaza la hipótesis nula y se concluye, con un alto nivel de significación estadística, que el tipo de café consumido influye en el nivel de energía.

4 Prueba t de Student

Permite saber si la diferencia entre las medias (promedios) de dos grupos es real o si ha sido fruto de la casualidad (azar).

Queremos saber si el Tipo de café que toma la gente influye en su Productividad medida en una escala de 0 a 100 puntos.

Nuestras variables son:

  • Variable Cualitativa (2 grupos): Café de Cápsulas vs. Café Tradicional.
  • Variable Cuantitativa: Puntuación de Productividad.

Imagina que estos son los datos de productividad (escala 0-100) recopilados para 10 empleados por grupo (\(n_1 = 10\) y \(n_2 = 10\)):

  • Grupo 1 (Cápsulas, \(n_1 = 12\)): \([88, 82, 85, 89, 80, 84, 87, 83, 86, 81, 85, 83]\)
  • Grupo 2 (Tradicional, \(n_2 = 8\)): \([79, 75, 78, 81, 76, 80, 77, 82]\)

Primero necesitamos saber la media (\(\bar{X}\)) y la varianza muestral (\(s^2\)) de cada grupo por separado.

Grupo 1 (Cápsulas)

  • Media (\(\bar{X}_1\)): Suma total / 12 \(\implies \mathbf{84.42}\)
  • Varianza (\(s_1^2\)): \(\sum(X - \bar{X}_1)^2 / (12 - 1) \implies \mathbf{7.36}\)

Grupo 2 (Tradicional)

  • Media (\(\bar{X}_2\)): Suma total / 8 \(\implies \mathbf{78.50}\)
  • Varianza (\(s_2^2\)): \(\sum(X - \bar{X}_2)^2 / (8 - 1) \implies \mathbf{5.14}\)

La diferencia de medias a analizar ahora es de: \(84.42 - 78.50 = \mathbf{5.92}\) puntos.

La fórmula de la prueba \(t\) de Student:

\[t = \frac{\text{Diferencia entre las medias del grupo}}{\text{Variabilidad interna de los datos (Ruido)}}\]

Como \(n_1 (12)\) es mayor que \(n_2 (8)\), la varianza del primer grupo (\(7.36\)) debe tener más peso en el resultado final. La fórmula matemática para ponderar es:

\[s_p^2 = \frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}\]

Sustituimos los valores:

\[s_p^2 = \frac{(12 - 1) \cdot 7.36 + (8 - 1) \cdot 5.14}{12 + 8 - 2}\] \[s_p^2 = \frac{(11 \cdot 7.36) + (7 \cdot 5.14)}{18}\] \[s_p^2 = \frac{80.96 + 35.98}{18} = \frac{116.94}{18} = \mathbf{6.50}\]

Si hubiéramos hecho un promedio simple entre \(7.36\) y \(5.14\), nos habría dado \(6.25\). Al ponderar, el resultado es \(6.50\), arrastrado hacia el \(7.36\) porque el grupo de las cápsulas aporta más empleados al experimento.

La fórmula del denominador se adapta introduciendo los dos tamaños de muestra diferentes:

\[\text{Error Estándar} = \sqrt{s_p^2 \cdot \left(\frac{1}{n_1} + \frac{1}{n_2}\right)}\]

\[\text{Error Estándar} = \sqrt{6.50 \cdot \left(\frac{1}{12} + \frac{1}{8}\right)}\]

\[\text{Error Estándar} = \sqrt{6.50 \cdot (0.0833 + 0.1250)}\]

\[\text{Error Estándar} = \sqrt{6.50 \cdot 0.2083} = \sqrt{1.354} = \mathbf{1.164}\]

\[t = \frac{\bar{X}_1 - \bar{X}_2}{\text{Error Estándar}}\] \[t = \frac{84.42 - 78.50}{1.164} = \frac{5.92}{1.164} = \mathbf{5.09}\]

Nuestra resultante final con muestras desiguales es \(t = 5.09\).

Necesitamos también calcular los grados de libertad:

  • Grupo 1 (Cápsulas): \(n_1 = 12\) | Varianza (\(s_1^2\)) = \(7.36\)
  • Grupo 2 (Tradicional): \(n_2 = 8\) | Varianza (\(s_2^2\)) = \(5.14\)

Forma 1: Asumiendo varianzas iguales (El método directo) \[df = n_1 + n_2 - 2\] \[df = 12 + 8 - 2\] \[\mathbf{df = 18}\]

Forma 2: Asumiendo varianzas distintas (Fórmula de Welch)

\[df = \frac{\left(\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}\right)^2}{\frac{\left(\frac{s_1^2}{n_1}\right)^2}{n_1 - 1} + \frac{\left(\frac{s_2^2}{n_2}\right)^2}{n_2 - 1}}\]

  • Bloque 1: \(\frac{s_1^2}{n_1} = \frac{7.36}{12} = \mathbf{0.6133}\)
  • Bloque 2: \(\frac{s_2^2}{n_2} = \frac{5.14}{8} = \mathbf{0.6425}\)

\[\text{Numerador} = (0.6133 + 0.6425)^2\] \[\text{Numerador} = (1.2558)^2 = \mathbf{1.5770}\]

El denominador nos pide elevar cada bloque al cuadrado, dividirlo entre sus grados de libertad individuales (\(n-1\)), y luego sumarlos:

  • Parte del Grupo 1: \(\frac{(0.6133)^2}{12 - 1} = \frac{0.3761}{11} = \mathbf{0.0342}\)
  • Parte del Grupo 2: \(\frac{(0.6425)^2}{8 - 1} = \frac{0.4128}{7} = \mathbf{0.0590}\)

Ahora sumamos las dos partes para tener el denominador total:

\[\text{Denominador} = 0.0342 + 0.0590 = \mathbf{0.0932}\]

\[df = \frac{1.5770}{0.0932} = \mathbf{16.92}\]

Con los grados de libertad y la valor estadístico “t” podemos ir a la tabla.

Dado que el estadístico muestral obtenido (\(t = 5.09\)) es superior al valor crítico tabulado (\(t_{crit} = 2.101\)) para 18 grados de libertad y un nivel de significación de \(\alpha = 0.05\) de dos colas, existen evidencias estadísticas suficientes para rechazar la hipótesis nula (\(H_0\)). Por lo tanto, se concluye que existen diferencias estadísticamente significativas en la productividad según el tipo de café consumido.

Tipo de Prueba α = 0.10 α = 0.05 α = 0.025 α = 0.01 α = 0.005
Una cola (One-tailed) 1.330 1.734 2.101 2.552 2.878
Dos colas (Two-tailed) 1.734 2.101 2.552 2.878 3.197
Grados de Libertad (gl) 18 18 18 18 18

5 Anova

Cuando la variable cualitativa tiene tres o más grupos, la prueba t de Student deja de ser eficiente. Si intentáramos comparar todos los grupos de dos en dos mediante múltiples pruebas \(t\), cometeríamos un grave error metodológico conocido como inflación del Error Tipo I (aumentar exponencialmente la probabilidad de encontrar un falso positivo por puro azar). Para solucionar este problema y analizar múltiples grupos de forma simultánea, se utiliza ANOVA (Analysis of Variance).

Para descubrir si las medias de los grupos son diferentes, Ronald Fisher (el creador de ANOVA) descubrió que debemos descomponer y comparar la variabilidad total de los datos en dos fuentes independientes:

  • La Varianza Entre Grupos (Variabilidad Inter-grupos): Mide cuánto se separan las medias de cada grupo respecto a la gran media de toda la oficina. Si esta varianza es muy grande, significa que el tipo de bebida realmente está generando una brecha o separación entre los empleados.
  • La Varianza Dentro de los Grupos (Variabilidad Intra-grupos o “Ruido”): Mide cuánto varían los empleados dentro de su propio grupo (las diferencias individuales que no tienen nada que ver con la bebida, sino con el talento o el cansancio de cada persona).

El ANOVA enfrenta estas dos fuerzas en una balanza matemática mediante una división. El resultado de este combate nos da nuestra nueva resultante, llamada el Estadístico \(F\):

\[F = \frac{\text{Varianza Entre los Grupos (El Efecto Real)}}{\text{Varianza Dentro de los Grupos (El Ruido Interno)}}\]

  • Si el valor \(F\) es cercano a 1: Significa que la separación entre los grupos es idéntica al ruido interno de la oficina. Las bebidas no hacen nada especial; todo es fruto del azar.
  • Si el valor \(F\) es significativamente mayor que 1: Significa que el efecto de las bebidas es mucho más potente que el ruido individual. Las medias están realmente separadas.

Al igual que en los test anteriores, si esta resultante \(F\) es lo suficientemente grande como para superar el “muro crítico” de las tablas de Fisher, rechazaremos la hipótesis nula (\(H_0\)) y concluiremos que al menos uno de los grupos de bebidas produce un rendimiento significativamente diferente al resto.

Vamos a simular un estudio en la oficina con 3 grupos de empleados según lo que desayunan (variable cualitativa) y vamos a medir su productividad del día en una escala de 0 a 100 (variable cuantitativa).

Datos de los grupos

  • Grupo 1 (Café, \(n_1=4\)): \([80, 85, 78, 85]\)
  • Grupo 2 (Té, \(n_2=6\)): \([75, 72, 78, 74, 76, 75]\)
  • Grupo 3 (Agua, \(n_3=5\)): \([60, 65, 62, 67, 61]\)

Medias por Grupo

  • Media Grupo 1 (\(\bar{X}_1\)): \(\frac{80+85+78+85}{4} = \frac{328}{4} = \mathbf{82}\)
  • Media Grupo 2 (\(\bar{X}_2\)): \(\frac{75+72+78+74+76+75}{6} = \frac{450}{6} = \mathbf{75}\)
  • Media Grupo 3 (\(\bar{X}_3\)): \(\frac{60+65+62+67+61}{5} = \frac{315}{5} = \mathbf{63}\)

La Gran Media Global (\(\bar{X}_G\))

\[\bar{X}_G = \frac{(4 \cdot 82) + (6 \cdot 75) + (5 \cdot 63)}{15} = \frac{328 + 450 + 315}{15} = \frac{1093}{15} = \mathbf{72.87}\]

Sumas de Cuadrados (\(SS\))

El ANOVA descompone la variabilidad total en dos cajones. Para ello, usa distancias al cuadrado.

  • Cajón A: Suma de Cuadrados ENTRE Grupos (\(SS_{Entre}\))

\[SS_{Entre} = 4 \cdot (82 - 72.87)^2 + 6 \cdot (75 - 72.87)^2 + 5 \cdot (63 - 72.87)^2\] \[SS_{Entre} = 4 \cdot (9.13)^2 + 6 \cdot (2.13)^2 + 5 \cdot (-9.87)^2\] \[SS_{Entre} = 4 \cdot (83.36) + 6 \cdot (4.54) + 5 \cdot (97.42)\] \[SS_{Entre} = 333.44 + 27.24 + 487.10 = \mathbf{847.78}\]

  • Cajón B: Suma de Cuadrados DENTRO (\(SS_{Dentro}\) o Error)

  • Grupo 1 (\(n=4\)): \((80-82)^2 + (85-82)^2 + (78-82)^2 + (85-82)^2 = 4 + 9 + 16 + 9 = \mathbf{38}\)

  • Grupo 2 (\(n=6\)): \((75-75)^2 + (72-75)^2 + (78-75)^2 + (74-75)^2 + (76-75)^2 + (75-75)^2 = 0 + 9 + 9 + 1 + 1 + 0 = \mathbf{20}\)

  • Grupo 3 (\(n=5\)): \((60-63)^2 + (65-63)^2 + (62-63)^2 + (67-63)^2 + (61-63)^2 = 9 + 4 + 1 + 16 + 4 = \mathbf{34}\)

Sumamos el ruido de los tres entornos independientes:

\[SS_{Dentro} = 38 + 20 + 34 = \mathbf{92}\]

Grados de Libertad y Varianzas

  • \(df_{Entre}\): \(3 - 1 = \mathbf{2}\)
  • \(df_{Dentro}\): \(15 - 3 = \mathbf{12}\)

Varianzas

  • Varianza Entre (\(MS_{Entre}\)): \(\frac{847.78}{2} = \mathbf{423.89}\)
  • Varianza Dentro (\(MS_{Dentro}\)): \(\frac{92}{12} = \mathbf{7.67}\)

El Estadístico \(F\) de Fisher Resultante

\[F = \frac{MS_{Entre}}{MS_{Dentro}} = \frac{423.89}{7.67} = \mathbf{55.27}\]

Fuente de Variación Suma de Cuadrados (SS) Grados de Libertad (df) Media Cuadrática (MS) Valor F Calculado
Entre Grupos (Desayuno) 847.78 2 423.89 55.27
Dentro de Grupos (Error) 92.00 12 7.67
Total 939.78 14

Para resolver esto necesitamos la VALORES F DE LA DISTRIBUCIÓN F DE FISHER entonces para 1-a = 0.95 para los grados de libertado 2 y 12 tenemos un valor critico de 3.885 por encima de esto ya se considera muy improbable si la hipotesis neutra es cierta.

Grados de libertad del numerador (\(n_1\)) \(n_1 = 1\) \(n_1 = 2\) \(n_1 = 3\)
\(n_2 = 11\) 4.84 3.98 3.59
\(n_2 = 12\) 4.75 3.89 3.49
\(n_2 = 13\) 4.67 3.81 3.41
import numpy as np
import pandas as pd
import scipy.stats as stats

# 1. Definimos los datos del ejercicio (Muestras desiguales)
grupo_cafe = np.array([80, 85, 78, 85])          # n = 4
grupo_te = np.array([75, 72, 78, 74, 76, 75])    # n = 6
grupo_agua = np.array([60, 65, 62, 67, 61])      # n = 5

# 2. Ejecutamos el ANOVA de un factor (One-way ANOVA)
f_stat, p_value = stats.f_oneway(grupo_cafe, grupo_te, grupo_agua)

# 3. Mostrar los resultados en pantalla
print("=" * 45)
print("       RESULTADOS DEL ANOVA EN PYTHON")
print("=" * 45)
print(f"Estadístico F calculado : {f_stat:.2f}")
print(f"p-valor exacto          : {p_value:.8f}")
print("=" * 45)

# 4. Regla de decisión automatizada
alpha = 0.05
if p_value < alpha:
    print("VERDICTO: Se rechaza la Hipótesis Nula (H0).")
    print("El tipo de desayuno influye significativamente en la productividad.")
else:
    print("VERDICTO: No se puede rechazar la Hipótesis Nula (H0).")
    print("No hay diferencias significativas entre los desayunos.")
print("=" * 45)
=============================================
       RESULTADOS DEL ANOVA EN PYTHON
=============================================
Estadístico F calculado : 55.29
p-valor exacto          : 0.00000088
=============================================
VERDICTO: Se rechaza la Hipótesis Nula (H0).
El tipo de desayuno influye significativamente en la productividad.
=============================================