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

Bootstrap Replicates ของค่าเฉลี่ยและ SEM

ในแบบฝึกหัดนี้ จะคำนวณค่าประมาณ bootstrap ของฟังก์ชันความหนาแน่นความน่าจะเป็น (PDF) ของค่าเฉลี่ยปริมาณฝนรายปีที่สถานีอุตุนิยมวิทยา Sheffield โดยเป็นการประมาณว่า หากสถานีนี้สามารถทำซ้ำการวัดทั้งหมดตั้งแต่ปี 1883 ถึง 2015 ได้ไม่จำกัดครั้ง ค่าเฉลี่ยปริมาณฝนรายปีจะเป็นเท่าใด นี่คือการประมาณค่าเฉลี่ยในเชิงความน่าจะเป็น โดยจะพล็อต PDF เป็น histogram และจะเห็นว่ามันมีการกระจายแบบ Normal

ในทางทฤษฎีสามารถพิสูจน์ได้ว่า ภายใต้เงื่อนไขที่ไม่เข้มงวดมากนัก ค่าเฉลี่ยจะกระจายแบบ Normal เสมอ (ซึ่งไม่ใช่กฎที่ใช้ได้กับทุกสถิติ แต่ใช้ได้กับค่าเฉลี่ยและสถิติบางตัวเท่านั้น) ค่าเบี่ยงเบนมาตรฐานของการกระจายนี้เรียกว่า standard error of the mean หรือ SEM ซึ่งคำนวณจากค่าเบี่ยงเบนมาตรฐานของข้อมูลหารด้วยรากที่สองของจำนวนจุดข้อมูล กล่าวคือ สำหรับชุดข้อมูลหนึ่ง sem = np.std(data) / np.sqrt(len(data)) ด้วยวิธี hacker statistics จะได้ผลลัพธ์เดียวกันโดยไม่ต้องอนุมานสูตร และจะได้ตรวจสอบผลนี้จาก bootstrap replicates ของคุณ

ชุดข้อมูลถูกโหลดไว้ให้แล้วในอาร์เรย์ชื่อ rainfall

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

Statistical Thinking in Python (ตอนที่ 2)

ดูคอร์ส

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

  • ดึง bootstrap replicates จำนวน 10000 ตัวของค่าเฉลี่ยปริมาณฝนรายปี โดยใช้ฟังก์ชัน draw_bs_reps() และอาร์เรย์ rainfall คำใบ้: ส่ง np.mean เป็นค่าของ func เพื่อคำนวณค่าเฉลี่ย
    • เป็นข้อมูลเพิ่มเติม draw_bs_reps() รับ 3 อาร์กิวเมนต์ ได้แก่ data, func, และ size
  • คำนวณและพิมพ์ค่า standard error of the mean ของ rainfall
    • สูตรที่ใช้คำนวณคือ np.std(data) / np.sqrt(len(data))
  • คำนวณและพิมพ์ค่าเบี่ยงเบนมาตรฐานของ bootstrap replicates ใน bs_replicates
  • สร้าง histogram ของ replicates โดยใช้อาร์กิวเมนต์ density=True และ 50 bins
  • กด ส่งคำตอบ เพื่อดูกราฟ!

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

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

# Take 10,000 bootstrap replicates of the mean: bs_replicates
bs_replicates = ____

# Compute and print SEM
sem = ____ / np.sqrt(____)
print(sem)

# Compute and print standard deviation of bootstrap replicates
bs_std = ____
print(bs_std)

# Make a histogram of the results
_ = plt.hist(____, ____=50, ____=True)
_ = plt.xlabel('mean annual rainfall (mm)')
_ = plt.ylabel('PDF')

# Show the plot
plt.show()
แก้ไขและรันโค้ด