DATA 604 - D10

Michael Muller

November 2, 2017


set.seed(155)
m <- 10000 
x <- numeric(m) 
k <- 0 
u <- runif(m)
for (i in 2:m) { 
xt <- x[i-1]
y <- rnorm(1) 
num <- dcauchy(y)*dnorm((xt),mean=y)
den <- dcauchy(xt)*dnorm((y),mean=xt)
if (u[i] <= num/den) {
  x[i] <- y}
else {
  x[i] <- xt 
  k <- k+1 }

}

x <- x[1001:length(x)]
metQ <-quantile(x,seq(0,1,.1))
cauchyQ <- qcauchy(seq(0,1,.1))

knitr::kable(cbind(metQ,cauchyQ))
metQ cauchyQ
0% -4.1768738 -Inf
10% -0.9002809 -3.0776835
20% -0.5771077 -1.3763819
30% -0.3459395 -0.7265425
40% -0.1638466 -0.3249197
50% -0.0090093 0.0000000
60% 0.1637055 0.3249197
70% 0.3376449 0.7265425
80% 0.5514408 1.3763819
90% 0.8796916 3.0776835
100% 3.1642461 Inf