# BDA3 Chapter 2 Exercise 1

Here’s my solution to exercise 1, chapter 2, of Gelman’s Bayesian Data Analysis (BDA), 3rd edition. There are solutions to some of the exercises on the book’s webpage.

Let $$H$$ be the number of heads in 10 tosses of the coin. With a $$\dbeta(4, 4)$$ prior on the probability $$\theta$$ of a head, the posterior after finding out $$H \le 2$$ is

\begin{align} p(\theta \mid H \le 2) &\propto p(H \le 2 \mid \theta) \cdot p(\theta) \\ &= \dbeta(\theta \mid 4, 4) \sum_{h = 0}^2 \dbinomial(h \mid \theta, 10) \\ &= \theta^3 (1 - \theta)^3 \sum_{h = 0}^2 \binom{10}{h} \theta^h (1 - \theta)^{10 - h}. \end{align}

We can plot this unnormalised posterior density from the following dataset.

ex1 <- tibble(
theta = seq(0, 1, 0.01),
prior = theta^3 * (1 - theta)^3,
posterior = prior * (
choose(10, 0) * theta^0 * (1 - theta)^10 +
choose(10, 1) * theta^1 * (1 - theta)^9 +
choose(10, 2) * theta^2 * (1 - theta)^8
)
)

With the help of Stan, we can obtain the normalised posterior density. We include the information that there are at most 2 heads observed by using the (log) cumulative density function.

m1 <- rstan::stan_model('src/ex_02_01.stan')
S4 class stanmodel 'ex_02_01' coded as follows:
transformed data {
int tosses = 10;
}

parameters {
real<lower = 0, upper = 1> theta;
}

model {
theta ~ beta(4, 4); // prior
target += binomial_lcdf(max_heads | tosses, theta); // likelihood
} 

The following posterior has the same shape as our exact unnormalised density above. The difference is that we now have a normalised probability distribution without having to work out the maths ourselves.

f1 <- sampling(m1, iter = 40000, warmup = 500, chains = 1)