Campionamento in trasformata inversa - Inverse transform sampling

Metodo dell'inversione (noto anche come campionamento inversione , la probabilità integrale trasformata inversa , il metodo trasformazione inversa , Smirnov trasformare , o la regola d'oro ) è un metodo di base per pseudo-casuale numero di campionamento , cioè, per generare numeri di esempio in caso di qualsiasi distribuzione di probabilità data la sua funzione di distribuzione cumulativa .

Il campionamento della trasformazione inversa prende campioni uniformi di un numero compreso tra 0 e 1, interpretato come una probabilità, quindi restituisce il numero più grande dal dominio della distribuzione tale che . Ad esempio, immagina che sia la distribuzione normale standard con media zero e deviazione standard uno. La tabella seguente mostra campioni presi dalla distribuzione uniforme e la loro rappresentazione sulla distribuzione normale standard.

Trasformazione da campione uniforme a normale
.5 0
.975 1.95996
.995 2.5758
.999999 4.75342
1-2 -52 8.12589
Image
Campionamento con trasformata inversa per distribuzione normale

Scegliamo casualmente una proporzione dell'area sotto la curva e restituiamo il numero nel dominio in modo tale che esattamente questa proporzione dell'area si trovi a sinistra di quel numero. Intuitivamente, è improbabile che scegliamo un numero all'estremità delle code perché c'è un'area molto piccola in esse che richiederebbe la scelta di un numero molto vicino a zero o uno.

Computazionalmente, questo metodo prevede il calcolo della funzione quantile della distribuzione, in altre parole, il calcolo della funzione di distribuzione cumulativa (CDF) della distribuzione (che mappa un numero nel dominio con una probabilità compresa tra 0 e 1) e quindi l'inversione di tale funzione. Questa è la fonte del termine "inverso" o "inversione" nella maggior parte dei nomi di questo metodo. Si noti che per una distribuzione discreta , il calcolo del CDF non è in generale troppo difficile: si sommano semplicemente le probabilità individuali per i vari punti della distribuzione. Per una distribuzione continua , invece, occorre integrare la funzione di densità di probabilità (PDF) della distribuzione, cosa impossibile da fare analiticamente per la maggior parte delle distribuzioni (compresa la distribuzione normale ). Di conseguenza, questo metodo può essere computazionalmente inefficiente per molte distribuzioni e si preferiscono altri metodi; tuttavia, è un metodo utile per costruire campionatori più generalmente applicabili come quelli basati sul campionamento del rifiuto .

Per la distribuzione normale , la mancanza di un'espressione analitica per la corrispondente funzione quantile significa che altri metodi (es. la trasformata di Box–Muller ) possono essere preferiti computazionalmente. Accade spesso che, anche per distribuzioni semplici, il metodo di campionamento della trasformata inversa possa essere migliorato: si veda, ad esempio, l' algoritmo ziggurat e il campionamento del rifiuto . D'altra parte, è possibile approssimare la funzione quantile della distribuzione normale in modo estremamente accurato utilizzando polinomi di grado moderato, e infatti il ​​metodo per farlo è abbastanza veloce che il campionamento inverso è ora il metodo predefinito per il campionamento da una distribuzione normale nel pacchetto statistico R .

Definizione

La trasformazione integrale di probabilità afferma che se è una variabile casuale continua con funzione di distribuzione cumulativa , allora la variabile casuale ha una distribuzione uniforme su [0, 1]. La trasformazione integrale di probabilità inversa è solo l'inverso di questa: in particolare, se ha una distribuzione uniforme su [0, 1] e se ha una distribuzione cumulativa , allora la variabile casuale ha la stessa distribuzione di .

Image
Grafico della tecnica di inversione da a . In basso a destra vediamo la funzione regolare e in alto a sinistra la sua inversione.

Intuizione

Da , vogliamo generare con CDF Assumiamo essere una funzione strettamente crescente, che fornisce una buona intuizione.

Vogliamo vedere se possiamo trovare qualche trasformazione strettamente monotona , tale che . Avremo

dove l'ultimo passaggio ha usato quello quando è uniforme su .

Quindi dobbiamo essere la funzione inversa di , o, equivalentemente

Pertanto, possiamo generare da

Il metodo

Image
Schema del campionamento della trasformata inversa. La funzione inversa di può essere definita da .
Image
Un'animazione di come il campionamento con trasformata inversa genera valori casuali normalmente distribuiti da valori casuali uniformemente distribuiti

Il problema che risolve il metodo di campionamento della trasformata inversa è il seguente:

Il metodo di campionamento della trasformazione inversa funziona come segue:

  1. Genera un numero casuale dalla distribuzione uniforme standard nell'intervallo , ad esempio da
  2. Trova l'inverso del CDF desiderato, ad es .
  3. Calcola . La variabile casuale calcolata ha distribuzione .

Espressa diversamente, data una variabile continua uniforme in e una funzione di distribuzione cumulativa invertibile , la variabile casuale ha distribuzione (o, è distribuita ).

Si può dare una trattazione di tali funzioni inverse come oggetti che soddisfano equazioni differenziali. Alcune di queste equazioni differenziali ammettono soluzioni esplicite in serie di potenze, nonostante la loro non linearità.

Esempi

Per eseguire un'inversione vogliamo risolvere per
Da qui eseguiremo i passaggi uno, due e tre.
  • Come altro esempio, usiamo la distribuzione esponenziale con for x ≥ 0 (e 0 altrimenti). Risolvendo y=F(x) otteniamo la funzione inversa
Significa che se ne traiamo un po' da a e calcoliamo This ha distribuzione esponenziale.
L'idea è illustrata nel grafico seguente:
Image
I numeri casuali y i sono generati da una distribuzione uniforme tra 0 e 1, cioè Y ~ U(0, 1). Sono disegnati come punti colorati sull'asse y. Ciascuno dei punti è mappato secondo x=F −1 (y), che è mostrato con frecce grigie per due punti di esempio. In questo esempio, abbiamo usato una distribuzione esponenziale. Quindi, per x ≥ 0, la densità di probabilità è e la funzione di distribuzione cumulativa è . Pertanto, . Possiamo vedere che usando questo metodo, molti punti finiscono vicino a 0 e solo pochi punti finiscono per avere valori x elevati, proprio come ci si aspetta per una distribuzione esponenziale.
Nota che la distribuzione non cambia se iniziamo con 1-y invece di y. Per scopi computazionali, è quindi sufficiente generare numeri casuali y in [0, 1] e quindi calcolare semplicemente

Prova di correttezza

Sia F una funzione di distribuzione cumulativa continua e sia F −1 la sua funzione inversa (usando l' infimum perché le CDF sono debolmente monotone e continue a destra ):

Affermazione: se U è una variabile casuale uniforme su (0, 1) allora ha F come CDF.

Prova:

Distribuzione troncata

Il campionamento con trasformata inversa può essere semplicemente esteso ai casi di distribuzioni troncate sull'intervallo senza il costo del campionamento di rigetto: si può seguire lo stesso algoritmo, ma invece di generare un numero casuale uniformemente distribuito tra 0 e 1, generare uniformemente distribuito tra e , e poi di nuovo prendi .

Riduzione del numero di inversioni

Per ottenere un numero elevato di campioni, è necessario eseguire lo stesso numero di inversioni della distribuzione. Un modo possibile per ridurre il numero di inversioni ottenendo un gran numero di campioni è l'applicazione del cosiddetto campionatore Monte Carlo di collocazione stocastica (campionatore SCMC) all'interno di un framework di espansione del caos polinomiale . Questo ci permette di generare un numero qualsiasi di campioni Monte Carlo con solo poche inversioni della distribuzione originale con campioni indipendenti di una variabile per la quale le inversioni sono analiticamente disponibili, ad esempio la variabile normale standard.

Guarda anche

Riferimenti

  1. ^ Aalto University, N. Hyvönen, Metodi computazionali in problemi inversi. Dodicesima lezione https://noppa.tkk.fi/noppa/kurssi/mat-1.3626/luennot/Mat-1_3626_lecture12.pdf
  2. ^ Luc Devroye (1986). Generazione variabile casuale non uniforme (PDF) . New York: Springer-Verlag.
  3. ^ https://stat.ethz.ch/R-manual/R-devel/library/base/html/Random.html
  4. ^ Steinbrecher, G., Shaw, WT (2008). Meccanica dei quantili. Rivista europea di matematica applicata 19 (2): 87–112.
  5. ^ Luc Devroye (1986). "Sezione 2.2. Inversione per soluzione numerica di F ( X ) =  U " (PDF) . Generazione variabile casuale non uniforme . New York: Springer-Verlag.
  6. ^ LA Grzelak, JAS Witteveen, M. Suarez e CW Oosterlee. Il campionatore Monte Carlo a collocazione stocastica: campionamento altamente efficiente da distribuzioni “costose”. https://ssrn.com/abstract=2529691