我们有几种从拉普拉斯分布中抽取随机样本的方法。有没有从左截断拉普拉斯分布中采样的有效方法?逆变换采样是一个明显的解决方案,但也许有更好的解决方案?
从截断的拉普拉斯分布高效随机生成
机器算法验证
随机生成
截断
拉普拉斯分布
2022-04-09 18:57:52
2个回答
如果左截断点低于中位数,一种相当有效的直接方法是只生成一个拉普拉斯随机变量,然后如果它落在截断点的左侧就拒绝它并生成另一个,重复直到生成一个落在上面截断点。如果拉普拉斯随机变量生成算法平均需要代均匀变量生成一次拉普拉斯变量,则截断拉普拉斯算法平均需要代均匀变量,其中是截断点,因此无论截断点如何,(平均而言)都不需要比原始算法多两倍的均匀变量生成 - 并且如果截断点完全进入下尾,例如,在第 10 个百分位分布,几乎与原始算法一样有效。
如果左截断点高于中位数,那么采样分布的指数分布就等于截断点的下限,所以那里有很多有效的算法。
如果您的拉普拉斯随机变量生成算法使用逆变换采样,另一种方法很有用,它是移动和重新缩放初始变量以落入范围,其中是发生左截断的拉普拉斯分布的百分位数,然后照常使用逆变换,不考虑截断。生成的算法比原始算法需要更多的加法和乘法,因此本质上与未截断分布的逆变换方法一样有效。
如果您需要极高的效率并且不介意增加代码复杂性,您可以将这种类似 ziggurat 的拒绝采样技术直接应用于标准拉普拉斯分布,并使用移位和缩放来生成具有任意参数的分布。
其它你可能感兴趣的问题