Bắt đầu ngayBắt đầu miễn phí

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, numpynp, seabornsns, và matplotlib.pyplotplt.

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

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa all_weights là một danh sách chứa các giá trị từ cả nba_weightsus_adult_weights.
  • Thực hiện hoán vị trên all_weights bằng np.random.permutation().
  • Gán 13 mẫu đầu tiên sau hoán vị cho perm_nba và 13 mẫu còn lại cho perm_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)
Chỉnh sửa và Chạy Mã