Régression linéaire du temps moyen par relais
Nous supposerons que les nageurs et nageuses ralentissent de façon linéaire au fil de l'épreuve de 800 m. Le ralentissement par relais correspond alors à la pente du graphique du temps moyen par relais en fonction du numéro de relais. Effectuez une régression linéaire pour estimer le ralentissement par relais et calculez un intervalle de confiance bootstrap par paires à 95 % sur ce ralentissement. Présentez aussi un tracé de la droite de meilleure adéquation.
Note : Nous pourrions calculer des barres d'erreur pour les temps moyens par relais et les utiliser dans l'analyse de régression, mais nous ne les prendrons pas en compte ici, car cela dépasse la portée de ce cours.
Cette activité fait partie du cours
Études de cas en pensée statistique
Instructions de l’exercice
- Utilisez
np.polyfit()pour effectuer une régression linéaire et obtenir le ralentissement par relais. Les variablessplit_numberetmean_splitssont déjà dans votre espace de noms. Stockez respectivement la pente et l'ordonnée à l'origine dansslowdownetsplit_3. - Utilisez
dcst.draw_bs_pairs_linreg()pour calculer 10 000 réplicats bootstrap par paires du ralentissement par relais. Stockez le résultat dansbs_reps. Les réplicats bootstrap de l'ordonnée à l'origine ne sont pas pertinents pour cette analyse; vous pouvez donc les stocker dans la variable poubelle_. - Calculez l'intervalle de confiance à 95 % du ralentissement par relais.
- Tracez le numéro de relais (
split_number) en fonction du temps moyen par relais (mean_splits) sous forme de points, ainsi que la droite de meilleure adéquation.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Perform regression
____, ____ = ____
# Compute pairs bootstrap
bs_reps, _ = ____
# Compute confidence interval
conf_int = ____
# Plot the data with regressions line
_ = ____(____, ____, marker='.', linestyle='none')
_ = ____(____, ____ * ____ + ____, '-')
# Label axes and show plot
_ = plt.xlabel('split number')
_ = plt.ylabel('split time (s)')
plt.show()
# Print the slowdown per split
print("""
mean slowdown: {0:.3f} sec./split
95% conf int of mean slowdown: [{1:.3f}, {2:.3f}] sec./split""".format(
slowdown, *conf_int))