Foro de debate

Generacion de Números aleatorios

Generacion de Números aleatorios

de Helena CB -
Número de respuestas: 3
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
En respuesta a Helena CB

Re: Generacion de Números aleatorios

de Manuel Muñoz Márquez -
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}$$


En respuesta a Helena CB

Re: Generacion de Números aleatorios

de Denis Espinosa -

# 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)
}