Generazione di numeri casuali Log-Cauchy


11

Devo disegnare numeri casuali da una distribuzione log-cauchy che ha densità: Qualcuno può aiutarmi o indicarmi un libro / un documento che potrebbe mostrarmi come?

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

Risposte:


12

Una variabile ha una distribuzione log-cauchy se ha una distribuzione cauchy. Quindi, dobbiamo solo generare variabili casuali cauchy ed esponenziarle per ottenere qualcosa che sia distribuito log-cauchy.log ( X )Xlog(X)

Possiamo generare dalla distribuzione cauchy usando il campionamento di trasformazione inversa , il che dice che se si collegano uniformi casuali nel CDF inverso di una distribuzione, ciò che si ottiene ha quella distribuzione. La distribuzione cauchy con location e scale ha CDF:σμσ

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

è semplice invertire questa funzione per trovarla

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

Pertanto se allora ha una distribuzione cauchy con posizione e scale e ha una distribuzione log-cauchy. Alcuni codici da generare da questa distribuzione (senza usare :))U~Unioform(0,1)Y=μ+σabbronzatura[π(U-12)]μσexp(Y)Rrcauchy

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

Nota: poiché la distribuzione cauchy ha una coda molto lunga, quando li esponi su un computer potresti ottenere valori numericamente "infiniti". Non sono sicuro che ci sia qualcosa da fare al riguardo.

exp(μ+σabbronzatura[π(U-12)])


1
Ecco un +1 per Macro
Michael R. Chernick il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.