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

การแสดงภาพ bootstrap samples

ในแบบฝึกหัดนี้ จะได้สร้าง bootstrap samples จากชุดข้อมูลปริมาณน้ำฝนรายปีที่วัดโดยสถานีอุตุนิยมวิทยา Sheffield ในสหราชอาณาจักร ช่วงปี 1883 ถึง 2015 ข้อมูลเก็บอยู่ใน NumPy array ชื่อ rainfall ในหน่วยมิลลิเมตร (mm) การแสดง bootstrap samples ด้วย ECDF จะช่วยให้เข้าใจได้ว่า bootstrap sampling ช่วยอธิบายข้อมูลในเชิงความน่าจะเป็นได้อย่างไร

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

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

ดูคอร์ส

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

  • เขียน for loop เพื่อสร้าง bootstrap samples จากข้อมูลน้ำฝนจำนวน 50 ตัวอย่าง แล้วพล็อต ECDF ของแต่ละตัวอย่าง
    • ใช้ np.random.choice() เพื่อสร้าง bootstrap sample จาก NumPy array rainfall โดยให้แน่ใจว่า size ของ array ที่ resample มีขนาดเท่ากับ len(rainfall)
    • ใช้ฟังก์ชัน ecdf() ที่เขียนไว้ในคอร์สก่อนหน้า เพื่อสร้างค่า x และ y สำหรับ ECDF ของ bootstrap sample ชื่อ bs_sample
    • พล็อตค่า ECDF โดยระบุ color='gray' (เพื่อให้จุดเป็นสีเทา) และ alpha=0.1 (เพื่อให้โปร่งแสงบางส่วน เนื่องจากมีการซ้อนทับกันมาก) รวมถึงระบุ marker='.' และ linestyle='none'
  • ใช้ ecdf() เพื่อสร้างค่า x และ y สำหรับ ECDF ของข้อมูลน้ำฝนต้นฉบับใน array rainfall
  • พล็อตค่า ECDF ของข้อมูลต้นฉบับ
  • กด ส่งคำตอบ เพื่อดูผลลัพธ์!

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

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

for _ in range(50):
    # Generate bootstrap sample: bs_sample
    bs_sample = ____(____, size=____)

    # Compute and plot ECDF from bootstrap sample
    x, y = ____
    _ = plt.plot(____, ____, ____='.', ____='none',
                 ____='gray', ____=0.1)

# Compute and plot ECDF from original data
x, y = ____
_ = plt.plot(____, ____, ____='.')

# Make margins and label axes
plt.margins(0.02)
_ = plt.xlabel('yearly rainfall (mm)')
_ = plt.ylabel('ECDF')

# Show the plot
plt.show()
แก้ไขและรันโค้ด