開始使用免費開始

平均分段時間的線性迴歸

我們假設選手在 800 公尺賽事中會以線性方式逐漸放慢。每一段的減速量就是「平均分段時間」對「分段編號」關係圖的斜率。請執行線性迴歸,估計每段的減速量,並以 pairs bootstrap 計算該減速量的 95% 信賴區間。同時繪出最佳擬合直線。

注意:我們本可為平均分段時間計算誤差棒,並在迴歸分析中納入,但這超出本課程範圍,因此此處不考慮。

本練習屬於課程

統計思維個案研究

檢視課程

練習說明

  • 使用 np.polyfit() 進行線性迴歸,取得每段的減速量。變數 split_numbermean_splits 已在命名空間中。請將斜率與截距分別存為 slowdownsplit_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))
編輯並執行程式碼