Bagaimana cara kerja metode transformasi terbalik?

21

Bagaimana cara kerja metode inversi?
Katakanlah saya memiliki sampel acak X1,X2,...,Xn dengan kepadatan lebih dari dan karenanya dengan cdf pada . Kemudian dengan metode inversi saya mendapatkan distribusi sebagai . 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θ

Jadi, apakah memiliki distribusi ? Apakah ini cara kerja metode inversi? XuθX

u<-runif(n)
x<-u^(theta)
clarkson
sumber
3
Lihat utas kami tentang kemungkinan transformasi integral .
whuber
1
Ya, meskipun itu biasanya disebut "probabilitas transformasi integral." Coba turunkan fungsi distribusi F1(U) untuk melihat mengapa ia bekerja.
dsaxton

Jawaban:

20

Metode ini sangat sederhana, jadi saya akan menjelaskannya dengan kata-kata sederhana. Pertama, ambil fungsi distribusi kumulatif dari beberapa distribusi yang ingin Anda sampel. Fungsi ini mengambil input beberapa nilai x dan memberi tahu Anda berapa probabilitas memperoleh X x . BegituFXxXx

FX(x)=Pr(Xx)=hal

kebalikan dari fungsi fungsi tersebut, akan mengambil p sebagai input dan mengembalikan x . Perhatikan bahwa p 's secara seragam terdistribusi - ini dapat digunakan untuk pengambilan sampel dari setiap F X jika Anda tahu F - 1 X . Metode ini disebut inverse transform sampling . Idenya sangat sederhana: mudah untuk mengambil sampel nilai secara seragam dari U ( 0 , 1 ) , jadi jika Anda ingin sampel dari beberapa F X , ambil saja nilai u FX-1halxhalFXFX-1U(0,1)FX dan lewati kamu melalui F - 1 X untuk mendapatkan x 'skamuU(0,1)kamuFX-1x

FX-1(kamu)=x

atau dalam R (untuk distribusi normal)

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

Untuk memvisualisasikannya lihat CDF di bawah ini, secara umum, kami memikirkan distribusi dalam hal melihat sumbu untuk probabilitas nilai dari x- sumbu. Dengan metode pengambilan sampel ini kami melakukan yang sebaliknya dan mulai dengan "probabilitas" dan menggunakannya untuk memilih nilai yang terkait dengannya. Dengan distribusi diskrit, Anda memperlakukan U sebagai garis dari 0 hingga 1 dan menetapkan nilai berdasarkan di mana beberapa titik u terletak pada garis ini (mis. 0 jika 0 u < 0,5 atau 1 jika 0,5 u 1 untuk pengambilan sampel dari ByxU01kamu00kamu<0,510,5kamu1 ).BernHaikamullsaya(0,5)

masukkan deskripsi gambar di sini

Sayangnya, ini tidak selalu mungkin karena tidak setiap fungsi memiliki kebalikannya, misalnya Anda tidak dapat menggunakan metode ini dengan distribusi bivariat. Itu juga tidak harus menjadi metode yang paling efisien dalam semua situasi, dalam banyak kasus algoritma yang lebih baik ada.

Anda juga bertanya apa distribusi . Karena F - 1 X adalah kebalikan dari F X , maka F X ( F - 1 X ( u ) ) = u dan F - 1 X ( F X ( x ) ) = x , jadi ya, nilai yang diperoleh dengan menggunakan metode tersebut memiliki distribusi yang sama seperti X . Anda dapat memeriksanya dengan simulasi sederhanaFX-1(kamu)FX-1FXFX(FX-1(kamu))=kamuFX-1(FX(x))=xX

U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
Tim
sumber
Jawaban yang bagus. Metode ini berfungsi ketika Anda memiliki distribusi seperti eksponensial, Cauchy, Geometris, Pareto, Logistik, Weibull Nilai Ekstrim , dll. Misalnya Anda tidak dapat menemukan formulir tertutup untuk distribusi normal . Karenanya Anda tidak akan dapat menggunakan metode ini. Anda dapat mencoba metode lain seperti Metode Penolakan .
Abbas Salimi
2
Anda dapat menggunakan metode transformasi terbalik dengan distribusi normal. Ada banyak implementasi di luar sana untuk CDF terbalik normal . Misalnya, Anda dapat menulis CDF terbalik normal menggunakan fungsi kesalahan komplementer . Contoh implementasi erfc ada di sini . Jangan kode diri Anda sendiri; gunakan perpustakaan. Tidak ada formula form tertutup tidak menyiratkan bahwa Anda tidak dapat menggunakan perkiraan numerik berkualitas tinggi.
Matthew Gunn
2

Ya, memiliki distribusi X .UθX

Dua poin tambahan pada intuisi di balik metode transformasi terbalik mungkin berguna

(1) Untuk memahami apa arti sebenarnya dari silakan merujuk ke grafik di jawaban Tim untuk Bantu saya memahami fungsi kuantil (CDF terbalik)F-1

(2) [Tolong, abaikan saja yang berikut, jika itu membawa lebih banyak kebingungan daripada kejelasan]

Mari be variabel acak (rv) dengan terus menerus dan ketat meningkatkan cdf F . Kemudian F ( X ) Unif ( 0 , 1 ) Catatan tentang notasi: X adalah rv Oleh karena itu, fungsi rv X , F ( X ) adalah rv itu sendiri. XF

F(X)Unif(0,1)

XXF(X)

Misalnya, jika Anda akan membalik pertanyaan, sehingga Anda akan memiliki akses ke dan ingin menghasilkan seragam standar, maka X 1 / θUnif ( 0 , 1 ) . Sebut saja variabel acak U ini . Jadi U = X 1 / θ Kembali ke pertanyaan Anda, Anda memiliki berlawanan tugas: untuk menghasilkan X dari U . Jadi, memang X = U θXX1/θUnif(0,1)U

U=X1/θ
XU
X=Uθ

PS. Nama alternatif untuk metode ini adalah transformasi integral probabilitas, sampling transformasi terbalik, transformasi kuantil, dan, dalam beberapa sumber, "teorema dasar simulasi".

den2042
sumber