เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การประมาณค่าความเร็วและช่วงความเชื่อมั่น

มาต่อกันที่ข้อมูลการเดินป่าในอุทยานแห่งชาติ สังเกตว่าบางค่าระยะทางติดลบ เนื่องจากนักเดินป่าเดินย้อนทิศทางจากจุดเริ่มต้นของเส้นทาง ข้อมูลชุดนี้มีความไม่สมบูรณ์อยู่บ้าง ดังนั้นเราจะมุ่งเน้นไปที่แนวโน้มโดยรวมเป็นหลัก

ในแบบฝึกหัดนี้ เป้าหมายคือใช้ bootstrap resampling เพื่อหาการกระจายตัวของค่าความเร็วจากโมเดลเชิงเส้น จากนั้นนำการกระจายตัวนั้นมาคำนวณค่าประมาณที่ดีที่สุดของความเร็ว และช่วงความเชื่อมั่น 90% ของค่าประมาณนั้น ความเร็วในที่นี้คือพารามิเตอร์ความชัน (slope) จากโมเดล linear regression ที่ใช้ fit ระยะทางเป็นฟังก์ชันของเวลา

เพื่อให้เริ่มต้นได้สะดวก เราได้โหลดข้อมูล distance และ time ไว้ล่วงหน้า พร้อมกับฟังก์ชัน least_squares() ที่กำหนดไว้แล้วสำหรับคำนวณค่าความเร็วในแต่ละ resample

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Linear Modeling in Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ np.random.choice() เพื่อสุ่ม sample_inds จาก population_inds โดยคงการจับคู่ระหว่างระยะทางและเวลาของแต่ละจุดข้อมูลไว้
  • เพื่อรักษาลำดับตามเวลา ให้ .sort() กับ sample_inds จากนั้นใช้ sample_inds เป็น index สำหรับ distances และ times
  • ใช้ least_squares(times, distances) เพื่อคำนวณพารามิเตอร์ของโมเดลเชิงเส้น และเก็บค่า a1 ไว้ใน resample_speeds
  • นำ np.mean() และ np.percentiles() มาใช้กับ resample_speeds เพื่อคำนวณค่าความเร็วและช่วงความเชื่อมั่น ci_90 แล้วพิมพ์ผลลัพธ์ทั้งสองค่า

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Resample each preloaded population, and compute speed distribution
population_inds = np.arange(0, 99, dtype=int)
for nr in range(num_resamples):
    sample_inds = np.random.choice(____, size=100, replace=True)
    sample_inds.____()
    sample_distances = distances[____]
    sample_times = times[____]
    a0, a1 = ____(sample_times, sample_distances)
    resample_speeds[nr] = ____

# Compute effect size and confidence interval, and print
speed_estimate = np.mean(____)
ci_90 = np.percentile(____, [5, 95])
print('Speed Estimate = {:0.2f}, 90% Confidence Interval: {:0.2f}, {:0.2f} '.format(____, ____[0], ____[1]))
แก้ไขและรันโค้ด