Home > R work > Contour plots on R

## Contour plots on R

In one of the homework problems, you are asked to do a Bayesian sensitivity analysis for a posterior probability with respect to the prior.   Specifically, suppose we are interested in learning about a proportion and we wish to compute the posterior probability $P(\theta > 0.5)$.  We observe the data (25 successes, 40 failures) and we want to know the sensitivity of the posterior probability with respect to the prior mean $\eta = a/(a+b)$ and the prior precision parameter $K = a + b$ where $a$ and $b$ are the beta shape parameters.

It is easy to construct a contour plot to illustrate this sensitivity analysis on R.

1.  First we set up a grid of values of $\eta$ and $K$:

eta = seq(.1, .9, by=.1)
K = c(1, 2, 8, 16, 32)

2.  Next we write a short function that computes the posterior probability $P(\theta > 0.5)$ as a function of  $\eta$ and $K$.

myfun=function(eta, K)
1 - pbeta(.5, K*eta+ 25, K*(1-eta) + 40)

3.  We now use the outer function to compute this probability on all combinations of  $\eta$ and $K$ — the result is a matrix where the rows correspond to $\eta$ and the columns to $K$.

PROB = outer(eta, K, myfun)

4.  Last, we use the contour function with inputs the two vectors and the matrix of probabilities.  We can specify which levels to draw on the contour graph.

contour(eta, K, PROB,
levels=c(0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95),
xlab="eta", ylab="K", main="P(theta > 0.5)")