【问题标题】:How to generate random numbers with a specified lognormal distribution in R?如何在R中生成具有指定对数正态分布的随机数?
【发布时间】:2011-12-24 21:11:45
【问题描述】:

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

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

【问题讨论】:

标签: r random distribution


【解决方案1】:

rlnorm 函数:

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

更一般地,R 中的分布通常以d(ensity)、p(robability)、q(uantile)、r(andom) 形式提供,这些字母首先出现,然后是特定分布stem: norm, lnorm, unif, gamma, ... 等等。他们的帮助页面将包含参数的详细信息,如果使用 weibull 或其他约定的分发,这可能是必不可少的没有完全标准化(事实上)。

【讨论】:

  • 感谢您的帮助。我使用上面的代码生成了一些数字,当我回算几何平均值 (GM) 和几何标准偏差 (GSD) 时,GM 略有偏差。我想知道这是否正常。这是计算: x describe(log(x)) 平均值为 1.99 。 GM = exp(1.99)=7.32 SD= .86 和 GSD = 2.36
  • 您知道样本大小是 20,对吧?如果您想测试收敛性,请尝试 1e8 的样本大小。
  • 如果您想查看均值为 20 和 sd 2.5 的对数正态分布的抽样分布,请尝试以下简单代码:plot(exp( rowMeans( log( matrix(rlnorm(20000, log(20), log(2.5)), ncol=20 )) )) )
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 2012-07-14
  • 2017-05-18
  • 2014-07-01
  • 2014-01-06
相关资源
最近更新 更多