我正在尝试生成从对数正态分布中获取的10000个随机数,其相关的正态分布具有均值= 0.3和std.开发.在MATLAB中= 0.05.
我正在使用内置lognrnd功能.
我的尝试是:
R = lognrnd(0.3,0.05,10000,1)
然而,当我绘制的直方图R使用hist(R),相关的情节是正常的,不正常的日志.
我搞砸了哪里?如果平均值= 0.3和标准.开发.= 0.05的正态分布,不应该生成的对数正态数具有均值= 0.3和std.dev = 0.05?
多谢你们.
您生成的数字实际上来自对数正态分布.Plot看起来与您的参数相似.比较hist(R)有hist(log(R))-形状几乎相同.
至于均值和偏差,请查看lognrnd文档:
mu and sigma are the mean and standard deviation, respectively,
of the associated normal distribution.
Run Code Online (Sandbox Code Playgroud)
因此,生成的数字预计会有不同的均值和偏差.
编辑:我不确定Matlab是否允许您直接指定对数正态分布参数,但您可以从另一个参数中导出一组参数.假设M和V是对数正态变量的期望参数,您可以计算mu并sigma使用以下公式:
x = 1 + V / M^2
sigma = sqrt(log(x))
mi = log(M / sqrt(x))
Run Code Online (Sandbox Code Playgroud)
请参阅维基百科以获得相反的转换.