2015-09-01 101 views
2

使用R,我想从平均值为50的指数分布生成100个随机数。我想将这些数字存储在一个向量中。我认为我做得对,但我无法在互联网上找到任何东西来验证我的代码。这里是我的代码:从指数分布生成随机数

vector <- rexp(100,50) 
+1

好吧,'rexp'使用'rate'作为第二个参数,'mean = 1/rate',所以'rexp(100,1./50.0)'可能是你想要的。你有没有尝试装箱并绘制它? –

+0

感谢您的回复!我绘制了rexp(100,50)的直方图,然后用rexp(100,1/50)绘制了直方图。我正在阅读R的帮助部分,它确实讨论了平均值= 1/rate。我很难理解为什么mean = 1/rate? – mapleleaf

+0

>我很难理解为什么mean = 1/rate? –

回答

0

最好的方法是使用你自己的功能。反CDF方法是大多数连续随机变量的最佳选择。

首先产生0和1

U=runif(1) 

下一页之间的随机均匀值的随机指数变量将使用逆CDF方法

x=-1/lambda * ln(1-U) 

内置功能都不错,但做遵循这个公式数学自己让你知道你产生了多少个随机变量来得到你的分布后的一个随机变量。你会发现对于一些发行版,比如普通日志,有更有效的方法。