# Beta-Binomial: estimating mortality rate with prior knowledge
# Prior: Beta(3, 17) = prior belief of ~15% mortality from previous theater
alpha_prior <- 3; beta_prior <- 17
# Observed: 14 deaths in 60 patients
deaths <- 14; total <- 60
alpha_post <- alpha_prior + deaths
beta_post <- beta_prior + (total - deaths)
x <- seq(0, 0.6, length.out=300)
bind_rows(
tibble(x=x, dens=dbeta(x, alpha_prior, beta_prior),
dist="Prior Beta(3,17)\n[~15% belief]"),
tibble(x=x, dens=dbeta(x, alpha_post, beta_post),
dist="Posterior Beta(17,63)\n[14/60 observed]")
) |>
ggplot(aes(x, dens, fill=dist, color=dist)) +
geom_area(alpha=0.35, position="identity") +
geom_line(linewidth=1.2) +
geom_vline(xintercept=alpha_post/(alpha_post+beta_post),
linetype=2, color="#f59e0b") +
scale_fill_manual(values=c("#2563eb","#e63946")) +
scale_color_manual(values=c("#2563eb","#e63946")) +
annotate("text", x=0.29, y=8, label=paste0("Posterior mean\n",
round(alpha_post/(alpha_post+beta_post)*100,1),"%"),
color="#f59e0b", size=3.5) +
labs(title="Bayesian update: prior belief + 14/60 data → posterior distribution over mortality rate",
x="Mortality rate θ", y="Density", fill=NULL, color=NULL) +
theme_di()