Luyện tập hoán vị (Permutation)
Cầu thủ NBA có nặng hơn nam giới trưởng thành ở Mỹ không? Giờ bạn muốn tính khoảng tin cậy 95% cho chênh lệch trung bình (tính bằng kilogram) giữa cầu thủ NBA và nam giới trưởng thành Mỹ. Bạn sẽ dùng hai danh sách được cung cấp.
Hoán vị (permutation) rất hữu ích khi kiểm định sự khác biệt, nên đây sẽ là phương pháp lấy mẫu lại bạn dùng ở bài này!
nba_weights = [96.7, 101.1, 97.9, 98.1, 98.1, 100.3, 101.0, 98.0, 97.4, 100.5, 100.3, 100.2, 100.6]
us_adult_weights = [75.1, 100.1, 95.2, 81.0, 72.0, 63.5, 80.0, 97.1, 94.3, 80.3, 93.5, 85.8, 95.1]
Lưu ý rằng mỗi danh sách ở trên có 13 giá trị cân nặng.
Các thư viện sau đã được nhập sẵn: random, numpy là np, seaborn là sns, và matplotlib.pyplot là 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
- Định nghĩa
all_weightslà một danh sách chứa các giá trị từ cảnba_weightsvàus_adult_weights. - Thực hiện hoán vị trên
all_weightsbằngnp.random.permutation(). - Gán 13 mẫu đầu tiên sau hoán vị cho
perm_nbavà 13 mẫu còn lại choperm_adult.
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.
# Define all_weights
all_weights = ____
simu_diff = []
for i in range(1000):
# Perform the permutation on all_weights
perm_sample = ____
# Assign the permutated samples to perm_nba and perm_adult
perm_nba, perm_adult = ____, ____
perm_diff = np.mean(perm_nba) - np.mean(perm_adult)
simu_diff.append(perm_diff)
mean_diff = np.mean(nba_weights) - np.mean(us_adult_weights)
upper = np.quantile(simu_diff, 0.975)
lower = np.quantile(simu_diff, 0.025)
print(mean_diff, lower, upper)