R 生成分布为e^x的随机数

R 生成分布为e^x的随机数,r,distribution,R,Distribution,有没有办法生成分布e^x的随机数,其中x在R中的某个范围内定义?你的问题不清楚,所以我假设你想把ex当作密度。范围(0,0.5)上的函数ex不是密度,因为要求密度的面积为1。但是,在任何指定的有限范围内,它可以按面积缩放,以将其转换为密度。在指定范围内积分ex将产生ex/0.6487212707001282作为有效密度(在舍入误差范围内) 然后,我们将密度从0积分到0的x≤ x≤ 0.5推导累积分布函数:F(x)=(ex-1)/0.6487212707001282 我们现在可以使用从该分布生成值

有没有办法生成分布e^x的随机数,其中x在R中的某个范围内定义?

你的问题不清楚,所以我假设你想把ex当作密度。范围(0,0.5)上的函数ex不是密度,因为要求密度的面积为1。但是,在任何指定的有限范围内,它可以按面积缩放,以将其转换为密度。在指定范围内积分ex将产生ex/0.6487212707001282作为有效密度(在舍入误差范围内)

然后,我们将密度从0积分到0的
x
≤ x≤ 0.5推导累积分布函数:F(x)=(ex-1)/0.6487212707001282

我们现在可以使用从该分布生成值。将CDF设置为均匀(0,1)随机数U,并求解x:

 x = ln(1 + 0.6487212707001282 * U)

因此,这不是一种分配。你在说什么范围?密度等于e^x,介于0到ln(2)和0之间。x的分布是什么?它是均匀的吗?范围是从0到0.5,但是有一个常数1/((e^0.5)-1)x的分布是均匀的,因为我只是在某一点上取条件分布。
exp(runif(n,0,0.5))
?将该常数保留为
exp(0.5)不是更好-1
?@BenBolker如果您想这样做,我会将其表示为
exp(上限)-exp(下限)
,以保持其完全通用性。我选择翻译它,这样OP就不会在生成很多这样的东西时一遍又一遍地对它进行评估。