缩放 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)
我正在尝试创建服从指数分布的随机数。数字应介于 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)