Corrélation entre les données des descendants et des parents
Afin de quantifier la corrélation entre la profondeur du bec des descendants et celle des parents, nous souhaitons calculer des statistiques, comme le coefficient de corrélation de Pearson, entre parents et descendants. Pour obtenir des intervalles de confiance, nous devons utiliser un bootstrap par paires.
Vous avez déjà écrit une fonction de bootstrap par paires pour estimer des paramètres issus d’une régression linéaire. Votre tâche dans cet exercice est d’écrire une nouvelle fonction avec la signature d’appel draw_bs_pairs(x, y, func, size=1) qui effectue un bootstrap par paires et calcule une statistique unique sur des échantillons par paires définis. La statistique d’intérêt est calculée en appelant func(bs_x, bs_y). Dans le prochain exercice, vous utiliserez pearson_r pour func.
Cet exercice fait partie du cours
Réflexion statistique en Python (Partie 2)
Instructions
- Préparez un tableau d’indices à échantillonner. (Rappelez-vous que pour le bootstrap par paires, on choisit aléatoirement des indices que l’on utilise pour former les paires.)
- Initialisez le tableau des répliques bootstrap. Il doit s’agir d’un tableau unidimensionnel de longueur
size. - Écrivez une boucle
forpour tirer les échantillons. - Choisissez aléatoirement des indices à partir du tableau d’indices que vous avez préparé.
- Extrayez les valeurs
xetydes tableaux d’entrée en utilisant les indices que vous venez de choisir afin de générer un échantillon bootstrap. - Utilisez
funcpour calculer la statistique d’intérêt à partir des échantillons bootstrap dexety, puis stockez-la dans votre tableau de répliques bootstrap. - Renvoyez le tableau des répliques bootstrap.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def draw_bs_pairs(x, y, func, size=1):
"""Perform pairs bootstrap for a single statistic."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_replicates
bs_replicates = ____
# Generate replicates
for i in range(size):
bs_inds = ____
bs_x, bs_y = ____
bs_replicates[i] = ____
return bs_replicates