Introducción al análisis de inferencia con BootStraps en Python
El análisis de inferencia bootstrapping podría ser para usted si maneja muestras de datos grandes y representativas .
El mes pasado, mi jefe preguntó: ¿podríamos encontrar la media real de vistas de video de Instagram Reels para las marcas TOP en América del Norte?
Me equivocaría si le informara las reproducciones de video promedio de una sola muestra de Reels. Para resolver estos problemas, necesitamos pensar probabilísticamente...
Bootstraps al rescate! Esta técnica crea un número finito de muestras; calcula una estadística de resumen (como la media) para cada muestra; y encuentra un intervalo para la solución. En el pasado, obtener 10 000 muestras parecía una tarea imposible, pero con Python podemos abrirnos camino.
Aparte de los intervalos de confianza , podemos usar Bootstraps para ejecutar pruebas de significación . Esta publicación trata sobre la comprensión de bootstraps y la generación de intervalos de confianza.
¿Por qué Bootstrapping?
Si su jefe le pregunta por qué Bootstrap, dígale esto:
- Esta es una técnica no paramétrica , lo que significa que no asume una distribución subyacente
- No necesitamos lidiar con la normalidad de los datos o una variación similar
¿Qué es un Bootstrap?
“Bootstrapping es el uso de datos remuestreados, con reemplazo, para realizar inferencias estadísticas”
Un ejemplo rápido de Python explicaría mejor el concepto que yo:
import numpy as np
reel_views = [191, 145]
bootstrapped_video_views = np.random.choice(
reel_views
, size=len(reel_views)
)
print(f`the first sample: {bootstrapped_video_views}`)
--> the first sample: [191, 191]
print(f`the second sample: {bootstrapped_video_views}`)
--> the second sample: [145, 145]
print(f`the third sample: {bootstrapped_video_views}`)
--> the third sample: [191, 145]
¿Cómo generar intervalos de confianza de arranque?
Podemos estimar la incertidumbre con Bootstraps utilizando intervalos de confianza. La idea es encontrar el intervalo para la estadística de resumen ( la media ) que contiene la verdadera media de la muestra de población.
Creamos una réplica de arranque volviendo a muestrear nuestros datos (vistas de video) y calculando la estadística de resumen de interés (las vistas de video promedio) . El siguiente código se lee así:
- Crea una nueva muestra seleccionando aleatoriamente con reemplazo de nuestros datos
- Calcula la estadística de resumen ( la media ) de esta nueva muestra y la almacena. Esto se llama una réplica de arranque
- Repite los pasos 1 y 2 un número finito de veces (10.000 es el estándar)
- Calcula los percentiles 2,5 y 97,5 de las 10.000 estadísticas resumidas almacenadas
def draw_bs_reps(data: list, func: Callable, size: int = 10000) -> np.array:
"""
Draw bootstrap replicates. Generate n 1d bootstrap replicates. Typical size = 5 - 10K repetitions
"""
rng = np.random.default_rng(seed=42)
bs_sample = rng.choice(data, size=(size, len(data)))
bs_replicates = np.apply_along_axis(func, arr=bs_sample, axis=1)
return bs_replicates
reel_views = [191, 145, 198, 192, 1022, ...] # Big Representative Sample
bootstrap_replicates = draw_bs_reps(reel_views, np.mean)
conf_int = np.percentile(bootstrap_replicates, [2.5, 97.5])
print(f'95% Confidence Interval: {conf_int}')
--> `95% Confidence Interval: [137.9, 150.3]`
Trazar sus resultados nunca está de más. Al dibujar réplicas de arranque, podemos dibujar ECDF, diagramas de KDE o histogramas. Para mí, los gráficos ECDF y KDE son superiores a los histogramas, ya que trazan todos los puntos de datos sin necesidad de agruparlos. A continuación se muestra el KDE que traza todas las 10 000 réplicas de arranque:
El 95% de las réplicas medias de arranque están dentro de las líneas moradas.
Si termina con un intervalo amplio, recuerde que aumentar el número de réplicas de arranque (por ejemplo, 20 000) no lo reducirá. Si desea un intervalo más estrecho, su única opción es recopilar una muestra de datos más grande.
Bootstraps son increíbles, pero la única forma de disminuir el efecto de los valores atípicos y producir un intervalo más estrecho es recopilar una muestra de datos más grande
comida para llevar
- Los intervalos de confianza de bootstrapping nos ayudan a estimar la incertidumbre
- Para usar esta técnica necesitamos una muestra grande y representativa
- Bootstraps no puede exprimir mágicamente más datos en una muestra
- Para producir intervalos más ajustados, necesitamos aumentar el tamaño de nuestra muestra

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































