Una función para hacer pairs bootstrap
Como se comenta en el vídeo, el pairs bootstrap consiste en re-muestrear pares de datos. Cada colección de pares se ajusta con una recta, en este caso usando np.polyfit(). Repetimos esto una y otra vez para obtener réplicas bootstrap de los valores de los parámetros. Para contar con una herramienta útil para hacer pairs bootstrap, vas a escribir una función que aplique pairs bootstrap a un conjunto de datos x,y.
Este ejercicio forma parte del curso
Pensamiento estadístico en Python (Parte 2)
Instrucciones del ejercicio
- Define una función con la firma
draw_bs_pairs_linreg(x, y, size=1)para obtener estimaciones de pairs bootstrap de los parámetros de una regresión lineal.- Usa
np.arange()para crear un array de índices que vaya de0alen(x). Estos son los que re-muestrearás y usarás para extraer valores de los arraysxey. - Usa
np.empty()para inicializar los arrays de réplicas de la pendiente y el intercepto con tamañosize. - Escribe un bucle
forpara:- Re-muestrear los índices
inds. Usanp.random.choice()para hacerlo. - Crear los nuevos arrays de \(x\) e \(y\),
bs_xybs_y, usando los índices re-muestreadosbs_inds. Para ello, haz slicing dexeyconbs_inds. - Usar
np.polyfit()en los nuevos arrays de \(x\) e \(y\) y guardar la pendiente y el intercepto calculados.
- Re-muestrear los índices
- Devuelve las réplicas de pairs bootstrap de la pendiente y el intercepto.
- Usa
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
def draw_bs_pairs_linreg(x, y, size=1):
"""Perform pairs bootstrap for linear regression."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_slope_reps, bs_intercept_reps
bs_slope_reps = ____
bs_intercept_reps = ____
# Generate replicates
for i in range(size):
bs_inds = np.random.choice(____, size=____)
bs_x, bs_y = x[____], y[____]
bs_slope_reps[i], bs_intercept_reps[i] = ____
return bs_slope_reps, bs_intercept_reps