Trực quan hóa kết quả resampling
Bây giờ bạn sẽ trực quan hóa kết quả mô phỏng từ bài trước! Bạn sẽ tiếp tục làm việc với nba_weights, chứa cân nặng (kg) của một nhóm cầu thủ NBA:
nba_weights = [96.7, 101.1, 97.9, 98.1, 98.1,
100.3, 101.0, 98.0, 97.4]
Đây là mã mô phỏng của bạn từ bài trước:
simu_weights = []
for i in range(1000):
bootstrap_sample = random.choices(nba_weights, k=9)
simu_weights.append(np.mean(bootstrap_sample))
mean_weight = np.mean(simu_weights)
upper = np.quantile(simu_weights, 0.975)
lower = np.quantile(simu_weights, 0.025)
print(mean_weight, lower, upper)
Danh sách simu_weights mà bạn đã tạo ở bài trước đã được nạp sẵn. Tương tự, mean_weight, lower và upper đã được định nghĩa sẵn lần lượt là giá trị trung bình và các phân vị 2.5% và 97.5% cho khoảng tin cậy của bạn.
Các gói sau đã được nạp sẵn: random, numpy với bí danh n p, seaborn với bí danh sns, và matplotlib.pyplot với bí danh plt.
Bài tập này là một phần của khóa học
Mô phỏng Monte Carlo với Python
Hướng dẫn bài tập
- Dùng
sns.displot()để vẽ phân phối của các cân nặng được mô phỏng. - Dùng
plt.axvline()để vẽ hai đường thẳng đứng cho khoảng tin cậy 95% (vẽlowerrồi đếnupper) bằng màu đỏ, và vẽ giá trị trung bình bằng màu xanh lá.
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.
# Plot the distribution of the simulated weights
____
# Plot vertical lines for the 95% confidence intervals and mean
plt.axvline(____, color="red")
plt.axvline(____, color="red")
plt.axvline(____, color="green")
plt.show()