从拉普拉斯分布生成随机数

use*_*190 2 statistics r

我一直在尝试从双指数(拉普拉斯)分布中生成随机数。我现在可以再写代码了。任何帮助,将不胜感激。下面的代码是我写的。

rlaplace = function(u,a,b){
    u = c(runif(ns))
    for(i in 1:ns){
        if(u[i] <= 0.5){
            X = a+b*log(2*u)
        } else{
            X = a-b*log(2*(1-u))
        }
    }
    X
}
z1 = rlaplace(u,a,b)
Run Code Online (Sandbox Code Playgroud)

jub*_*uba 6

概率分布CRAN任务视图,有一些已经实现了拉普拉斯分布,特别是几个包Runuran

因此,您应该能够安装distr,例如,并执行以下操作:

library(distr)
D <- DExp(rate = 1) 
r(D)(1)
Run Code Online (Sandbox Code Playgroud)

来自DExp-class帮助页面示例的代码。