การคำนวณ ECDF
ในแบบฝึกหัดนี้ จะได้เขียนฟังก์ชันที่รับอาร์เรย์ข้อมูล 1 มิติเป็น input แล้วคืนค่า x และ y ของ ECDF ฟังก์ชันนี้จะถูกใช้ซ้ำหลายครั้งตลอดทั้งคอร์สนี้และคอร์สต่อเนื่อง ECDF ถือเป็นหนึ่งในกราฟที่สำคัญที่สุดในการวิเคราะห์ทางสถิติ สามารถเขียนฟังก์ชันของตัวเองในชื่อ foo(x,y) ตามโครงสร้างด้านล่างได้เลย:
def foo(a,b):
"""State what function does here"""
# Computation performed here
return x, y
ฟังก์ชัน foo() ข้างต้นรับอาร์กิวเมนต์สองตัวคือ a และ b และคืนค่าสองตัวคือ x และ y ส่วนหัวฟังก์ชัน def foo(a,b): ประกอบด้วย signature ของฟังก์ชันคือ foo(a,b) ซึ่งได้แก่ชื่อฟังก์ชันและพารามิเตอร์ของมัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 1)
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชันที่มี signature เป็น
ecdf(data)โดยภายในฟังก์ชัน ให้ดำเนินการดังนี้- คำนวณจำนวนจุดข้อมูล
nโดยใช้ฟังก์ชันlen() - ค่า \(x\) คือข้อมูลที่เรียงลำดับแล้ว ใช้ฟังก์ชัน
np.sort()ในการเรียงลำดับ - ค่า \(y\) ของ ECDF จะเริ่มจาก
1/nไปจนถึง1โดยมีช่วงห่างเท่ากัน สร้างได้โดยใช้np.arange()แต่จำไว้ว่าค่าสุดท้ายในnp.arange()จะไม่ถูกรวมอยู่ด้วย ดังนั้นให้กำหนดช่วงตั้งแต่1ถึงn+1แล้วหารผลลัพธ์ด้วยn - ให้ฟังก์ชันคืนค่า
xและy
- คำนวณจำนวนจุดข้อมูล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def ecdf(data):
"""Compute ECDF for a one-dimensional array of measurements."""
# Number of data points: n
____ = ____(____)
# x-data for the ECDF: x
____ = ____(____)
# y-data for the ECDF: y
____ = ____(____, ____) / n
return x, y