平均分段時間的線性迴歸
我們假設選手在 800 公尺賽事中會以線性方式逐漸放慢。每一段的減速量就是「平均分段時間」對「分段編號」關係圖的斜率。請執行線性迴歸,估計每段的減速量,並以 pairs bootstrap 計算該減速量的 95% 信賴區間。同時繪出最佳擬合直線。
注意:我們本可為平均分段時間計算誤差棒,並在迴歸分析中納入,但這超出本課程範圍,因此此處不考慮。
本練習屬於課程
統計思維個案研究
練習說明
- 使用
np.polyfit()進行線性迴歸,取得每段的減速量。變數split_number與mean_splits已在命名空間中。請將斜率與截距分別存為slowdown與split_3。 - 使用
dcst.draw_bs_pairs_linreg()計算 10,000 個每段減速量的 pairs bootstrap 重抽樣複本。將結果存為bs_reps。截距的重抽樣複本對本分析不重要,因此可存到臨時變數_。 - 計算每段減速量的 95% 信賴區間。
- 以點狀繪製分段編號(
split_number)對平均分段時間(mean_splits)的散佈圖,並加上最佳擬合直線。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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))