로그 코시 난수 생성


11

밀도가있는 로그-코치 분포에서 난수를 그려야합니다. 누구든지 나를 도울 수 있거나 방법을 보여줄 수있는 책 / 종이를 가리킬 수 있습니까?

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

답변:


12

코시 분포가 있으면 변수 에 로그 코시 분포가 있습니다. 따라서, 우리는 코시 랜덤 변수를 생성하고이를 로그 코시 분포 된 것을 얻기 위해 지수화해야합니다.로그 ( X )Xlog(X)

우리는 역변환 샘플링을 사용하여 코시 분포에서 생성 할 수 있습니다. 즉, 분포 의 역 CDF에 임의의 유니폼을 꽂으면 그 분포가 나옵니다. 위치가 이고 스케일이 cauchy 분포 에는 CDF가 있습니다.σμσ

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

이 함수를 반전 시켜서

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

따라서 이면 는 위치가 이고 스케일이 이고 에 로그가 분포 된 분포가 있습니다. 이 배포판에서 생성 할 일부 코드 ( : 를 사용하지 않고 ))Y = μ + σUUniform(0,1)μσexp(Y)Y=μ+σtan[π(U12)]μσexp(Y)Rrcauchy

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

참고 : 코시 분포는 매우 길기 때문에 컴퓨터에서 지수 분포를 확장하면 수치 적으로 "무한"한 값을 얻을 수 있습니다. 그것에 대해해야 할 일이 확실하지 않습니다.

또한 log-cauchy Quantile 함수를 직접 사용하여 역변환 샘플링을 수행하는 경우 계산을 수행 한 후에도 실제로 같은 행동을하게되므로 동일한 문제가 발생합니다.exp(μ+σtan[π(U12)])


1
다음은 Macro에 대한 +1입니다.
Michael R. Chernick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.