逆逻辑分布很容易找到,所以您可以使用逆变换抽样。基本算法如下:
for each random variate x ~ logistic
generate a random variate y ~ Uniform(0, 1)
x := F^-1 (y)
F^-1是logistic函数的反向累积分布函数,或者说是所需分布的反向累积分布函数。 大多数编程语言都可以通过某种随机函数生成介于0和1之间的均匀分布变量。
以下是一些 Python 代码,可以生成1000个来自 logistic 分布的随机变量:
from random import random
import math
import pylab
loc, scale = 0, 1
randvars = []
for i in range(1000):
x = random()
y = loc + scale * math.log(x / (1-x))
randvars.append(y)
pylab.hist(randvars)
物流分布是两个Gumbel分布的差,其变量是指数变量的负对数或等效地 log(u/(1.0 - u))
,其中 u
是均匀变量。