Aprendiendo Bootstraping con Python

Nov 7, 2023 | Estadística, Python | 0 Comentarios

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.

También te puede interesar:

Diferencias entre inferencia y predicción

Entiende las diferencias entre inferencia y predicción, dos conceptos de la estadística y el machine learning que pueden resultar confusos.

5 trucos para Jupyter Notebook que no debes perderte

Descubre 5 trucos para Jupyter Notebook no tan conocidos que te ayudarán familiarizarte más con esta herramienta y ser más eficiente.

Entiende de una vez que son los grados de libertad en estadística

Aprende el concepto grados de libertad en estadística de manera intuitiva y con ayuda de ejemplos prácticos

Extracción de datos de sitios web con Scrapy (I): recopilando información de productos de Zara

En este tutorial explicamos como extraer con Scrapy los datos de la web de Zara de forma automatizada para finalmente almacenarlos en MongoDB.

Otros 5 trucos de Jupyter Notebook que probablemente desconozcas

En este artículo se explican 5 nuevos trucos para Jupyter Notebook que probablemente desconozcas y que mejorarán vuestra productividad.

Extracción de datos de sitios web con Scrapy (II): rastreando todas las URLs del sitio web de Zara

En este post construimos un rastreador con Scrapy que extrae los datos de manera recursiva todas las URLs del sitio web de Zara.

Extracción de datos de Twitter con Python (sin consumir la API)

En esta publicación os enseñaremos como poder extraer datos de Twitter en Python mediante la librería Twint. De esta forma, podremos obtener facilmente los últimos tweets que contengan cierta palabra o que pertenezcan a un determinado usuario y aplicar varios filtros.

Aplicación de la Distribución t de Student en Python: Ejemplos prácticos

Distribución t en Python: Aprende cómo aplicar la Distribución t en Python con ejemplos para pruebas de hipótesis e intervalos de confianza.

Bootstraping: Estimación y confianza estadística

Descubre el poder del bootstraping, una técnica que te permite estimar parámetros y ganar confianza en tus resultados estadísticos.

Dominando Apache Spark (VI): Diferentes tipos de Joins en DataFrames con ejemplos en PySpark

Descubre los secretos de los joins en DataFrames con Spark en este artículo. Aprende a utilizar diferentes tipos de joins en PySpark con ejemplos detallados para perfeccionar tus habilidades de procesamiento de datos.

Ads Blocker Image Powered by Code Help Pro

Por favor, permite que se muestren anuncios en nuestro sitio web

Querido lector,

Esperamos que estés disfrutando de nuestro contenido. Entendemos la importancia de la experiencia sin interrupciones, pero también queremos asegurarnos de que podamos seguir brindándote contenido de alta calidad de forma gratuita. Desactivar tu bloqueador de anuncios en nuestro sitio nos ayuda enormemente a lograrlo.

¡Gracias por tu comprensión y apoyo!