Mô phỏng posterior beta
Trong vài bài tập tới, bạn sẽ dùng hàm simulate_beta_posterior() mà bạn đã thấy được định nghĩa trong video trước. Ở bài này, bạn sẽ làm quen với cách hàm hoạt động bằng cách tự thực hiện các phép tính mà hàm này thực hiện.
Bạn được cung cấp một danh sách gồm mười lần tung đồng xu, gọi là tosses, trong đó 1 là ngửa (heads), 0 là sấp (tails), và ta định nghĩa ngửa là một "thành công". Để mô phỏng xác suất hậu nghiệm của việc tung ra ngửa, bạn sẽ dùng prior beta. Nhớ rằng nếu prior là \(Beta(a, b)\), thì posterior là \(Beta(x, y)\), với:
\(x = \text{NumberOfHeads} + a\)
\(y = \text{NumberOfTosses} - \text{NumberOfHeads} + b\)
Bài tập này là một phần của khóa học
Phân tích dữ liệu Bayesian với Python
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.
# Set prior parameters and calculate number of successes
beta_prior_a = ____
beta_prior_b = ____
num_successes = np.sum(____)
# Generate 10000 posterior draws
posterior_draws = np.random.beta(
____ + ____,
____ - ____ + ____,
10000)
# Plot density of posterior_draws
sns.kdeplot(posterior_draws, shade=True)
plt.show()