5 votos

¿Cómo generar variantes aleatorias a partir de variables aleatorias con densidad conocida?

Dado un generador de números aleatorios para producir variables aleatorias con una función de densidad de probabilidad $f(x)$ cómo generar variables aleatorias con función de densidad de probabilidad $g(x)?$

8voto

Sean Hanley Puntos 2428

Si conoces los pdf de ambos, y la distribución de la que puedes muestrear, $f(x)$ encierra la distribución de la que se quiere tomar una muestra, $g(x)$ (o se puede hacer que lo hagan multiplicando las probabilidades por alguna constante $c$ ), puede utilizar un algoritmo de aceptación-rechazo . La esencia de este planteamiento es la siguiente:

  1. Extraer un valor de $f(x)$
  2. En ese valor x, forma un cociente, $r=g(x)/f(x)$
  3. Dibuja un valor, $u$ de una distribución uniforme en el intervalo (0,1)
  4. Si $u\le r$ entonces acepta que $x$ y guárdelo
  5. Si $u>r$ entonces rechaza que $x$ y empezar de nuevo
  6. Continúe hasta que tenga $N$ valores realizados

Tenga en cuenta que los algoritmos de aceptación-rechazo son notoriamente lentos, incluso si termina aceptando todos los valores x, hay varios pasos adicionales para cada sorteo. Para optimizar el rendimiento de este enfoque, trate de elegir un $f(x)$ que esté lo más cerca (es decir, lo menos por encima) de $g(x)$ como sea posible, para que acepte un porcentaje lo más alto posible.

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