การคำนวณจำนวนนับที่คาดหวัง
ในแบบฝึกหัดก่อนหน้า คุณได้คำนวณค่าเฉลี่ยและความแปรปรวนของข้อมูล crab และพบว่าค่าทั้งสองไม่เท่ากัน ในแบบฝึกหัดนี้ จะฝึกวิเคราะห์ overdispersion อีกวิธีหนึ่ง โดยใช้ค่าเฉลี่ยที่คำนวณไว้แล้วมาหาจำนวนนับที่คาดหวังสำหรับค่านับหนึ่งๆ เช่น จำนวนนับที่เป็นศูนย์ กล่าวคือ เราควรคาดหวังว่าจะมีดาวเทียมที่นับเป็นศูนย์กี่ตัวในกลุ่มตัวอย่าง โดยอ้างอิงจากค่าเฉลี่ยที่คำนวณได้
นึกถึงกราฟจากชุดข้อมูล crab ที่แสดงให้เห็นว่ามีจำนวนนับที่เป็นศูนย์จำนวนมาก

จำไว้ว่าการคำนวณจำนวนนับที่คาดหวังจากพารามิเตอร์ที่กำหนด สามารถใช้การแจกแจงแบบ Poisson ซึ่งนิยามด้วยสูตร
$$ P(y)=\frac{\lambda^ye^{-\lambda}}{y!} $$
ชุดข้อมูล crab และค่าเฉลี่ย sat_mean ที่คำนวณไว้แล้วถูกโหลดไว้ใน workspace เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Generalized Linear Models ใน Python
คำแนะนำการฝึกหัด
- ใช้ค่าเฉลี่ย
sat_meanที่คำนวณไว้และจำนวนนับเป็นศูนย์ \(y = 0\) เพื่อคำนวณจำนวนนับที่เป็นศูนย์ที่คาดหวัง โดยใช้factorial()จากไลบรารีmath - คำนวณจำนวนการสังเกตที่มีค่านับเป็นศูนย์ในตัวแปร
satโดยใช้ฟังก์ชันsum()และคำนวณจำนวนการสังเกตทั้งหมดในกลุ่มตัวอย่างโดยใช้ฟังก์ชันlen() - แสดงผลอัตราส่วนระหว่างจำนวนการสังเกตที่นับเป็นศูนย์จริงกับจำนวนการสังเกตทั้งหมด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Expected number of zero counts
exp_zero_cnt = ((____**____)*np.____(-____))/math.____(____)
# Print exp_zero_counts
print('Expected zero counts given mean of ', round(____,3),
'is ', round(____,3)*100)
# Number of zero counts in sat variable
actual_zero_cnt = sum(____[____] == 0)
# Number of observations in crab dataset
num_obs = len(____)
# Print the percentage of zero count observations in the sample
print('Actual zero counts in the sample: ', round(____ / ____,3)*100)