Чтобы построить функцию плотности вероятности для логарифмически нормального распределения в R, мы можем использовать следующие функции:
- dlnorm(x, meanlog = 0, sdlog = 1) , чтобы создать функцию плотности вероятности.
- кривая (функция, от = NULL, до = NULL) для построения графика функции плотности вероятности.
Например, следующий код иллюстрирует, как построить функцию плотности вероятности для логарифмически нормального распределения со средним значением = 0 и стандартным отклонением = 1 (в логарифмической шкале), где ось x графика находится в диапазоне от 0 до 10:
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10)
![Логарифмический график нормального распределения в R](https://www.codecamp.ru/content/images/2020/04/logNormR1.png)
По умолчанию meanlog = 0 и sdlog = 1, что означает, что мы можем создать точно такой же график без указания этих параметров в функции dlnorm() :
curve(dlnorm(x), from=0, to=10)
![](https://www.codecamp.ru/content/images/2020/04/logNormR1.png)
Мы можем добавить заголовок, изменить метку оси Y, увеличить ширину линии и даже изменить цвет линии, чтобы сделать график более эстетичным:
curve(dlnorm(x), from=0, to=10,
main = 'Log Normal Distribution', #add title
ylab = 'Density', #change y-axis label
lwd = 2, #increase line width to 2
col = 'steelblue') #change line color to steelblue
![График нормального распределения журнала с заголовком в R](https://www.codecamp.ru/content/images/2020/04/logNormR2.png)
Мы также можем добавить на график более одной кривой, чтобы сравнить логарифмически нормальные распределения с различными стандартными отклонениями. Например, следующий код создает графики нормального распределения журнала с sdlog = .3, sdlog = .5 и sdlog = 1:
curve(dlnorm(x, meanlog=0, sdlog=.3), from=0, to=10, col='blue')
curve(dlnorm(x, meanlog=0, sdlog=.5), from=0, to=10, col='red', add=TRUE)
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10, col='purple', add=TRUE)
![](https://www.codecamp.ru/content/images/2020/04/logNormR3.png)
Мы можем добавить легенду к графику, используя функцию legend() , которая имеет следующий синтаксис:
легенда (x, y = NULL, легенда, заливка, col, bg, lty, cex)
куда:
- x, y: координаты x и y, используемые для позиционирования легенды.
- легенда: текст для легенды
- fill: цвет заливки внутри легенды
- col: список цветов, которые будут использоваться для линий внутри легенды.
- bg: цвет фона для легенды
- lty: стиль линии
- cex: размер текста в легенде
В нашем примере мы будем использовать следующий синтаксис для создания легенды:
#create density plots
curve(dlnorm(x, meanlog=0, sdlog=.3), from=0, to=10, col='blue')
curve(dlnorm(x, meanlog=0, sdlog=.5), from=0, to=10, col='red', add=TRUE)
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10, col='purple', add=TRUE)
#add legend
legend(6, 1.2, legend=c("sdlog=.3", "sdlog=.5", "sdlog=1"),
col=c("blue", "red", "purple"), lty=1, cex=1.2)
![Несколько логнормальных функций плотности на одном графике в R](https://www.codecamp.ru/content/images/2020/04/logNormR4.png)