Articulo de referencia

Muestreo de transformada inversa

El muestreo de transformación inversa (también conocido como muestreo de inversión , transformación integral de probabilidad inversa , método de transformación inversa o transfo...

El muestreo de transformación inversa (también conocido como muestreo de inversión , transformación integral de probabilidad inversa , método de transformación inversa o transformación de Smirnov ) es un método básico para el muestreo de números pseudoaleatorios , es decir, para generar números de muestra al azar a partir de cualquier distribución de probabilidad dada su función de distribución acumulativa .

El muestreo por transformación inversa toma muestras uniformes de un número{\displaystyle u}entre 0 y 1, interpretado como una probabilidad, y luego devuelve el número más pequeño.incógnitaR{\displaystyle x\in \mathbb {R} }de tal manera queF(incógnita){\displaystyle F(x)\geq u}para la función de distribución acumulativaF{\displaystyle F}de una variable aleatoria. Por ejemplo, imagina queF{\displaystyle F}es la distribución normal estándar con media cero y desviación estándar uno. La tabla a continuación 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 tal que exactamente esa proporción del área se encuentra a la izquierda de dicho número. Intuitivamente, es poco probable que elijamos un número en el extremo de las colas, ya que hay muy poca área en ellas, lo que requeriría elegir un número muy cercano a cero o a uno.

Desde el punto de vista computacional, este método implica calcular la función cuantil de la distribución; es decir, calcular la función de distribución acumulativa (FDA) de la distribución (que asigna a cada número del dominio una probabilidad entre 0 y 1) y luego invertir dicha función. Este es el origen del término "inversa" o "inversión" en la mayoría de los nombres que recibe este método. Cabe destacar que, para una distribución discreta , calcular la FDA no suele ser demasiado difícil: simplemente sumamos las probabilidades individuales de los distintos puntos de la distribución. Sin embargo, para una distribución continua , necesitamos integrar la función de densidad de probabilidad (FDP) de la distribución, lo cual es imposible de realizar analíticamente para la mayoría de las distribuciones (incluida la distribución normal ). En consecuencia, este método puede resultar computacionalmente ineficiente para muchas distribuciones, por lo que se prefieren otros métodos; no obstante, es un método útil para construir muestreadores de aplicación más general, como los basados ​​en el muestreo por rechazo .

Para la distribución normal , la falta de una expresión analítica para la función cuantil correspondiente implica que otros métodos (por ejemplo, la transformada de Box-Muller ) pueden ser preferibles desde el punto de vista computacional. A menudo, incluso para distribuciones simples, el método de muestreo de la transformada inversa puede mejorarse: [ 1 ] véase, por ejemplo, el algoritmo de zigurat y el muestreo por 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 muestrear a partir de una distribución normal en el paquete estadístico R. [ 2 ]

Declaración formal

Para cualquier variable aleatoriaincógnita{\displaystyle X}enR{\displaystyle \mathbb {R} }, la variable aleatoriaFincógnita1(U){\displaystyle F_{X}^{-1}(U)}tiene la misma distribución queincógnita{\displaystyle X}, dóndeFincógnita1{\displaystyle F_{X}^{-1}}es la inversa generalizada de la función de distribución acumulativaFincógnita{\displaystyle F_{X}}deincógnita{\displaystyle X}yU{\displaystyle U}es uniforme en[0,1]{\displaystyle [0,1]}. [ 3 ]

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 continuaincógnita{\displaystyle X}con función de distribución acumulativaFincógnita{\displaystyle F_{X}}, la variable aleatoriaU=Fincógnita(incógnita){\displaystyle U=F_{X}(X)}es uniforme en[0,1]{\displaystyle [0,1]}.

Gráfico de la técnica de inversión deincógnita{\displaystyle x}aF(incógnita){\displaystyle F(x)}En la parte inferior derecha vemos la función regular y en la parte superior izquierda su inversa.

Intuición

DeUUnorteiF[0,1]{\displaystyle U\sim \mathrm {Unif} [0,1]}, queremos generarincógnita{\displaystyle X}con CDFFincógnita(incógnita).{\displaystyle F_{X}(x).}SuponemosFincógnita(incógnita){\displaystyle F_{X}(x)}ser una función continua y estrictamente creciente , lo cual proporciona una buena intuición.

Queremos ver si podemos encontrar alguna transformación estrictamente monótona.T:[0,1]R{\displaystyle T:[0,1]\mapsto \mathbb {R} }, de tal manera queT(U)=dincógnita{\displaystyle T(U){\overset {d}{=}}X}Tendremos

Fincógnita(incógnita)=Pr(incógnitaincógnita)=Pr(T(U)incógnita)=Pr(UT1(incógnita))=T1(incógnita), para incógnitaR,{\displaystyle F_{X}(x)=\Pr(X\leq x)=\Pr(T(U)\leq x)=\Pr(U\leq T^{-1}(x))=T^{-1}(x),{\text{ para }}x\in \mathbb {R} ,}

donde el último paso usó esoPr(Uy)=y{\displaystyle \Pr(U\leq y)=y}cuandoU{\displaystyle U}es uniforme en[0,1]{\displaystyle [0,1]}.

Así que conseguimosFincógnita{\displaystyle F_{X}}ser la función inversa deT{\displaystyle T}o, equivalentementeT()=Fincógnita1(),[0,1].{\displaystyle T(u)=F_{X}^{-1}(u),u\in [0,1].}

Por lo tanto, podemos generarincógnita{\displaystyle X}deFincógnita1(U).{\displaystyle F_{X}^{-1}(U).}

El método

Esquema del muestreo de la transformada inversa. La función inversa dey=Fincógnita(incógnita){\displaystyle y=F_{X}(x)}puede definirse porFincógnita1(y)=inorteF{incógnita|Fincógnita(incógnita)y}{\displaystyle F_{X}^{-1}(y)=\mathrm {inf} \{x|F_{X}(x)\geq y\}}.
Una animación de cómo el muestreo de transformación inversa genera valores aleatorios con distribución normal a partir de valores aleatorios con distribución uniforme.

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

  • Dejarincógnita{\displaystyle X}sea ​​una variable aleatoria cuya distribución puede describirse mediante la función de distribución acumulativa.Fincógnita{\displaystyle F_{X}}.
  • Queremos generar valores deincógnita{\displaystyle X}que se distribuyen según esta distribución.

El método de muestreo de la transformada inversa funciona de la siguiente manera:

  1. Generar un número aleatorio{\displaystyle u}de la distribución uniforme estándar en el intervalo[0,1]{\displaystyle [0,1]}, es decir, deUUnorteiF[0,1].{\displaystyle U\sim \mathrm {Unif} [0,1].}
  2. Hallar la inversa generalizada de la función de distribución acumulada (CDF) deseada, es decirFincógnita1(){\displaystyle F_{X}^{-1}(u)}.
  3. Calcularincógnita()=Fincógnita1(){\displaystyle X'(u)=F_{X}^{-1}(u)}La variable aleatoria calculadaincógnita(U){\displaystyle X'(U)}tiene distribuciónFincógnita{\displaystyle F_{X}}y por lo tanto la misma ley queincógnita{\displaystyle X}.

Dicho de otra manera, dada una función de distribución acumulativaFincógnita{\displaystyle F_{X}}y una variable uniformeU[0,1]{\displaystyle U\in [0,1]}, la variable aleatoriaincógnita=Fincógnita1(U){\displaystyle X=F_{X}^{-1}(U)}tiene la distribuciónFincógnita{\displaystyle F_{X}}. [ 3 ]

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

Ejemplos

F(incógnita)=1exp(incógnita){\displaystyle {\begin{aligned}F(x)=1-\exp(-{\sqrt {x}})\end{aligned}}}
Para realizar una inversión, queremos resolverF(F1())={\displaystyle F(F^{-1}(u))=u}
F(F1())=1exp(F1())=F1()=(registro(1))2=(registro(1))2{\displaystyle {\begin{aligned}F(F^{-1}(u))&=u\\1-\exp \left(-{\sqrt {F^{-1}(u)}}\right)&=u\\F^{-1}(u)&=(-\log(1-u))^{2}\\&=(\log(1-u))^{2}\end{aligned}}}
Desde aquí realizaríamos los pasos uno, dos y tres.
  • Como otro ejemplo, utilizamos la distribución exponencial conFincógnita(incógnita)=1miλincógnita{\displaystyle F_{X}(x)=1-e^{-\lambda x}}para x ≥ 0 (y 0 en caso contrario). Al resolver y=F(x) obtenemos la función inversa.
incógnita=F1(y)=1λln(1y).{\displaystyle x=F^{-1}(y)=-{\frac {1}{\lambda }}\ln(1-y).}
Significa que si dibujamos algoy0{\displaystyle y_{0}}de unUUnorteiF(0,1){\displaystyle U\sim \mathrm {Unif} (0,1)}y calcularincógnita0=Fincógnita1(y0)=1λln(1y0),{\displaystyle x_{0}=F_{X}^{-1}(y_{0})=-{\frac {1}{\lambda }}\ln(1-y_{0}),}Esteincógnita0{\displaystyle x_{0}}tiene 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). Se representan como puntos de color en el eje y. Cada uno de los puntos se mapea según 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 lo tanto, para x ≥ 0, la densidad de probabilidad esϱincógnita(incógnita)=λmiλincógnita{\displaystyle \varrho _{X}(x)=\lambda e^{-\lambda \,x}}y la función de distribución acumulativa esF(incógnita)=1miλincógnita{\displaystyle F(x)=1-e^{-\lambda \,x}}. Por lo tanto,incógnita=F1(y)=ln(1y)λ{\displaystyle x=F^{-1}(y)=-{\frac {\ln(1-y)}{\lambda }}}Podemos ver que, utilizando este método, muchos puntos terminan cerca de 0 y solo unos pocos puntos terminan teniendo valores x altos, tal como se espera para una distribución exponencial.
Nótese que la distribución no cambia si comenzamos con 1-y en lugar de y. Por lo tanto, para fines computacionales, basta con generar números aleatorios y en [0, 1] y luego simplemente calcular
incógnita=F1(y)=1λln(y).{\displaystyle x=F^{-1}(y)=-{\frac {1}{\lambda }}\ln(y).}

Prueba de corrección

DejarF{\displaystyle F}Sea una función de distribución acumulativa y seaF1{\displaystyle F^{-1}}sea ​​su función inversa generalizada (usando el ínfimo porque las CDF son débilmente monótonas y continuas por la derecha ): [ 6 ]

F1()=inf{incógnitaF(incógnita)}(0<<1).{\displaystyle F^{-1}(u)=\inf \;\{x\mid F(x)\geq u\}\qquad (0<u<1).}

Afirmación: SiU{\displaystyle U}es una variable aleatoria uniforme en[0,1]{\displaystyle [0,1]}entoncesF1(U){\displaystyle F^{-1}(U)}tieneF{\displaystyle F}como su CDF.

Prueba:

Pr(F1(U)incógnita)=Pr(UF(incógnita))(F es continuo por la derecha, por lo tanto {:F1()incógnita}={:F(incógnita)})=F(incógnita)(porque Pr(U)=, cuando U es uniforme en [0,1]){\displaystyle {\begin{aligned}&\Pr(F^{-1}(U)\leq x)\\&{}=\Pr(U\leq F(x))\quad &(F{\text{ is right-continuous, so }}\{u:F^{-1}(u)\leq x\}=\{u:u\leq F(x)\})\\&{}=F(x)\quad &({\text{because }}\Pr(U\leq u)=u,{\text{ when }}U{\text{ is uniform on }}[0,1])\\\end{aligned}}}

Distribución truncada

El muestreo de transformada inversa puede extenderse fácilmente a casos de distribuciones truncadas en el intervalo(a,b]{\displaystyle (a,b]}Sin el coste del muestreo por rechazo: se puede seguir el mismo algoritmo, pero en lugar de generar un número aleatorio{\displaystyle u}distribuidos uniformemente entre 0 y 1, generan{\displaystyle u}distribuidos uniformemente entreF(a){\displaystyle F(a)}yF(b){\displaystyle F(b)}y luego nuevamente tomarF1(){\displaystyle F^{-1}(u)}.

Reducción del número de inversiones

Para obtener un gran número de muestras, es necesario realizar el mismo número de inversiones de la distribución. Una forma de reducir el número de inversiones y, al mismo tiempo, obtener un gran número de muestras es la aplicación del muestreador de Monte Carlo de colocación estocástica (muestreador SCMC) dentro de un marco de expansión de caos polinomial . Esto 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 cuyas inversiones están disponibles analíticamente, por ejemplo, la variable normal estándar. [ 7 ]

Implementaciones de software

Existen implementaciones de software para aplicar el método de muestreo inverso mediante aproximaciones numéricas de la inversa, en caso de que no esté disponible en forma cerrada. Por ejemplo, se puede calcular una aproximación de la inversa si el usuario proporciona información sobre las distribuciones, como la función de densidad de probabilidad (PDF) [ 8 ] o la función de distribución acumulada (CDF).

Véase también

Referencias

  1. Luc Devroye (1986). Generación de variables aleatorias no uniformes (PDF) . Nueva York: Springer-Verlag. Archivado del original (PDF) el 18 de agosto de 2014. Consultado el 12 de abril de 2012 .
  2. "R: Generación de números aleatorios" .
  3. 1 2 McNeil, Alexander J.; Frey, Rüdiger; Embrechts, Paul (2005). Gestión cuantitativa del riesgo . Serie Princeton en Finanzas. Princeton University Press, Princeton, NJ. pág. 186. ISBN  0-691-12255-5.
  4. Steinbrecher, György; Shaw, William T. (19 de marzo de 2008). "Mecánica de cuantiles". European Journal of Applied Mathematics . 19 (2): 87– 112. doi : 10.1017/S0956792508007341 . S2CID 6899308 . 
  5. Arridge, Simon; Maass, Peter; Öktem, Ozan; Schönlieb, Carola-Bibiane (2019). "Resolución de problemas inversos mediante modelos basados ​​en datos" . Acta Numerica . 28 : 1–174 . doi : 10.1017/S0962492919000059 . ISSN 0962-4929 . S2CID 197480023 .  
  6. Luc Devroye (1986). "Sección 2.2. Inversión mediante solución numérica de F ( X ) = U " (PDF) . Generación de variables aleatorias no uniformes . Nueva York: Springer-Verlag.  
  7. LA Grzelak, JAS Witteveen, M. Suarez y CW Oosterlee. El muestreador estocástico de colocación de Monte Carlo: muestreo altamente eficiente de distribuciones “costosas”. https://ssrn.com/abstract=2529691
  8. Derflinger, Gerhard; Hörmann, Wolfgang; Leydold, Josef (2010). "Generación de variables aleatorias mediante inversión numérica cuando solo se conoce la densidad" (PDF) . ACM Transactions on Modeling and Computer Simulation . 20 (4). doi : 10.1145/945511.945517 .
  9. "UNU.RAN - Generadores de números aleatorios no uniformes universales" .
  10. "Runuran: Interfaz R para los generadores de variables aleatorias 'UNU.RAN'" . 17 de enero de 2023.
  11. "Generadores de números aleatorios (Scipy.stats.sampling) — Manual de SciPy v1.12.0" .
  12. Baumgarten, Christoph; Patel, Tirth (2022). "Generación automática de variables aleatorias en Python". Actas de la 21.ª Conferencia Python en la Ciencia . págs. 46–51 . doi : 10.25080/majora-212e5952-007 .