Below are my attempts to work through the solutions for the exercises of Chapter 2 of Richard McElreath’s ‘Statistical Rethinking: A Bayesian course with examples in R and Stan’. If anyone notices any errors (of which there will inevitably be some), I would be happy to be notified!
You can find out more about the book (including links to full-length lectures) here.
Note: I completed Chapter 2 several weeks ago, and I can’t find my answers to the “medium” level questions (I think I calculated some of them by hand), so I’ll start at the “hard” ones this time.
I’m not going to post the full questions. Highlighted syntax refers to R code.
Species A gives birth to twins 10% of the time, otherwise birthing a single infant.
Species B births twins 20% of the time, otherwise birthing singleton infants.
A female panda of unknown species has just given birth to twins. What is the probability that her next birth will also be twins?
pr_A_T <- 0.1 # probability of species A producing twins pr_B_T <- 0.2 # probability of species B producing twins prior_AorB <- 0.5 # prior probability of it being either species A or B # probability of two twin births in a row = posterior probability of twins for species A + posterior probability of twins for species B # posterior probability of twins for species A = (probability of species A producing twins * prior) / probability of twins at a single point of time # probability of twins at a single point of time (without prior knowledge) pr_twins <- (pr_A_T * prior_AorB + pr_B_T * prior_AorB) pr_T_A <- (pr_A_T * prior_AorB)/(pr_twins) pr_T_B <- (pr_B_T * prior_AorB)/(pr_twins) pr_T_T <- (pr_T_A * pr_A_T) + (pr_T_B * pr_B_T) # Solution: Probability of two twin births in a row pr_T_T
This answer seems plausible, considering that it lies between 0.1 and 0.2 (the respective probabilities of species A and B producing twins).
What is the probability that the panda we have is from species A, assuming we have observed only the first birth and that it was twins?
# We already computed this with the "probability of twins, given species A" function above. pr_T_A
It appears less likely (lower than 0.5) for Ms. Panda to be of species A, as species B has a slightly higher tendency of popping out twins. Note that this does not rule out species A — a 1/3 probability should not be underestimated.
The same panda mother has a second birth and it is not twins, but a singleton infant. What is the posterior probability that this panda is species A?
# probability of first giving birth to twins, then to a singleton in general pr_NT_T <- 0.1 * 0.9 * 0.5 + 0.2 * 0.8 * 0.5 # probability of twins and then a single baby for species A pr_TN_A <- 0.1 * 0.9 pr_A_TN <- (pr_TN_A * prior_AorB) / pr_NT_T pr_A_TN
We now have a slight increase in the probability that we’re dealing with species A, thanks to Baby Singleton.
We now have a genetic test!
The probability that it correctly identifies a species A panda is 0.8.
The probability that it correctly identifies a species B panda is 0.65.
Our panda tests positive for species A.
Part 1: Disregarding the previous information of the births, what is the posterior probability that our panda is species A?
Part 2: Redo calculation using the birth data.
pr_A_A <- 0.8 pr_A_B <- 0.35 pr_B_B <- 0.65 pr_B_A <- 0.2 pr_testA_A <- 0.8 pr_testA <- pr_A_A * prior_AorB + pr_A_B * prior_AorB pr_A_testA <- (pr_testA_A * prior_AorB) / pr_testA pr_A_testA
Edit (28.07.2018): It was brought to my attention that the logic of the solution above isn’t quite clear, so here’s an attempt to put the code into words:
P(really species A|test says A) = P(test says A|really species A)*P(prior) / P(test says A)
or in further detail:
The probability of a true positive identification of species A when the test says “A”
(probability of the test saying A when it really is species A [0.8] * probability of it being species A [our prior of 0.5])
(probability of the test saying A under any circumstances, regardless of whether it’s a true positive or false negative result)
For Part 2, I will simply replace the prior with what we learned in 2H3.
pr_A_A <- 0.8 pr_A_B <- 0.35 pr_B_B <- 0.65 pr_B_A <- 0.2 pr_testA_A <- 0.8 pr_testA <- pr_A_A * pr_A_TN + pr_A_B * (1 - pr_A_TN) pr_A_testA <- (pr_testA_A * pr_A_TN) / pr_testA pr_A_testA_TN <- (pr_testA_A * pr_A_TN) / pr_testA pr_A_testA_TN
When considering our prior knowledge of the actual births, the confidence of the test is now reduced from almost 70% to about 56% that our panda descends from species A (although this is still higher than the probability of 33-36% without the genetic test).