如何在 R 中绘制对数正态分布
在本文中,我们将了解如何在 R 编程语言中绘制对数正态分布。对数正态分布是对数呈正态分布的随机变量的连续概率分布。在概率上,如果随机变量 X 服从对数正态分布,则 Y = ln(X) 服从正态分布。
为了绘制对数正态分布,我们需要两个函数,即dlnorm()和curve()。
dlnorm(x, meanlog = 0, sdlog = 1)
Parameters:
- x – vector of quantiles
- meanlog – mean of the distribution on the log scale with a default value of 0.
- sdlog – standard deviation of the distribution on the log scale with default values of 1.
curve(expr, from = NULL, to = NULL)
Parameters:
- function – The name of a function, or a call or an expression written as a function of x which will evaluate to an object of the same length as x.
- from – the start range over which the function will be plotted.
- to – the end range over which the function will be plotted.
示例 1:
在第一个示例中,让我们使用均值 0 和标准差 1 在 0 到 25 的范围内使用曲线和 dlnorm函数绘制对数正态分布。
R
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=25)
R
curve(dlnorm(x), from=0, to=25)
R
curve(dlnorm(x, meanlog=0, sdlog=.3),
from=0, to=25, col='blue')
curve(dlnorm(x, meanlog=1, sdlog=.5),
from=0, to=25, col='red', add=TRUE)
curve(dlnorm(x, meanlog=2, sdlog=1),
from=0, to=25, col='purple', add=TRUE)
输出:
示例 2:
我们知道默认情况下均值和标准差值分别为 0 和 1,因此我们可以在不指定 meanlog 和 sd log 参数的情况下绘制上述函数,结果将是相同的。
R
curve(dlnorm(x), from=0, to=25)
输出:
示例 3:
我们还可以绘制具有不同均值 std 的多个对数正态分布。 dev 和范围通过为每个分布指定不同的颜色,如下所示。
R
curve(dlnorm(x, meanlog=0, sdlog=.3),
from=0, to=25, col='blue')
curve(dlnorm(x, meanlog=1, sdlog=.5),
from=0, to=25, col='red', add=TRUE)
curve(dlnorm(x, meanlog=2, sdlog=1),
from=0, to=25, col='purple', add=TRUE)
输出: