Pembuatan Angka Acak Log-Cauchy

10

Saya perlu menggambar angka acak dari distribusi log-cauchy yang memiliki kepadatan: Adakah yang bisa membantu saya atau mengarahkan saya ke buku / kertas yang bisa menunjukkan caranya?

f(x;μ,σ)=1xπσ[1+(ln(x)-μσ)2].
pengguna13317
sumber

Jawaban:

11

Variabel memiliki distribusi log-cauchy jika memiliki distribusi cauchy. Jadi, kita hanya perlu membuat variabel acak cauchy dan eksponensial mereka untuk mendapatkan sesuatu yang didistribusikan log-cauchy.log ( X )Xcatatan(X)

Kita dapat menghasilkan dari distribusi cauchy menggunakan inverse transform sampling , yang mengatakan bahwa jika Anda memasukkan seragam acak ke dalam CDF terbalik dari suatu distribusi, maka apa yang Anda dapatkan memiliki distribusi itu. Distribusi cauchy dengan lokasi dan skala memiliki CDF:σμσ

F(x)=1πArktan(x-μσ)+12

itu mudah untuk membalikkan fungsi ini untuk menemukan itu

F-1(y)=μ+σberjemur[π(y-12)]

Karenanya jika maka memiliki distribusi cauchy dengan lokasi dan skala dan memiliki distribusi log-cauchy. Beberapa kode untuk dihasilkan dari distribusi ini (tanpa menggunakan :))UUnsayafHairm(0,1)Y=μ+σberjemur[π(U-12)]μσexp(Y)Rrcauchy

rlogcauchy <- function(n, mu, sigma)
{
    u = runif(n)
    x = mu + sigma*tan(pi*(u-.5))
    return( exp(x) ) 
}

Catatan: karena distribusi cauchy sangat panjang, ketika Anda mengeksponenasinya di komputer, Anda mungkin mendapatkan nilai yang "tidak terbatas" secara numerik. Saya tidak yakin ada yang harus dilakukan tentang itu.

Juga perhatikan bahwa jika Anda melakukan inverse transform sampling menggunakan fungsi kuantil log-cauchy secara langsung, Anda akan memiliki masalah yang sama, karena, setelah melakukan perhitungan, Anda benar-benar berakhir dengan tindakan hal yang sama -exp(μ+σberjemur[π(U-12)])

Makro
sumber
1
Berikut ini adalah +1 untuk Makro
Michael R. Chernick