ComenzarEmpieza gratis

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)

Ver curso

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 de 0 a len(x). Estos son los que re-muestrearás y usarás para extraer valores de los arrays x e y.
    • Usa np.empty() para inicializar los arrays de réplicas de la pendiente y el intercepto con tamaño size.
    • Escribe un bucle for para:
      • Re-muestrear los índices inds. Usa np.random.choice() para hacerlo.
      • Crear los nuevos arrays de \(x\) e \(y\), bs_x y bs_y, usando los índices re-muestreados bs_inds. Para ello, haz slicing de x e y con bs_inds.
      • Usar np.polyfit() en los nuevos arrays de \(x\) e \(y\) y guardar la pendiente y el intercepto calculados.
    • Devuelve las réplicas de pairs bootstrap de la pendiente y el intercepto.

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
Editar y ejecutar código