El bootstrapping en Python es una técnica de remuestreo que te permite dividir una población inicial en múltiples muestras pequeñas para calcular estadísticos sin sesgar los resultados. Sirve para analistas de datos y estudiantes de ciencia de datos que buscan estimaciones más confiables cuando trabajan con conjuntos limitados.
La lógica es simple: tomas una muestra de la muestra, calculas el promedio (u otro estadístico) en cada iteración y luego promedias esos resultados. Así obtienes una estimación robusta y reduces el riesgo de sobreajuste.
¿Qué librerías necesitas para hacer bootstrapping en Python?
Antes de tocar una sola línea de código, necesitas tres aliados: pandas para manipular tablas, numpy para generar números aleatorios y operar con arrays, y random para soportar el muestreo aleatorio [0:30].
python
import pandas as pd
import numpy as np
import random
Con estas librerías cargadas, ya tienes la base para simular una población y aplicar la técnica.
¿Qué es el bootstrapping? Es una técnica estadística de remuestreo donde generas múltiples muestras pequeñas a partir de una muestra original y calculas un estadístico en cada una para obtener una estimación más estable.
¿Cómo simular una población inicial con numpy?
La idea del ejercicio es imaginar una población de 10.000 personas con una edad promedio de 34 años. Para crearla, usas numpy y generas valores aleatorios con esa media y ese tamaño [1:05].
python
data = np.random.normal(loc=34, size=10000)
data.mean()
Al validar el promedio con data.mean() obtienes un valor muy cercano a 34, en el ejemplo fue 33.993, lo que confirma que la población simulada se comporta como esperabas [1:50].
¿Por qué validar el promedio antes de remuestrear?
Validar te asegura que tu población base está bien construida. Si el promedio inicial no se acerca al valor que definiste, cualquier remuestreo posterior arrastraría ese error.
¿Cómo aplicar bootstrapping para calcular el promedio de edades?
Aquí viene lo interesante. Vas a crear 40 muestras de tamaño 5 cada una, calcular el promedio de cada muestra y guardarlo en una lista. Luego promedias esa lista para obtener tu estimación final [2:30].
python
promedio = []
for i in range(40):
muestra = random.sample(list(data), 5)
promedio.append(np.mean(muestra))
np.mean(promedio)
En el ejemplo, el resultado fue 34.02, muy cercano al promedio real de la población [3:40]. Como es un proceso aleatorio, tu valor será distinto, pero debe rondar el mismo rango.
¿Por qué usar muestras pequeñas y múltiples?
Porque el remuestreo busca capturar la variabilidad sin depender de un solo grupo grande. Muestras pequeñas pero numerosas permiten observar cómo se distribuye el estadístico en distintas combinaciones de datos.
¿Para qué sirve el bootstrapping en ciencia de datos? Para estimar parámetros, calcular intervalos de confianza y evitar el overfitting, ya que reduce la dependencia de un único conjunto de datos.
¿Qué problema previene el bootstrapping en ciencia de datos?
El gran enemigo aquí es el overfitting o sobreajuste. Esto ocurre cuando tu estimación se pega demasiado al valor real porque trabajaste con pocos datos que terminan explicando el 100% de la población [4:00].
Al hacer una muestra de la muestra, fuerzas al modelo a validarse contra distintas configuraciones, y eso te da una visión más realista de cómo se comporta la población general.
¿Qué es el overfitting? Es cuando un modelo o estimación se ajusta tan bien a los datos disponibles que pierde capacidad de generalizar. El bootstrapping ayuda a evitarlo al introducir variabilidad mediante remuestreo.
¿Cómo llevar el ejercicio al siguiente nivel?
Prueba estos ajustes para ver cómo cambia tu resultado:
- Aumenta el número de muestras de 40 a 100 o 500.
- Incrementa el size de cada muestra de 5 a 20 o 50.
- Compara el promedio final con el promedio real de la población.
- Repite el experimento varias veces y observa la variación entre corridas.
Con más remuestreos y muestras más grandes, tu estimación se acerca aún más al valor real y la dispersión entre corridas disminuye.
¿Qué resultado obtuviste al ampliar el tamaño de las muestras? Cuéntame en los comentarios cómo cambió tu promedio final.