Aprendiendo Bootstraping con Python
En el artículo anterior, exploramos los fundamentos teóricos del método de bootstraping y cómo se puede aplicar para obtener estimaciones más precisas de estadísticas poblacionales. En este artículo, daremos un paso adelante y nos sumergiremos en ejemplos prácticos de cómo realizar bootstraping utilizando Python. Utilizaremos bibliotecas populares de Python como NumPy y Matplotlib para llevar a cabo nuestros análisis y visualizaciones.
Requisitos Previos
Antes de comenzar, asegúrate de tener Python instalado en tu sistema. También será útil tener instaladas las bibliotecas NumPy y Matplotlib para realizar cálculos y visualizaciones. Si aún no las tienes instaladas, puedes hacerlo con pip:
pip install numpy matplotlib
Ejemplo 1: Bootstraping para la Mediana
Supongamos que estamos trabajando con un conjunto de datos que representa las calificaciones de un examen en una escuela. Queremos estimar la mediana de estas calificaciones y calcular un intervalo de confianza del 95% para la mediana utilizando bootstraping. Aquí tienes un ejemplo de cómo hacerlo en Python:
import numpy as np # Datos de calificaciones del examen (población) grades = np.array([78, 85, 92, 88, 76, 90, 89, 83, 87, 94, 81, 79, 82, 91, 84]) # Número de repeticiones para bootstraping n_bootstrap_samples = 10000 # Almacenaremos las medianas de cada muestra bootstrap bootstrap_medians = [] for _ in range(n_bootstrap_samples): # Genera una muestra bootstrap aleatoria con reemplazo bootstrap_sample = np.random.choice(grades, size=len(grades), replace=True) # Calcula la mediana de la muestra bootstrap y guárdala median = np.median(bootstrap_sample) bootstrap_medians.append(median) # Calcula el intervalo de confianza del 95% confidence_interval = np.percentile(bootstrap_medians, [2.5, 97.5]) print("Mediana de la población:", np.median(grades)) print("Intervalo de confianza del 95% para la mediana:", confidence_interval)
En este ejemplo, generamos 10,000 muestras bootstrap aleatorias con reemplazo a partir de los datos de calificaciones del examen y calculamos la mediana de cada muestra bootstrap. Luego, utilizando percentiles, calculamos el intervalo de confianza del 95% para la mediana de las calificaciones. Este intervalo nos proporciona una estimación de la variabilidad de la mediana y nos ayuda a entender cuán confiados podemos estar en nuestra estimación.
Ejemplo 2: Bootstraping para la Media
En lugar de estimar la mediana, podríamos estar interesados en estimar la media de un conjunto de datos. Aquí tienes un ejemplo similar al anterior, pero esta vez calcularemos el intervalo de confianza del 95% para la media de las calificaciones del examen:
# Número de repeticiones para bootstraping n_bootstrap_samples = 10000 # Almacenaremos las medias de cada muestra bootstrap bootstrap_means = [] for _ in range(n_bootstrap_samples): # Genera una muestra bootstrap aleatoria con reemplazo bootstrap_sample = np.random.choice(grades, size=len(grades), replace=True) # Calcula la media de la muestra bootstrap y guárdala mean = np.mean(bootstrap_sample) bootstrap_means.append(mean) # Calcula el intervalo de confianza del 95% confidence_interval = np.percentile(bootstrap_means, [2.5, 97.5]) print("Media de la población:", np.mean(grades)) print("Intervalo de confianza del 95% para la media:", confidence_interval)
Este ejemplo es bastante similar al anterior, pero estamos calculando la media en lugar de la mediana. El proceso general es el mismo: generamos muestras bootstrap, calculamos la estadística de interés (en este caso, la media), y luego estimamos el intervalo de confianza.
Ejemplo 3: Bootstraping para la Proporción
Supongamos que estamos realizando una encuesta sobre la preferencia de colores en una población y queremos estimar la proporción de personas que prefieren el color azul. Aquí tienes un ejemplo de cómo aplicar bootstraping para estimar la proporción y calcular un intervalo de confianza:
# Datos de preferencia de colores (1 para azul, 0 para otro color) preferences = np.array([1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1]) # Número de repeticiones para bootstraping n_bootstrap_samples = 10000 # Almacenaremos las proporciones de preferencia de azul de cada muestra bootstrap bootstrap_proportions = [] for _ in range(n_bootstrap_samples): # Genera una muestra bootstrap aleatoria con reemplazo bootstrap_sample = np.random.choice(preferences, size=len(preferences), replace=True) # Calcula la proporción de preferencia de azul en la muestra bootstrap y guárdala proportion = np.mean(bootstrap_sample) bootstrap_proportions.append(proportion) # Calcula el intervalo de confianza del 95% confidence_interval = np.percentile(bootstrap_proportions, [2.5, 97.5]) print("Proporción real de preferencia de azul:", np.mean(preferences)) print("Intervalo de confianza del 95% para la proporción de preferencia de azul:", confidence_interval)
Conclusión
El método de bootstraping es una herramienta poderosa que permite realizar estimaciones estadísticas y calcular intervalos de confianza sin hacer suposiciones sobre la distribución de los datos. En este artículo, hemos explorado ejemplos prácticos de cómo aplicar bootstraping para estimar la mediana, la media y la proporción de una población utilizando Python.
Estos ejemplos ilustran cómo el bootstraping puede ser una técnica valiosa en la caja de herramientas de un científico de datos para tomar decisiones basadas en datos con mayor confianza. En el próximo artículo de la serie, nos sumergiremos en aplicaciones más avanzadas de bootstraping y cómo se puede utilizar en problemas del mundo.