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

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

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

ในทางทฤษฎีสามารถพิสูจน์ได้ว่า ภายใต้เงื่อนไขที่ไม่เข้มงวดมากนัก ค่าเฉลี่ยจะมีการแจกแจงแบบปกติเสมอ (หลักการนี้ใช้ได้เฉพาะกับค่าเฉลี่ยและสถิติบางตัวเท่านั้น ไม่ใช่ทุกกรณี) ค่าเบี่ยงเบนมาตรฐานของการแจกแจงนี้เรียกว่า ค่าความผิดพลาดมาตรฐานของค่าเฉลี่ย หรือ SEM คำนวณได้จากค่าเบี่ยงเบนมาตรฐานของข้อมูลหารด้วยรากที่สองของจำนวนข้อมูล กล่าวคือ sem = np.std(data) / np.sqrt(len(data)) ด้วยวิธีสถิติแบบแฮกเกอร์ คุณจะได้ผลลัพธ์เดียวกันโดยไม่ต้องอนุมานสูตรทางคณิตศาสตร์ และจะสามารถตรวจสอบผลลัพธ์นี้จาก 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
  • คำนวณและแสดงค่าความผิดพลาดมาตรฐานของค่าเฉลี่ยของ rainfall
    • สูตรที่ใช้คำนวณคือ np.std(data) / np.sqrt(len(data))
  • คำนวณและแสดงค่าเบี่ยงเบนมาตรฐานของ bs_replicates
  • สร้างฮิสโทแกรมของ replicates โดยใช้ keyword argument normed=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()
แก้ไขและรันโค้ด