Regresión lineal del tiempo medio por parcial
Supondremos que los nadadores se van ralentizando de forma lineal a lo largo de la prueba de 800 m. La desaceleración por parcial es entonces la pendiente de la gráfica del tiempo medio por parcial frente al número de parcial. Realiza una regresión lineal para estimar la desaceleración por parcial y calcula un intervalo de confianza del 95 % mediante pairs bootstrap para esa desaceleración. Muestra también una gráfica con la recta de mejor ajuste.
Nota: Podríamos calcular barras de error para los tiempos medios por parcial y usarlas en el análisis de regresión, pero aquí no las tendremos en cuenta, ya que está fuera del alcance de este curso.
Este ejercicio forma parte del curso
Casos prácticos de pensamiento estadístico
Instrucciones del ejercicio
- Usa
np.polyfit()para realizar una regresión lineal y obtener la desaceleración por parcial. Las variablessplit_numberymean_splitsya están en tu espacio de trabajo. Guarda la pendiente y la intersección respectivamente enslowdownysplit_3. - Usa
dcst.draw_bs_pairs_linreg()para calcular 10.000 réplicas de pairs bootstrap de la desaceleración por parcial. Guarda el resultado enbs_reps. Las réplicas bootstrap de la intersección no son relevantes para este análisis, así que puedes guardarlas en la variable desechable_. - Calcula el intervalo de confianza del 95 % de la desaceleración por parcial.
- Dibuja el número de parcial (
split_number) frente al tiempo medio por parcial (mean_splits) como puntos, junto con la recta de mejor ajuste.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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))