ความสัมพันธ์ระหว่างข้อมูลของลูกนกและพ่อแม่นก
เพื่อหาค่าเชิงปริมาณของความสัมพันธ์ระหว่างความลึกของจะงอยปากของลูกนกและพ่อแม่นก เราต้องการคำนวณค่าสถิติ เช่น Pearson correlation coefficient ระหว่างพ่อแม่นกและลูกนก และเพื่อให้ได้ช่วงความเชื่อมั่น จำเป็นต้องทำ pairs bootstrap
คุณได้เขียนฟังก์ชันไว้แล้ว สำหรับทำ pairs bootstrap เพื่อประมาณค่าพารามิเตอร์จาก linear regression ในแบบฝึกหัดนี้ ให้สร้างฟังก์ชันใหม่ที่มี call signature เป็น draw_bs_pairs(x, y, func, size=1) ซึ่งทำ pairs bootstrap และคำนวณค่าสถิติเดียวจากคู่ตัวอย่างที่กำหนด โดยคำนวณค่าสถิติที่สนใจด้วยการเรียก func(bs_x, bs_y) ในแบบฝึกหัดถัดไป จะใช้ pearson_r เป็นค่าของ func
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 2)
คำแนะนำการฝึกหัด
- สร้างอาร์เรย์ของดัชนีสำหรับใช้สุ่มตัวอย่าง (จำไว้ว่าในการทำ pairs bootstrap เราจะสุ่มเลือกดัชนีแล้วนำไปดึงคู่ข้อมูล)
- กำหนดค่าเริ่มต้นให้อาร์เรย์ของ bootstrap replicates โดยต้องเป็นอาร์เรย์หนึ่งมิติที่มีความยาว
size - เขียน
forloop เพื่อดึงตัวอย่าง - สุ่มเลือกดัชนีจากอาร์เรย์ดัชนีที่สร้างไว้
- ดึงค่า
xและyจากอาร์เรย์อินพุตโดยใช้ดัชนีที่เลือก เพื่อสร้าง bootstrap sample - ใช้
funcคำนวณค่าสถิติที่สนใจจาก bootstrap samples ของxและyแล้วเก็บผลลัพธ์ไว้ในอาร์เรย์ของ bootstrap replicates - Return อาร์เรย์ของ bootstrap replicates
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def draw_bs_pairs(x, y, func, size=1):
"""Perform pairs bootstrap for a single statistic."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_replicates
bs_replicates = ____
# Generate replicates
for i in range(size):
bs_inds = ____
bs_x, bs_y = ____
bs_replicates[i] = ____
return bs_replicates