Exercise 3

26 Mar 2019

Question 1

Language restrictions: None

Consider the problem of 'pessimistic' prediction: you would like to estimate a success probability $p$. However, let us say it is absolutely imperative that you do not over-estimate the true success probability, even by a slight amount.

  • How would you approach this problem?
  • Implement your idea on your hierarchical model from last time, or on some other problem that involves estimation of a success probability.

Question 2

Language restrictions: Use Stan

Note: there will be a tutorial on Blang and Stan on the Monday office hour. However you must make sure you have a working version of Stan and Blang before the tutorial (see below). You can get help by Piazza to do so.

  • Implement our Bayesian GLM model in Stan. Run it on the Challenger data from the lectures.
  • Optional: pick a classification dataset of your choice, e.g. on Kaggle or UCI repository. Modify your Stan code to perform a Bayesian GLM analysis on that dataset. Compare the results to (penalized) MLE.
  • Optional: compare the efficiency of Stan and JAGS on a Bayesian GLM problem.

Question 3

Language restriction: Use Blang

Note: there will be a tutorial on Blang and Stan on the Monday office hour. However you must make sure you have a working version of Stan and Blang before the tutorial (see below). You can get help by Piazza to do so.

  • Have a look at the file titanic.csv from the Titanic dataset.
  • In this question we will perform Bayesian feature selection on that dataset.
  • We will use a Bayesian GLM, but we will modify the model so that the posterior distribution puts positive probability to having some of the logistic regression parameters at zero.
  • More background will be provided during lecture and Monday tutorial.

Setting up

You can use any of the following two methods

Locally

  • Clone the assignment template repo
  • Follow the instructions in the README.md file
  • Test that things run properly (see README.md)

Silico

The problem from last time should be fixed now. You can: