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

Kiểm định giả thuyết - Chênh lệch trung bình

Chúng ta muốn kiểm định giả thuyết rằng có sự khác biệt về mức quyên góp trung bình nhận được từ A và B. Trước đó, bạn đã học cách tạo một hoán vị của dữ liệu. Giờ, chúng ta sẽ tạo phân phối rỗng của chênh lệch trung bình và sau đó tính p-value.

Với phân phối rỗng, trước tiên ta tạo nhiều bộ dữ liệu đã hoán vị và lưu lại chênh lệch trung bình cho mỗi trường hợp. Tiếp theo, ta tính thống kê kiểm định là chênh lệch trung bình với bộ dữ liệu gốc. Cuối cùng, ta xấp xỉ p-value bằng cách tính gấp đôi tỉ lệ số trường hợp có chênh lệch lớn hơn hoặc bằng giá trị tuyệt đối của thống kê kiểm định (giả thuyết hai phía). Một p-value nhỏ hơn, chẳng hạn 0.05, có thể cho thấy ý nghĩa thống kê.

Bài tập này là một phần của khóa học

Mô phỏng Thống kê bằng Python

Xem khóa học

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

  • Tạo nhiều hoán vị của donations_A & donations_B và gán vào perm.
  • Gán samples bằng chênh lệch trung bình của permuted_A_datasets & permuted_B_datasets. Ta đặt axis=1 để có trung bình cho từng bộ dữ liệu thay vì trung bình gộp.
  • Gán test_stat bằng chênh lệch trung bình của donations_A & donations_B.
  • Tính p-value p_val bằng gấp đôi tỉ lệ phần tử trong samples lớn hơn hoặc bằng giá trị tuyệt đối của test_stat.

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.

# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]

# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)

# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))
Chỉnh sửa và Chạy Mã