如何在R中生成具有指定对数正态分布的随机数?

7

我想从一个几何均值为10,几何标准差为2.5的对数正态分布中获取20个随机生成的数字。

应该使用哪个R函数来完成这个任务?


2
这篇关于RLNORM函数的解释对我非常有帮助,包括其中提供的代码。 - Christopher
1个回答

19

rlnorm函数:

rlnorm(20, log(10), log(2.5))

R中的分布通常以d(密度)、p(概率)、q(分位数)、r(随机)形式提供,这些字母首先出现,然后是特定分布的词根:normlnormunifgamma等等。它们的帮助页面将包含参数的具体信息,如果使用weibull或其他分布,其中的惯例不完全标准化,则这些信息可能是必要的。


谢谢您的帮助。我使用上述代码生成了一些数字,但是当我回算几何平均数(GM)和几何标准偏差(GSD)时,GM略有偏差。我想知道这是否正常。以下是计算公式:x<-rlnorm(20, log(10),log(2.5))> describe(log(x)) 平均值为1.99。GM = exp(1.99)=7.32,标准差为0.86,GSD=2.36。 - user1009166
4
你意识到样本量只有20个,对吧?如果你想测试收敛性,试试样本量为1亿。 - JD Long
2
如果你想查看平均值为20,标准差为2.5的对数正态分布的抽样分布,则尝试使用以下简单代码:plot(exp( rowMeans( log( matrix(rlnorm(20000, log(20), log(2.5)), ncol=20 )) )) ) - IRTFM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接