缩放 numpy 指数随机生成器

Scaling numpy exponential random generator

我正在尝试创建服从指数分布的随机数。数字应介于 0 和 18353 之间。我使用以下代码:

np.random.exponential(2400, 400)

这意味着输出有 400 个数字,比例参数为 2400。但是,2400 是我通过绘制随机数估计的比例参数。

sns.kdeplot(np.random.exponential(2000, 400))
sns.kdeplot(np.random.exponential(2400, 400))
sns.kdeplot(np.random.exponential(2300, 400))

plt.legend([r"$\beta = 1$", 
            r"$\beta = 2$", 
            r"$\beta = 3$"])
plt.show()

有没有办法计算比例参数,以便它为我们提供特定范围内的数字?

您不能严格限制从指数分布中抽取的随机值的上限(见上面的评论)。
给定指数分布的 quantile formula(lambda = 1 / beta),您可以计算比例参数 beta,这样平均说 99.9% 的值小于 18353:

beta = -18353/np.log(1 - 0.999)
a = np.random.exponential(beta, 400)