Una nota sobre la simulación por el método del rechazo
El otro día publiqué un pequeño fragmento de código,
a <- 2.89
b <- 36.81
sample_dist <- function() rbeta(1, a, b)
sample_p <- function(y){
candidate <- sample_dist()
my_sample <- runif(1)
if (y == 1) if (my_sample < candidate) return(candidate)
if (y == 0) if (my_sample < 1 - candidate) return(candidate)
sample_p(y)
}
p1 <- replicate(100000, sample_p(1))
p0 <- replicate(100000, sample_p(0))
auc <- mean(p1 > p0)
aucque había usado antes aquí, para muestrear unas distribuciones relacionadas con el cálculo del AUC en modelos perfectamente calibrados. Lo había escrito meses atrás y supongo que me pasó como a la mayoría de mis lectores: darlo por bueno primero y usarlo después suponía todo un acto de fe (en mí, además).