Typos in Chapters 6-7

Over the weekend and during the R exams, I managed to complete the solution set for Chapters 6 and 7 of “Introducing Monte Carlo Methods with R”. Chapter 6 only exhibited a few typos, despite me covering most exercises in Chapter 6, hence the merging of both chapters.

— in Exercise 6.13, both \alpha and \beta must use a double exponential proposal in the Metropolis-Hastings algorithm of question b,

in Exercise 6.15, the \mathcal{L}(0,\omega) distribution should be a \mathcal{N}(0,\omega) normal distribution,

— in Example 7.3, part of the code is wrong: it should be

> sigma2=theta=rep(0,Nsim)                  #init arrays
> sigma2[1]=1/rgamma(1,shape=a,rate=b)      #init chains
> B=sigma2[1]/(sigma2[1]+n*tau2)
> theta[1]=rnorm(1,m=B*theta0+(1-B)*xbar,sd=sqrt(tau2*B))

instead of

> sigma=theta=rep(0,Nsim)                  #init arrays
> sigma{1}=1/rgamma(1,shape=a,rate=b)      #init chains
> B=sigma2{1}/(sigma2{1}+n*tau2)
> theta{1}=rnorm(1,m=B*theta0+(1-B)*xbar,sd=sqrt(tau2*B))

(I frankly don’t understand where those curly brackets came from!)

— in Example 7.6, I forgot to include the truncation probability \Phi(a-\theta)^{n-m} in the likelihood (!) and the notations are not completely coherent with Example 5.13 and 5.14 in that the x‘s became y‘s…

— in Exercise 7.21, rtnorm is missing sigma as one of its arguments.

— Exercise 7.23 has nothing wrong per se but it is rather a formal (mathematical) exercise

— in Exercise 7.25 the x+a in question a should be (x+a) to avoid any confusion.

5 Responses to “Typos in Chapters 6-7”

  1. Alessandra Says:

    :) !!!
    Brute-force solution, O(1): try it on those curly brackets!

  2. Alessandra Says:

    Overall, I think the use of “n” to indicate parameters or variables should be avoided in R codes. In fact, if ever one wants to use the debugger (not with a one line code of course!), “n” would be straightforwardly interpreted as the command “next” (instruction), and there would be no way to retrieve information about the “n” variable/parameter used in the program.

    I know that most talented people never need using debug(), but I speak for us, humans…. :)

  3. In the first code sample above, I think there’s a typo:

    theta[1}]=rnorm(1,m=B*theta0+(1-B)*xbar,sd=sqrt(tau2*B))

    should be

    theta[1] = …

    Also

    B=sigma2[1]/(sigma2{1}+n*tau2)

    should be

    B=sigma2[1]/(sigma2[1]+n*tau2)

    It’s those curly brackets again;)

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.