5 votos

Cómo utilizar el muestreo de rechazo para generar extracciones de la Unidad Exponencial

Estoy trabajando en algunos problemas de examen de práctica, y uno de ellos dice que diseñe un algoritmo de muestreo de rechazo para producir sorteos de una exponencial unitaria usando sorteos de una Gamma(2,1).

No entiendo cómo es posible, porque tengo la impresión de que la "función envolvente" g(x) tiene que ser escalable de tal manera que para alguna constante $M$ , $Mg(x)\geq f(x)\; \forall x$ .

No veo ninguna manera de hacerlo, ya que la Gamma(2,1) va a tener poca masa alrededor de 0, mientras que la función exponencial tiene la mayor parte de su masa alrededor de 0. ¿Qué tipo de transformación tengo que hacer a la función Gamma para que pueda funcionar como una envolvente?

Usando R, intenté darle la vuelta para convertirla en una gamma inversa, pero eso no captura adecuadamente la masa de probabilidad cercana a 0 y una prueba K-S confirmó que los puntos que generé no surgían de una exponencial unitaria.

edit: Incluiré mi código en el que he intentado utilizar una gamma inversa(2,1) como envolvente:

x <- c()
for(i in 1:100000)
{
  g <- runif(1, 0, 1) 
  h <- rigamma(1, 2, 1)
  M <- densigamma(h, 2, 1)
  crit <- dexp(h, 1)/M
  if(g < crit)
    x[i] = h
}

5voto

Eran Medan Puntos 193

Intenta un cambio de ubicación en la Gamma(2,1)

EDITAR: Ilustración

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X