Hola a todos!!
Mi consulta es para generar números aleatorios con distribución exponencial generalizada [ G(t) = (1 − e−{λt} )^2 ].
He estado trabajando en un proyecto, pero venía haciéndolo con rexp, y mis resultados no son los esperados, la diferencia es mucha, y el saber como hacerlo es lo que me falta para terminar.
Espero puedan ayudarme!!! Gracias
Hola Helena:
Si G es la función de distribución, y dado que es fácilmente invertible, el procedimiento:
u <- runif(1)
H(u)
siendo H la función inversa de G, genera valores aleatorios de tu distribución,
Saludos.
P.D.: $$H(u) = - \frac{\log(1 - \sqrt u)}{\lambda}$$
Muchísimas gracias, Manuel. Con esto ya termino mi simulación :)
Saludos!!
Saludos!!
# m media
#debes incluir las librerias foreach y doParallel, ya que este metodo esta escrito en paralello
# x cantidad a generar
invExponencial<-function(m)
{
numeroa<-runif(x)
c<-iniciaCluster()
writeLines("Generacion de observaciones aleatorias por el metodo de la trasformada inversa de la funcion de distribucion exponencial")
l<- length(numeroa)
x<-foreach(i=1:l, .combine = c) %dopar%
{
z<- -1*m*log(numeroa[i])
writeLines(paste("Se genero la observacion aleatoria: ",toString(z),sep=" "))
z
}
x
stopCluster(c)
}