# Re: [R] Is my understanding of rlnorm correct?

From: phil colbourn <philcolbourn_at_gmail.com>
Date: Sun, 04 May 2008 23:15:24 +1000

I think I have a poor understanding of this distribution but, if I understand your answer albeit roughly, then to get a mean of 100 I need to select a mu and derive the sd using sqrt(2*(log(100)-mu)).

That helps a lot.

My application is in modeling/simulating failure/repair processes which I have read are typically log-normal. I should now be able to get the result i expect to get.

Thanks again.

On Sun, May 4, 2008 at 3:11 PM, Berwin A Turlach <berwin_at_maths.uwa.edu.au> wrote:

> G'day Phil,
>
> On Sun, 4 May 2008 14:05:09 +1000
> phil colbourn <philcolbourn_at_gmail.com> wrote:
>
> > rlnorm takes two 'shaping' parameters: meanlog and sdlog.
> >
> > meanlog would appear from the documentation to be the log of the
> > mean. eg if the desired mean is 1 then meanlog=0.
>
> These to parameters are the mean and the sd on the log scale of the
> variate, i.e. if you take the logarithm of the produced numbers then
> those values will have the given mean and sd.
>
> If X has an N(mu, sd^2) distribution, then Y=exp(X) has a log-normal
> distribution with parameters mu and sd.
>
> R> set.seed(1)
> R> y <- rlnorm(10000, mean=3, sd=2)
> R> summary(log(y))
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> -4.343 1.653 2.968 2.987 4.355 10.620
> R> mean(log(y))
>  2.986926
> R> sd(log(y))
>  2.024713
>
>
> > I noticed on wikipedia lognormal page that the median is exp(mu) and
> > that the mean is exp(mu + sigma^2/2)
> >
> > http://en.wikipedia.org/wiki/Log-normal_distribution
>
> Where mu and sigma are the mean and standard deviation of a normal
> variate which is exponentiated to obtain a log normal variate. And
> this holds for the above example (upto sampling variation):
>
> R> mean(y)
>  143.1624
> R> exp(3+2^2/2)
>  148.4132
>
> > So, does this mean that if i want a mean of 100 that the meanlog
> > value needs to be log(100) - log(sd)^2/2?
>
> A mean of 100 for the log-normal variate? In this case any set of mu
> and sd for which exp(mu+sd^2/2)=100 (or mu+sd^2/2=log(100)) would do
> the trick:
>
> R> mu <- 2
> R> sd <- sqrt(2*(log(100)-mu))
> R> summary(rlnorm(10000, mean=mu, sd=sd))
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> 4.010e-04 1.551e+00 7.075e+00 1.006e+02 3.344e+01 3.666e+04
> R> mu <- 4
> R> sd <- sqrt(2*(log(100)-mu))
> R> summary(rlnorm(10000, mean=mu, sd=sd))
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> 0.9965 25.9400 56.0200 101.2000 115.5000 3030.0000
> R> mu <- 1
> R> sd <- sqrt(2*(log(100)-mu))
> R> summary(rlnorm(10000, mean=mu, sd=sd))
> Min. 1st Qu. Median Mean 3rd Qu. Max.
> 9.408e-05 4.218e-01 2.797e+00 8.845e+01 1.591e+01 7.538e+04
>
> Note that given the variation we would expect in the mean in the last
> example, the mean is actually "close enough" to the theoretical value
> of 100:
>
> R> sqrt((exp(sd^2)-1)*exp(2*mu + sd^2)/10000)
>  36.77435
>
> HTH.
>
> Cheers,
>
> Berwin
>
> Berwin A Turlach Tel.: +65 6515 4416 (secr)
> Dept of Statistics and Applied Probability +65 6515 6650 (self)
> Faculty of Science FAX : +65 6872 3919
> National University of Singapore
> 6 Science Drive 2, Blk S16, Level 7 e-mail: statba_at_nus.edu.sg
> Singapore 117546 http://www.stat.nus.edu.sg/~statba<http://www.stat.nus.edu.sg/%7Estatba>
>

```--
Phil

" Someone else has solved it and posted it on the internet for free "

[[alternative HTML version deleted]]

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help