CommencerCommencer gratuitement

Une fonction pour effectuer un bootstrap par paires

Comme expliqué dans la vidéo, le bootstrap par paires consiste à rééchantillonner des paires de données. Chaque ensemble de paires est ajusté avec une droite, ici à l’aide de np.polyfit(). On répète l’opération pour obtenir des répliques bootstrap des valeurs des paramètres. Pour disposer d’un outil pratique de bootstrap par paires, vous allez écrire une fonction qui l’applique à un jeu de données x,y.

Cet exercice fait partie du cours

Réflexion statistique en Python (Partie 2)

Afficher le cours

Instructions

  • Définissez une fonction avec la signature d’appel draw_bs_pairs_linreg(x, y, size=1) pour estimer par bootstrap par paires les paramètres d’une régression linéaire.
    • Utilisez np.arange() pour créer un tableau d’indices allant de 0 à len(x). Ce sont eux que vous allez rééchantillonner et utiliser pour sélectionner des valeurs dans les tableaux x et y.
    • Utilisez np.empty() pour initialiser les tableaux de répliques de la pente et de l’ordonnée à l’origine avec une taille size.
    • Écrivez une boucle for pour :
      • Rééchantillonner les indices inds. Utilisez np.random.choice() pour cela.
      • Créer les nouveaux tableaux \(x\) et \(y\), bs_x et bs_y, à partir des indices rééchantillonnés bs_inds. Pour ce faire, découpez x et y avec bs_inds.
      • Utiliser np.polyfit() sur les nouveaux tableaux \(x\) et \(y\) et stocker la pente et l’ordonnée à l’origine calculées.
    • Retournez les répliques bootstrap par paires de la pente et de l’ordonnée à l’origine.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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
Modifier et exécuter le code