Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Pruebas de Hipótesis

En toda prueba de hipótesis, implícita o explícitamente se cubren los siguientes puntos:

1. Planteamiento de las hipótesis

  • Hipótesis nula (H0 H_0 ): Afirmación que se quiere poner a prueba; generalmente representa la ausencia de efecto, diferencia o relación.

  • Hipótesis alternativa (H1 H_1 o Ha H_a ): Afirmación que se aceptaría si se rechaza H0 H_0 ; representa la existencia de un efecto, diferencia o relación.

2. Elección del nivel de significancia (α \alpha )

  • Es la probabilidad máxima de cometer un error tipo I (rechazar H0 H_0 cuando es verdadera).

  • Comúnmente se usa α=0.05 \alpha = 0.05 , aunque puede variar según el contexto (por ejemplo, α=0.01 \alpha = 0.01 en estudios médicos).

3. Selección del estadístico de prueba

Depende del tipo de variable y del contraste planteado:

  • t t -student para medias (cuando la varianza poblacional es desconocida).

  • z z para proporciones o medias (cuando la varianza es conocida).

  • χ2 \chi^2 para variables categóricas (pruebas de independencia o bondad de ajuste).

  • F F para comparar varianzas o modelos (ANOVA, regresión).

4. Distribución del estadístico bajo H0 H_0

  • Determina cómo se comporta el estadístico si la hipótesis nula es verdadera.

  • Se utiliza para obtener el valor crítico o el p-valor.

5. Criterio de decisión

  • Valor crítico: Se compara el estadístico con un umbral derivado de la distribución teórica.

  • P-valor: Probabilidad de obtener un resultado tan extremo como el observado, bajo H0 H_0 .

    • Si p-valor<α \text{p-valor} < \alpha , se rechaza H0 H_0 .

    • Si p-valorα \text{p-valor} \geq \alpha , no se rechaza H0H_0 .

6. Conclusión

  • La conclusión debe estar formulada en el contexto del problema.

  • Nunca se dice que H0 H_0 es “verdadera”, sino que no hay suficiente evidencia para rechazarla.

7. Errores posibles

  • Error tipo I (α \alpha ): Rechazar H0 H_0 siendo verdadera.

  • Error tipo II (β \beta ): No rechazar H0 H_0 siendo falsa.

  • Poder de la prueba: 1β 1 - \beta , probabilidad de detectar un efecto si realmente existe.

Matriz de confusión adaptada a pruebas de hipótesis

Realidad: H0 H_0 verdaderaRealidad: H0 H_0 falsa
Decisión: No rechazar H0 H_0 Verdadero negativo (decisión correcta)Error tipo II (falso negativo)
Decisión: Rechazar H0 H_0 Error tipo I (falso positivo)Verdadero positivo (decisión correcta)

Interpretación de cada celda

TérminoSignificado
Error tipo IRechazar H0 H_0 cuando en realidad es cierta.
Error tipo IINo rechazar H0 H_0 cuando en realidad es falsa.
Verdadero negativoDecidir no rechazar H0 H_0 y que efectivamente H0H_0 sea verdadera.
Verdadero positivoRechazar H0 H_0 y que efectivamente H0 H_0 sea falsa.

Probabilidades asociadas

ConceptoSímboloDefinición
Nivel de significanciaα \alpha Probabilidad de cometer un error tipo I.
Poder de la prueba1β1 - \beta Probabilidad de rechazar H0 H_0 cuando H0 H_0 es falsa (acierto).
Error tipo IIβ \beta Probabilidad de no rechazar H0H_0 cuando es falsa.

Conexión con la matriz de confusión en clasificación

Realidad / PredicciónClase negativa (0)Clase positiva (1)
Verdadero negativoPredijo 0, era 0
Falso positivoPredijo 1, era 0(Error tipo I)
Falso negativoPredijo 0, era 1(Error tipo II)
Verdadero positivoPredijo 1, era 1

En pruebas de hipótesis:

  • La “predicción” corresponde a la decisión estadística (rechazar o no rechazar H0 H_0 ).

  • La “realidad” corresponde al estado verdadero de H0 H_0 (si es verdadera o falsa).

Los elementos a considerar en una prueba de hipótesis son:

ElementoDescripción breve
Hipótesis H0 H_0 , Ha H_a Planteamiento formal del contraste
Nivel de significanciaUmbral de decisión (α \alpha )
Estadístico de pruebaValor numérico basado en la muestra
Distribución bajo H0 H_0 Base para calcular el p-valor o valor crítico
Regla de decisiónComparación entre estadístico/p-valor y α \alpha
ConclusiónAceptar o rechazar H0 H_0 , con interpretación contextual
Análisis de erroresConsideración de errores tipo I, tipo II y poder estadístico

Test sobre una y dos muestras

Se introducen dos funciones: stats.ttest_1samp y stats.wilcoxon para el test t y el test de Wilcoxon respectivamente. Ambos pueden ser usados para una muestra o dos muestras así como para datos pareados. Note que el test de Wilcoxon para dos muestras es lo mismo que el test de Mann–Whitney.

El test t

Este test se basa en el supuesto de normalidad de los datos. Es decir que los datos x1,xnx_1\ldots,x_n se asumen como realizaciones independientes de variables aleatorias con media μ\mu y varianza σ2\sigma^2, N(μ,σ2)N(\mu, \sigma^2). Se tiene que la hipótesis nula es que μ=μ0\mu=\mu_0.

Se puede estimar los parámetros μ\mu y σ\sigma por la media xˉ\bar{x} y la desviación estándar σ\sigma, aunque recuerde que solo son estimaciones del valor real.

Veamos un ejemplo del consuo diario de calorías de 11 mujeres:

daily_intake = [5260,5470,5640,6180,6390,6515,
                  6805,7515,7515,8230,8770]

Veamos algunas estadísticas de resumen:

from scipy import stats
import numpy as np
stats.describe(daily_intake)
DescribeResult(nobs=11, minmax=(5260, 8770), mean=6753.636363636364, variance=1304445.4545454548, skewness=0.3674679616524392, kurtosis=-0.9757942883536157)

Se podría querer saber si el consumo de energía de las mujeres se desvía de una valor recomendado de 7725. Asumiendo que los datos vienen de una distribución normal, el objetivo es hacer una prueba para saber si la media de la distribución es μ=7725\mu = 7725.

stats.ttest_1samp(daily_intake,7725)
TtestResult(statistic=-2.8207540608310193, pvalue=0.018137235176105812, df=10)
t, pval = stats.ttest_1samp(daily_intake,7725)
t
-2.8207540608310193
pval
0.018137235176105812

Wilcoxon

(rank, pVal) = stats.wilcoxon(x=(np.array(daily_intake)-7725))
(rank, pVal)
(8.0, 0.0244140625)

Para efectos prácticos, cuando se trata de una muestra, el test t y el de Wilcoxon suelen arrojar resultados muy similares.

Test t para dos muestras

Se usa esta prueba con la hipótesis nula de que dos muestras provengan de distribuciones normales con la misma media.

Se puede tener dos enfoques, que las muestras tengan la misma varianza (enfoque clásico) o difieran en varianza.

import numpy as np
from scipy import stats
import pandas as pd
uu = "https://raw.githubusercontent.com/vmoprojs/DataLectures/master/energy.csv"
energy = pd.read_csv(uu)
energy.head()
Loading...
g1 = energy[energy.stature=='obese'].expend.values
g2 = energy[energy.stature=='lean'].expend.values
stats.ttest_ind(g2,g1,equal_var=False)
TtestResult(statistic=-3.855503558973697, pvalue=0.0014106918447179043, df=15.91873619676766)
stats.ttest_ind(g2,g1,equal_var=True)
TtestResult(statistic=-3.9455649161549835, pvalue=0.0007989982111700593, df=20.0)

Comparación de varianzas

Aún cuando en python se puede hacer la prueba sobre dos muestras sin el supuesto de igualdad en las varianzas, podrías estar interesado en hacer una prueba exclusiva de este supuesto.

import statistics 
F = statistics.variance(g2)/statistics.variance(g1)
df1 = len(g1) - 1
df2 = len(g2) - 1
alpha = 0.05 
p_value = stats.f.cdf(F, df2, df1)
(F,p_value*2)
(0.7844459792357035, 0.6797459853760682)

Test de Wilcoxon para dos muestras

u_statistic, pVal = stats.mannwhitneyu(g1, g2)
(u_statistic, pVal*2)
(105.0, 0.004243226771760098)

KS Test

Compara la distribución subyacente de dos muestras independientes F(x)F(x) y G(x)G(x). Es válidas solo para distribuciones continuas.

stats.kstest(g1,g2)
KstestResult(statistic=0.8461538461538461, pvalue=0.00026536930561698365, statistic_location=8.4, statistic_sign=-1)
stats.kstest(g1,stats.norm.cdf)
KstestResult(statistic=1.0, pvalue=0.0, statistic_location=8.79, statistic_sign=-1)
stats.kstest(g2,stats.norm.cdf)
KstestResult(statistic=0.9999999995606046, pvalue=4.5514700442308465e-122, statistic_location=6.13, statistic_sign=-1)

Correlación

Se aborda a continuación medidas de correlación paramétricas y no paramétricas. El coeficiente de correlación es una medida de asociación que varía entre -1 y 1.

Correlación de Pearson

El coeficiente de correlación empírico es:

r=(xixˉ)(yiyˉ)(xixˉ)2(yiyˉ)2r = \frac{\sum (x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum (x_i-\bar{x})^2\sum (y_i-\bar{y})^2}}

La función cor en python calcula la correlación entre dos o más vectores.

uu = "https://raw.githubusercontent.com/vmoprojs/DataLectures/master/company_sales_data.csv"
import pandas as pd
datos = pd.read_csv(uu)
datos
Loading...
datos.plot('shampoo','bathingsoap',kind = 'scatter')
<Axes: xlabel='shampoo', ylabel='bathingsoap'>
<Figure size 640x480 with 1 Axes>
np.corrcoef(datos.shampoo,datos.bathingsoap)
array([[1. , 0.13756757], [0.13756757, 1. ]])
stats.pearsonr(datos.shampoo,datos.bathingsoap) # devuelve la correlacion y el p-valor
(0.1375675688230804, 0.669853167345746)
stats.spearmanr(datos.shampoo,datos.bathingsoap)   # Spearman's rho
SpearmanrResult(correlation=0.2907184843604137, pvalue=0.35929281767147814)
stats.kendalltau(datos.shampoo,datos.bathingsoap)  # Kendall's tau
KendalltauResult(correlation=0.10687334289668038, pvalue=0.6304167324095719)

Interpretación de la correlación:

  • La correlación esta siempre entre -1 y 1. Lo primero que se interpreta es el signo

  • Directamente proporcional si es positivo, si es negativo pasa lo contrario

  • En segundo lugar se interpreta es la fuerza de la relación. Si esta más cerca de 1, significa que si aumenta una variable, la otra también.

  • Números intermedios, reducen la fuerza de la relación.