Como traçar uma distribuição log normal em r
Para traçar a função de densidade de probabilidade para uma distribuição log-normal em R, podemos usar as seguintes funções:
- dlnorm(x, meanlog = 0, sdlog = 1) para criar a função de densidade de probabilidade.
- curve(function, from = NULL, to = NULL) para traçar a função de densidade de probabilidade.
Por exemplo, o código a seguir ilustra como traçar uma função de densidade de probabilidade para uma distribuição lognormal com média = 0 e desvio padrão = 1 (em uma escala logarítmica) onde o eixo x do gráfico vai de 0 a 10:
curve(dlnorm(x, meanlog=0, sdlog=1), from=0, to=10)
Por padrão, meanlog = 0 e sdlog =1, o que significa que podemos produzir exatamente o mesmo gráfico sem especificar estes parâmetros na função dlnorm() :
curve(dlnorm(x), from=0, to=10)
Podemos adicionar um título, alterar o rótulo do eixo Y, aumentar a largura da linha e até mesmo alterar a cor da linha para tornar o gráfico mais esteticamente agradável:
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
Também podemos adicionar múltiplas curvas ao gráfico para comparar distribuições lognormais com diferentes desvios padrão. Por exemplo, o código a seguir cria gráficos de distribuição normal com sdlog = 0,3, sdlog = 0,5 e 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)
Podemos adicionar uma legenda ao gráfico usando a função legend() , que assume a seguinte sintaxe:
legenda(x, y=NULL, legenda, preenchimento, col, bg, lty, cex)
Ouro:
- x, y: as coordenadas xey usadas para posicionar a legenda
- legenda: o texto a ser colocado na legenda
- fill: preenche a cor dentro da legenda
- col: a lista de cores a serem usadas nas linhas dentro da legenda
- bg: a cor de fundo da legenda
- lty: estilo de linha
- cex: tamanho do texto na legenda
Em nosso exemplo usaremos a seguinte sintaxe para criar uma legenda:
#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)