Come funziona il metodo di trasformazione inversa?


21

Come funziona il metodo di inversione?
Supponiamo di avere un campione casuale con densità over e quindi con cdf su . Quindi con il metodo di inversione ottengo la distribuzione di X come F_X ^ {- 1} (u) = u ^ \ theta . f ( x ; θ ) = 1X1,X2,...,Xn 0<x<1FX(x)=x1/θ(0,1)XF - 1 X(u)=uθf(x;θ)=1θx(1θ)θ
0<x<1FX(x)=x1/θ(0,1)XFX1(u)=uθ

Quindi uθ ha la distribuzione di X ? È così che funziona il metodo di inversione?

u<-runif(n)
x<-u^(theta)

3
Vedi i nostri thread sulla trasformazione integrale di probabilità .
whuber

1
Sì, sebbene di solito venga chiamata "trasformazione integrale di probabilità". Prova a derivare la funzione di distribuzione di F1(U) per vedere perché funziona.
dsaxton,

Risposte:


20

Il metodo è molto semplice, quindi lo descriverò in parole semplici. Innanzitutto, prendi la funzione di distribuzione cumulativa di una distribuzione da cui desideri campionare. La funzione prende come input un valore e ti dice qual è la probabilità di ottenere . Così x X xFXxXx

FX(x)=Pr(Xx)=p

inverso di tale funzione, prendere come input e restituire . Si noti che s' sono uniformemente distribuiti - questo potrebbero essere utilizzati per il campionamento da qualsiasi se si sa . Il metodo è chiamato campionamento della trasformata inversa . L'idea è molto semplice: è facile valori campione uniformemente da , quindi se si vuole campione da qualche , basta prendere i valori e passare attraverso per ottenere 's p x pFX1pxpF - 1 XFXFX1F X u U ( 0 , 1 ) u F - 1 X xU(0,1)FXuU(0,1)uFX1x

FX1(u)=x

o in R (per distribuzione normale)

U <- runif(1e6)
X <- qnorm(U)

Per visualizzarlo, guarda CDF qui sotto, in generale, pensiamo alle distribuzioni in termini di guardare l' asse per le probabilità dei valori dell'asse . Con questo metodo di campionamento facciamo il contrario e iniziamo con "probabilità" e li usiamo per scegliere i valori ad essi correlati. Con distribuzioni discrete tratti come una linea da a e valori assegnare in base a dove fa qualche punto giacciono su questa linea (ad esempio se o se per il campionamento da ).x U 0 1 u 0 0 u < 0,5 1 0,5 u 1 B e r n o u l l i ( 0,5 )yxU01u00u<0.510.5u1Bernoulli(0.5)

inserisci qui la descrizione dell'immagine

Sfortunatamente, questo non è sempre possibile poiché non tutte le funzioni hanno il loro contrario, ad esempio non è possibile utilizzare questo metodo con distribuzioni bivariate. Inoltre , non deve essere il metodo più efficiente in tutte le situazioni, in molti casi esistono algoritmi migliori.

Chiedi anche qual è la distribuzione di . Poiché è un inverso di , quindi e , quindi sì, i valori ottenuti usando tale metodo ha la stessa distribuzione di . Puoi verificarlo con una semplice simulazioneFX1(u)FX1FXFX(FX1(u))=uFX1(FX(x))=xX

U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)

Buona risposta. Questo metodo funziona quando si hanno distribuzioni come esponenziale, Cauchy, Geometrica, Pareto, Logistica, Extreme Weibull di valore , ecc. Ad esempio non è possibile trovare un modulo chiuso per una distribuzione normale . Pertanto non sarà possibile utilizzare questo metodo. Potresti provare altri metodi come il metodo di rifiuto .
Abbas Salimi

2
È possibile utilizzare il metodo di trasformazione inversa con la distribuzione normale. Esistono numerose implementazioni là fuori per il normale CDF inverso . Ad esempio, è possibile scrivere un normale CDF inverso utilizzando la funzione di errore complementare . Un'implementazione di esempio di erfc è qui . Non codificare te stesso; usa una biblioteca. L'assenza di una formula in forma chiusa non implica che non è possibile utilizzare approssimazioni numeriche di alta qualità.
Matthew Gunn,

2

Sì, ha la distribuzione di .UθX

Due ulteriori punti sull'intuizione dietro il metodo di trasformazione inversa potrebbero essere utili

(1) Per capire cosa significa effettivamente , fai riferimento a un grafico nella risposta di Tim per aiutarmi a capire la funzione quantile (CDF inversa)F1

(2) [Per favore, ignora semplicemente quanto segue, se porta più confusione invece di chiarezza]

Sia qualsiasi variabile aleatoria (rv) con cdf continuo e rigorosamente crescente . Quindi Nota sulla notazione: è un camper Pertanto, la funzione di camper , è un camper stesso. XF

F(X)Unif(0,1)

XXF(X)

Ad esempio, se volessi invertire la domanda, in modo da avere accesso a e volessi generare un'uniforme standard, allora . Lasciare chiamare questa variabile casuale . Così Tornando alla tua domanda, voi avete il compito opposto: per generare di . Quindi, in effetti XX1/θUnif(0,1)U

U=X1/θ
XU
X=Uθ

PS. Nomi alternativi per il metodo sono la trasformazione integrale di probabilità, il campionamento della trasformazione inversa, la trasformazione quantile e, in alcune fonti, "il teorema fondamentale della simulazione".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.