On Fri, 14 Mar 2008, Anup Nandialath wrote: > Dear friends, > > Please find below the code that I have employed for a rejection sampler > to draw from asymmetric laplace distributions. I was wondering if this > code can be written more efficiently? Are there more efficient ways of > drawing random numbers from asymmetric laplace distributions?? >
Usually. It really helps to "provide commented, minimal, self-contained, reproducible code" as you are asked, but you have not shown what dal() is. If dal() is **vectorized**, then a vectorized approach like this will often work well: rout <- matrix(0,n) rejected <- seq(n) k <- n while( k > 0 ){ rout[ rejected ] <- rnorm( k ) ratio <- dal(val=rout[ rejected ], p=p)/(s*dnorm(rout[ rejected ])) alpha <- runif( k , min=0, max=1 ) rejected <- rejected[ alpha >= ratio ] k <- length( rejected ) } Obviously, I cannot test this without dal(). HTH, Chuck p.s. Putting a limit on iterations is usually a good idea, too. > Thanks in advance for your help and have a great weekend. > > Regards > > Anup > > *********************************** > ral <- function(n,p,s=3) > { > rout <- matrix(0,n) > for(i in 1:n) > { > repeat > { > root <- rnorm(1) > ratio <- dal(val=root, p=p)/(s*dnorm(root)) > alpha <- runif(1, min=0, max=1) > if(alpha<ratio) > {break} > } > rout[i,] <- root > } > return(rout)} > > > > --------------------------------- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > Charles C. Berry (858) 534-2098 Dept of Family/Preventive Medicine E mailto:[EMAIL PROTECTED] UC San Diego http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.