การคำนวณค่าของ ECDF อย่างเป็นทางการ
เพื่อทำการทดสอบ Kolmogorov-Smirnov เราจำเป็นต้องคำนวณค่าของ ECDF อย่างเป็นทางการที่จุดใดก็ได้ กล่าวคือ ต้องมีฟังก์ชัน ecdf_formal(x, data) ที่คืนค่าของ ECDF อย่างเป็นทางการที่ได้จากชุดข้อมูล data สำหรับแต่ละค่าในอาร์เรย์ x มีสองฟังก์ชันที่ทำงานได้ถูกต้อง และหนึ่งฟังก์ชันที่ไม่ถูกต้อง ในสองฟังก์ชันที่คำนวณได้ถูกต้อง มีหนึ่งฟังก์ชันที่เร็วกว่า ให้ระบุว่าแต่ละฟังก์ชันเป็นอย่างไร
ทบทวนนิยามอีกครั้ง: ECDF นิยามอย่างเป็นทางการว่า ECDF(x) = (จำนวนตัวอย่างที่ ≤ x) / (จำนวนตัวอย่างทั้งหมด) และอาจลองดู doc string ของ np.searchsorted() ประกอบ
a)
def ecdf_formal(x, data):
return np.searchsorted(np.sort(data), x) / len(data)
b)
def ecdf_formal(x, data):
return np.searchsorted(np.sort(data), x, side='right') / len(data)
c)
def ecdf_formal(x, data):
output = np.empty(len(x))
data = np.sort(data)
for i, x_val in x:
j = 0
while j < len(data) and x_val >= data[j]:
j += 1
output[i] = j
return output / len(data)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
กรณีศึกษาด้านการคิดเชิงสถิติ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด