การถดถอยเชิงเส้นของเวลา split เฉลี่ย
สมมติว่านักว่ายน้ำว่ายช้าลงในลักษณะเชิงเส้นตลอดการแข่งขันระยะ 800 เมตร ดังนั้นอัตราการช้าลงต่อ split จะเป็นความชันของกราฟระหว่างเวลา split เฉลี่ยกับหมายเลข split ให้ทำการถดถอยเชิงเส้นเพื่อประมาณค่าอัตราการช้าลงต่อ split และคำนวณช่วงความเชื่อมั่น 95% แบบ pairs bootstrap นอกจากนี้ให้แสดงกราฟของเส้นที่พอดีที่สุดด้วย
หมายเหตุ: สามารถคำนวณ error bar สำหรับเวลา split เฉลี่ยและนำไปใช้ในการวิเคราะห์การถดถอยได้ แต่เราจะไม่นำมาพิจารณาในที่นี้ เนื่องจากอยู่นอกเหนือขอบเขตของคอร์สนี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
กรณีศึกษาด้านการคิดเชิงสถิติ
คำแนะนำการฝึกหัด
- ใช้
np.polyfit()เพื่อทำการถดถอยเชิงเส้นและหาค่าอัตราการช้าลงต่อ split โดยตัวแปรsplit_numberและmean_splitsมีอยู่ใน namespace แล้ว เก็บค่าความชันและค่าตัดแกนไว้ในslowdownและsplit_3ตามลำดับ - ใช้
dcst.draw_bs_pairs_linreg()เพื่อคำนวณ pairs bootstrap replicate จำนวน 10,000 ครั้งของอัตราการช้าลงต่อ split เก็บผลลัพธ์ไว้ในbs_repsส่วน bootstrap replicate ของค่าตัดแกนไม่จำเป็นสำหรับการวิเคราะห์นี้ จึงเก็บไว้ในตัวแปรทิ้ง_ได้ - คำนวณช่วงความเชื่อมั่น 95% ของอัตราการช้าลงต่อ split
- พล็อตกราฟระหว่างหมายเลข split (
split_number) กับเวลา split เฉลี่ย (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))