Bootstrap replicate của trung bình và SEM
Trong bài này, bạn sẽ tính ước lượng bootstrap của hàm mật độ xác suất (PDF) cho trung bình lượng mưa hằng năm tại Trạm khí tượng Sheffield. Hãy nhớ rằng, chúng ta đang ước lượng giá trị trung bình lượng mưa hằng năm mà ta sẽ thu được nếu Trạm khí tượng Sheffield có thể lặp lại toàn bộ phép đo từ năm 1883 đến 2015 hết lần này đến lần khác. Đây là một ước lượng có tính xác suất của trung bình. Bạn sẽ vẽ PDF dưới dạng biểu đồ histogram và sẽ thấy nó có phân phối Chuẩn.
Thực tế, có thể chứng minh về mặt lý thuyết rằng, dưới những điều kiện không quá nghiêm ngặt, giá trị của trung bình sẽ luôn có phân phối Chuẩn. (Điều này không đúng nói chung cho mọi đại lượng, chỉ đúng cho trung bình và một vài thống kê khác.) Độ lệch chuẩn của phân phối này, gọi là sai số chuẩn của trung bình, hay SEM, được cho bởi độ lệch chuẩn của dữ liệu chia cho căn bậc hai của số lượng điểm dữ liệu. Tức là, với một tập dữ liệu, sem = np.std(data) / np.sqrt(len(data)). Dùng hacker statistics, bạn cũng thu được kết quả này mà không cần tự suy luận công thức, và bạn sẽ kiểm chứng kết quả này từ các bootstrap replicate của mình.
Bộ dữ liệu đã được nạp sẵn vào một mảng có tên rainfall.
Bài tập này là một phần của khóa học
Tư duy Thống kê với Python (Phần 2)
Hướng dẫn bài tập
- Vẽ
10000bootstrap replicate của trung bình lượng mưa hằng năm bằng hàmdraw_bs_reps()và mảngrainfall. Gợi ý: Truyềnnp.meanvào đối sốfuncđể tính trung bình.- Nhắc lại:
draw_bs_reps()nhận 3 đối số:data,func, vàsize.
- Nhắc lại:
- Tính và in ra sai số chuẩn của trung bình của
rainfall.- Công thức:
np.std(data) / np.sqrt(len(data)).
- Công thức:
- Tính và in ra độ lệch chuẩn của các bootstrap replicate
bs_replicates. - Vẽ histogram của các replicate với tham số
density=Truevà50bins. - Nhấn submit để xem biểu đồ!
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Take 10,000 bootstrap replicates of the mean: bs_replicates
bs_replicates = ____
# Compute and print SEM
sem = ____ / np.sqrt(____)
print(sem)
# Compute and print standard deviation of bootstrap replicates
bs_std = ____
print(bs_std)
# Make a histogram of the results
_ = plt.hist(____, ____=50, ____=True)
_ = plt.xlabel('mean annual rainfall (mm)')
_ = plt.ylabel('PDF')
# Show the plot
plt.show()