Log-Cauchy Generación de números aleatorios

10

Necesito dibujar números aleatorios de una distribución log-cauchy que tiene densidad: ¿Alguien puede ayudarme o señalarme un libro / documento que pueda mostrarme cómo?

F(X;μ,σ)=1Xπσ[1+(lnorte(X)-μσ)2].
usuario13317
fuente

Respuestas:

11

Una variable tiene una distribución log-cauchy si tiene una distribución cauchy. Entonces, solo necesitamos generar variables aleatorias cauchy y exponerlas para obtener algo que esté distribuido log-cauchy.log ( X )XIniciar sesión(X)

Podemos generar a partir de la distribución cauchy usando muestreo de transformación inversa , que dice que si conecta uniformes aleatorios en el CDF inverso de una distribución, entonces lo que obtiene tiene esa distribución. La distribución cauchy con ubicación y scale tiene CDF:σμσ

F(X)=1πarctan(X-μσ)+12

es sencillo invertir esta función para encontrar que

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

Por lo tanto, si entonces tiene una distribución cauchy con ubicación y scale y tiene una distribución log-cauchy. Algún código para generar a partir de esta distribución (sin usar :))UUnorteyoFormetro(0 0,1)Y=μ+σbronceado[π(U-12)]μσExp(Y)Rrcauchy

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

Nota: dado que la distribución cauchy tiene una cola muy larga, cuando las expones en una computadora, puedes obtener valores numéricamente "infinitos". No estoy seguro de que haya algo que hacer al respecto.

También tenga en cuenta que si tuviera que hacer un muestreo de transformación inversa utilizando la función de cuantil log-cauchy directamente, tendría el mismo problema, ya que, después de hacer el cálculo, en realidad termina con el mismo acto -Exp(μ+σbronceado[π(U-12)])

Macro
fuente
1
Aquí hay un +1 para Macro
Michael R. Chernick