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

การแสดงภาพ Permutation Sampling

เพื่อช่วยให้เห็นภาพว่า permutation sampling ทำงานอย่างไร ในแบบฝึกหัดนี้จะสร้างตัวอย่าง permutation และดูผลในรูปแบบกราฟิก

เราจะใช้ข้อมูลจาก Sheffield Weather Station อีกครั้ง โดยพิจารณาปริมาณน้ำฝนรายเดือนในเดือนมิถุนายน (เดือนแล้ง) และเดือนพฤศจิกายน (เดือนฝนชุก) เราคาดว่าการกระจายของข้อมูลทั้งสองอาจแตกต่างกัน จึงจะใช้ permutation sampling เพื่อดูว่า ECDF ของข้อมูลทั้งสอง จะมีลักษณะอย่างไรหาก มีการกระจายแบบเดียวกัน

ข้อมูลถูกเก็บไว้ใน NumPy array ชื่อ rain_june และ rain_november

เป็นการทบทวน: permutation_sample() มี function signature เป็น permutation_sample(data_1, data_2) และคืนค่า permuted_data[:len(data_1)], permuted_data[len(data_1):] โดยที่ permuted_data = np.random.permutation(np.concatenate((data_1, data_2)))

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Statistical Thinking in Python (ตอนที่ 2)

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียนลูป for เพื่อสร้างตัวอย่าง permutation 50 ชุด คำนวณ ECDF และพล็อตกราฟ
    • สร้างคู่ตัวอย่าง permutation จาก rain_june และ rain_november โดยใช้ฟังก์ชัน permutation_sample()
    • สร้างค่า x และ y สำหรับ ECDF ของตัวอย่าง permutation ทั้งสองชุดโดยใช้ฟังก์ชัน ecdf()
    • พล็อต ECDF ของตัวอย่าง permutation ชุดแรก (x_1 และ y_1) เป็นจุด แล้วทำเช่นเดียวกันกับตัวอย่าง permutation ชุดที่สอง (x_2 และ y_2)
  • สร้างค่า x และ y สำหรับ ECDF ของข้อมูล rain_june และ rain_november และพล็อต ECDF โดยใช้อาร์กิวเมนต์ color='red' และ color='blue' ตามลำดับ
  • ติดป้ายกำกับแกน ตั้งค่า margin 2% และแสดงกราฟ ส่วนนี้ได้เตรียมไว้ให้แล้ว กด ส่งคำตอบ เพื่อดูกราฟได้เลย!

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

for _ in ____:
    # Generate permutation samples
    perm_sample_1, perm_sample_2 = ____


    # Compute ECDFs
    x_1, y_1 = ____
    x_2, y_2 = ____

    # Plot ECDFs of permutation sample
    _ = plt.plot(____, ____, marker='.', linestyle='none',
                 color='red', alpha=0.02)
    _ = plt.plot(____, ____, marker='.', linestyle='none',
                 color='blue', alpha=0.02)

# Create and plot ECDFs from original data
x_1, y_1 = ____
x_2, y_2 = ____
_ = plt.plot(x_1, y_1, marker='.', linestyle='none', color='red')
_ = plt.plot(x_2, y_2, marker='.', linestyle='none', color='blue')

# Label axes, set margin, and show plot
plt.margins(0.02)
_ = plt.xlabel('monthly rainfall (mm)')
_ = plt.ylabel('ECDF')
plt.show()
แก้ไขและรันโค้ด