Regressão linear do tempo médio por parcial
Vamos supor que os nadadores diminuem o ritmo de forma linear ao longo da prova de 800 m. A desaceleração por parcial é então a inclinação do gráfico do tempo médio por parcial em função do número da parcial. Faça uma regressão linear para estimar a desaceleração por parcial e calcule um intervalo de confiança de 95% com pairs bootstrap para a desaceleração. Também mostre um gráfico com a linha de melhor ajuste.
Observação: Podemos calcular barras de erro para os tempos médios por parcial e usá-las na análise de regressão, mas não vamos considerá-las aqui, pois isso está além do escopo deste curso.
Este exercício faz parte do curso
Estudos de caso em pensamento estatístico
Instruções do exercício
- Use
np.polyfit()para realizar uma regressão linear e obter a desaceleração por parcial. As variáveissplit_numberemean_splitsjá estão no seu ambiente. Guarde o coeficiente angular (slope) e o intercepto, respectivamente, emslowdownesplit_3. - Use
dcst.draw_bs_pairs_linreg()para calcular 10.000 réplicas de pairs bootstrap da desaceleração por parcial. Guarde o resultado embs_reps. As réplicas bootstrap do intercepto não são relevantes para esta análise, então você pode armazená-las na variável descartável_. - Calcule o intervalo de confiança de 95% da desaceleração por parcial.
- Plote o número da parcial (
split_number) versus o tempo médio por parcial (mean_splits) como pontos, junto com a linha de melhor ajuste.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))