Tạo số ngẫu nhiên Log-Cauchy


10

Tôi cần vẽ các số ngẫu nhiên từ phân phối log-cauchy có mật độ: Bất cứ ai có thể giúp tôi ra hoặc chỉ cho tôi một cuốn sách / giấy có thể chỉ cho tôi làm thế nào?

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

Câu trả lời:


11

Một biến có phân phối log-cauchy nếu có phân phối cauchy. Vì vậy, chúng ta chỉ cần tạo ra các biến ngẫu nhiên khó hiểu và lũy thừa chúng để có được một cái gì đó được phân phối log-cauchy.Xlog(X)

Chúng ta có thể tạo từ phân phối xảo quyệt bằng cách sử dụng lấy mẫu biến đổi nghịch đảo , nói rằng nếu bạn cắm đồng phục ngẫu nhiên vào CDF nghịch đảo của phân phối, thì những gì bạn nhận được có phân phối đó. Phân phối khó hiểu với vị trí và tỷ lệ có CDF:μσ

F(x)=1πarctan(xμσ)+12

Thật đơn giản để đảo ngược chức năng này để tìm thấy rằng

F1(y)=μ+σtan[π(y12)]

Do đó, nếu thì có phân phối cauchy với vị trí và scale và có phân phối log-cauchy. Một số mã để tạo từ phân phối này (không sử dụng :))UUniform(0,1)Y=μ+σtan[π(U12)]μσexp(Y)Rrcauchy

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

Lưu ý: do phân phối cauch rất dài, khi bạn lũy thừa chúng trên máy tính, bạn có thể nhận được các giá trị là "vô hạn". Tôi không chắc có gì để làm về điều đó.

Cũng lưu ý rằng nếu bạn thực hiện lấy mẫu biến đổi nghịch đảo bằng cách sử dụng trực tiếp hàm lượng tử log-cauchy, bạn sẽ gặp vấn đề tương tự, vì sau khi thực hiện phép tính, bạn thực sự kết thúc với hành động tương tự -exp(μ+σtan[π(U12)])


1
Đây là +1 cho Macro
Michael R. Chernick
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.