stringtranslate.com

Muestreo de transformación inversa

El muestreo por transformada inversa (también conocido como muestreo por inversión , transformación integral de probabilidad inversa , método de transformación inversa , transformada de Smirnov o regla de oro [1] ) es un método básico para el muestreo de números pseudoaleatorios , es decir, para generar números de muestra en aleatorio de cualquier distribución de probabilidad dada su función de distribución acumulativa .

El muestreo de transformación inversa toma muestras uniformes de un número entre 0 y 1, interpretadas como una probabilidad, y luego devuelve el número más pequeño para la función de distribución acumulativa de una variable aleatoria. Por ejemplo, imagine que es la distribución normal estándar con media cero y desviación estándar uno. La siguiente tabla muestra muestras tomadas de la distribución uniforme y su representación en la distribución normal estándar.

Muestreo de transformada inversa para distribución normal.

Elegimos aleatoriamente una proporción del área bajo la curva y devolvemos el número en el dominio de manera que exactamente esta proporción del área ocurra a la izquierda de ese número. Intuitivamente, es poco probable que elijamos un número en el otro extremo de las colas porque hay muy poca área en ellas que requeriría elegir un número muy cercano a cero o uno.

Computacionalmente, este método implica calcular la función cuantil de la distribución; en otras palabras, calcular la función de distribución acumulativa (CDF) de la distribución (que asigna un número en el dominio a una probabilidad entre 0 y 1) y luego invertir esa función. Ésta es la fuente del término "inversa" o "inversión" en la mayoría de los nombres de este método. Tenga en cuenta que para una distribución discreta , calcular la CDF en general no es demasiado difícil: simplemente sumamos las probabilidades individuales para los distintos puntos de la distribución. Sin embargo, para una distribución continua , necesitamos integrar la función de densidad de probabilidad (PDF) de la distribución, lo cual es imposible de hacer analíticamente para la mayoría de las distribuciones (incluida la distribución normal ). Como resultado, este método puede ser computacionalmente ineficiente para muchas distribuciones y se prefieren otros métodos; sin embargo, es un método útil para construir muestreadores de aplicación más general, como los basados ​​en el muestreo de rechazo .

Para la distribución normal , la falta de una expresión analítica para la función cuantil correspondiente significa que se pueden preferir computacionalmente otros métodos (por ejemplo, la transformada de Box-Muller ). A menudo ocurre que, incluso para distribuciones simples, el método de muestreo por transformada inversa se puede mejorar: [2] consulte, por ejemplo, el algoritmo del zigurat y el muestreo de rechazo . Por otro lado, es posible aproximar la función cuantil de la distribución normal con extrema precisión utilizando polinomios de grado moderado y, de hecho, el método para hacerlo es lo suficientemente rápido como para que el muestreo por inversión sea ahora el método predeterminado para el muestreo de una distribución normal. en el paquete estadístico R . [3]

Declaración formal

Para cualquier variable aleatoria , la variable aleatoria tiene la misma distribución que , donde es la inversa generalizada de la función de distribución acumulativa de y es uniforme en . [4]

Para variables aleatorias continuas , la transformada integral de probabilidad inversa es de hecho la inversa de la transformada integral de probabilidad , que establece que para una variable aleatoria continua con función de distribución acumulativa , la variable aleatoria es uniforme .

Gráfica de la técnica de inversión de a . En la parte inferior derecha vemos la función regular y en la parte superior izquierda su inversión.

Intuición

Desde , queremos generar con CDF. Asumimos que es una función continua y estrictamente creciente, lo que proporciona una buena intuición.

Queremos ver si podemos encontrar alguna transformación estrictamente monótona , tal que . Tendremos

donde el último paso usó eso cuando es uniforme .

Entonces tenemos que ser la función inversa de , o, equivalentemente

Por lo tanto, podemos generar a partir de

El método

Esquema del muestreo por transformada inversa. La función inversa de se puede definir por .
Una animación de cómo el muestreo por transformación inversa genera valores aleatorios distribuidos normalmente a partir de valores aleatorios distribuidos uniformemente

El problema que resuelve el método de muestreo por transformada inversa es el siguiente:

El método de muestreo por transformación inversa funciona de la siguiente manera:

  1. Genere un número aleatorio a partir de la distribución uniforme estándar en el intervalo , es decir, de
  2. Encuentre el inverso generalizado de la CDF deseada, es decir .
  3. Calcular . La variable aleatoria calculada tiene distribución y, por tanto, la misma ley que .

Expresado de otra manera, dada una función de distribución acumulativa y una variable uniforme , la variable aleatoria tiene la distribución . [4]

En el caso continuo, se puede dar un tratamiento a dichas funciones inversas como objetos que satisfacen ecuaciones diferenciales. [5] Algunas de estas ecuaciones diferenciales admiten soluciones explícitas en series de potencias , a pesar de su no linealidad. [6]

Ejemplos

Para realizar una inversión queremos resolver
A partir de aquí realizaríamos los pasos uno, dos y tres.
Significa que si extraemos algo de a y calculamos, esto tiene una distribución exponencial.
La idea se ilustra en el siguiente gráfico:
Los números aleatorios y i se generan a partir de una distribución uniforme entre 0 y 1, es decir, Y ~ U(0, 1). Están dibujados como puntos coloreados en el eje y. Cada uno de los puntos se asigna de acuerdo con x=F −1 (y), que se muestra con flechas grises para dos puntos de ejemplo. En este ejemplo, hemos utilizado una distribución exponencial. Por tanto, para x ≥ 0, la densidad de probabilidad es y la función de distribución acumulativa es . Por lo tanto, . Podemos ver que al usar este método, muchos puntos terminan cerca de 0 y solo unos pocos puntos terminan teniendo valores de x altos, tal como se espera para una distribución exponencial.
Tenga en cuenta que la distribución no cambia si comenzamos con 1-y en lugar de y. Por lo tanto, para fines computacionales, es suficiente generar números aleatorios y en [0, 1] y luego simplemente calcular

Prueba de corrección

Sea una función de distribución acumulativa y sea su función inversa generalizada (usando el mínimo porque las CDF son débilmente monótonas y continuas por la derecha ): [7]

Reclamación: Si es una variable aleatoria uniforme , entonces tiene como CDF.

Prueba:

Distribución truncada

El muestreo por transformación inversa se puede extender simplemente a casos de distribuciones truncadas en el intervalo sin el costo del muestreo de rechazo: se puede seguir el mismo algoritmo, pero en lugar de generar un número aleatorio uniformemente distribuido entre 0 y 1, generar uniformemente distribuido entre y , y luego toma de nuevo .

Reducción del número de inversiones.

Para obtener una gran cantidad de muestras, es necesario realizar el mismo número de inversiones de la distribución. Una forma posible de reducir el número de inversiones y al mismo tiempo obtener una gran cantidad de muestras es la aplicación del llamado muestreador de Monte Carlo de colocación estocástica (muestreador SCMC) dentro de un marco de expansión de caos polinomial . Esto nos permite generar cualquier número de muestras de Monte Carlo con solo unas pocas inversiones de la distribución original con muestras independientes de una variable para la cual las inversiones están disponibles analíticamente, por ejemplo, la variable normal estándar. [8]

Implementaciones de software

Existen implementaciones de software disponibles para aplicar el método de muestreo inverso mediante el uso de aproximaciones numéricas del inverso en el caso de que no esté disponible en forma cerrada. Por ejemplo, se puede calcular una aproximación de la inversa si el usuario proporciona alguna información sobre las distribuciones, como el PDF [9] o el CDF.

Ver también

Referencias

  1. ^ Universidad Aalto, N. Hyvönen, Métodos computacionales en problemas inversos. Duodécima conferencia https://noppa.tkk.fi/noppa/kurssi/mat-1.3626/luennot/Mat-1_3626_lecture12.pdf [ enlace muerto permanente ]
  2. ^ Luc Devroye (1986). Generación de variables aleatorias no uniformes (PDF) . Nueva York: Springer-Verlag. Archivado desde el original (PDF) el 18 de agosto de 2014 . Consultado el 12 de abril de 2012 .
  3. ^ "R: generación de números aleatorios".
  4. ^ ab McNeil, Alexander J.; Frey, Rüdiger; Embrechts, Paul (2005). Gestión cuantitativa de riesgos . Serie Princeton en Finanzas. Princeton University Press, Princeton, Nueva Jersey. pag. 186.ISBN 0-691-12255-5.
  5. ^ Steinbrecher, György; Shaw, William T. (19 de marzo de 2008). "Mecánica de cuantiles". Revista Europea de Matemáticas Aplicadas . 19 (2). doi :10.1017/S0956792508007341. S2CID  6899308.
  6. ^ Arridge, Simón; Maass, Peter; Öktem, Ozan; Schönlieb, Carola-Bibiane (2019). "Resolver problemas inversos utilizando modelos basados ​​en datos". Acta Numérica . 28 : 1–174. doi : 10.1017/S0962492919000059 . ISSN  0962-4929. S2CID  197480023.
  7. ^ Luc Devroye (1986). "Sección 2.2. Inversión por solución numérica de F(X) = U" (PDF) . Generación de variables aleatorias no uniformes . Nueva York: Springer-Verlag.
  8. ^ LA Grzelak, JAS Witteveen, M. Suarez y CW Oosterlee. El muestreador de Monte Carlo de colocación estocástica: muestreo altamente eficiente a partir de distribuciones "caras". https://ssrn.com/abstract=2529691
  9. ^ Derflinger, Gerhard; Hörmann, Wolfgang; Leydold, Josef (2010). "Generación de variables aleatorias por inversión numérica cuando sólo se conoce la densidad". Transacciones ACM sobre modelado y simulación por computadora . 20 (4). doi : 10.1145/945511.945517.
  10. ^ https://statmath.wu.ac.at/unuran/index.html
  11. ^ https://cran.r-project.org/package=Runuran
  12. ^ https://docs.scipy.org/doc/scipy/reference/stats.sampling.html
  13. ^ Baumgarten, Christoph; Patel, Tirth (2022). "Generación automática de variables aleatorias en Python". Actas de la 21ª Conferencia Python in Science . doi :10.25080/majora-212e5952-007.