การแสดงภาพ bootstrap samples
ในแบบฝึกหัดนี้ จะได้สร้าง bootstrap samples จากชุดข้อมูลปริมาณน้ำฝนรายปีที่วัดโดยสถานีอุตุนิยมวิทยา Sheffield ในสหราชอาณาจักร ช่วงปี 1883 ถึง 2015 ข้อมูลเก็บอยู่ใน NumPy array ชื่อ rainfall ในหน่วยมิลลิเมตร (mm) การแสดง bootstrap samples ด้วย ECDF จะช่วยให้เข้าใจได้ว่า bootstrap sampling ช่วยอธิบายข้อมูลในเชิงความน่าจะเป็นได้อย่างไร
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Statistical Thinking in Python (ตอนที่ 2)
คำแนะนำการฝึกหัด
- เขียน
forloop เพื่อสร้าง bootstrap samples จากข้อมูลน้ำฝนจำนวน50ตัวอย่าง แล้วพล็อต ECDF ของแต่ละตัวอย่าง- ใช้
np.random.choice()เพื่อสร้าง bootstrap sample จาก NumPy arrayrainfallโดยให้แน่ใจว่า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 ของข้อมูลน้ำฝนต้นฉบับใน arrayrainfall - พล็อตค่า 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()