numpy 标度指数随机发生器

vlurs2pr  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(103)

我试图创建遵循指数分布的随机数。数字应该在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()

有没有办法计算尺度参数,以便它给我们一个特定范围内的数字?

owfi6suc

owfi6suc1#

你不能严格限制从指数分布中提取的随机值的上限(见上面的评论)。
给定指数分布的分位数公式(lambda = 1 / beta),您可以计算尺度参数beta,以便平均而言,比方说99.9%的值小于18353:

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

相关问题