## Importance sampling: Cauchy tail probability P(X > 2) library(lattice) p1 <- function(n = 500) { mean(rcauchy(n) > 2) } p2 <- function(n = 500) { 0.5 * mean(abs(rcauchy(n)) > 2) } p3 <- function(n = 500) { h <- function(x) 2 / (pi * (1 + x^2)) 0.5 - mean(h(runif(n, 0, 2))) } p4 <- function(n = 500) { h <- function(x) 1 / (2 * pi * (1 + x^2)) mean(h(runif(n, 0, 0.5))) } pdf <- make.groups(p1 = replicate(50, p1(500)), p2 = replicate(50, p2(500)), p3 = replicate(50, p3(500)), p4 = replicate(50, p4(500))) if (!interactive()) png("cauchy_tail.png", width = 500, height = 400) stripplot(which ~ data, data = pdf, jitter = TRUE, abline = list(v = pcauchy(2, lower.tail = FALSE)), xlab = "Estimate of P(Cauchy > 2) using m=500") if (!interactive()) dev.off()