How to use lognrnd?

12 views (last 30 days)
I'm trying to create a random log-normal distributions for a vector . I have already read the lognrnd document as other people who ask a similar question but I'm a bit confused since the document is a bit confusing for me. So, I understand to use lognrnd as R = lognrnd(mu,sigma), both mu and sigma has to be mean and standard deviation of the normal distribution, let us call it Y. The corresponding lognormal distribution of X is Y. To use lognrnd from its given X (lognormal distribution) mean (m) and X variance (v), we should find the mu and sigma first by using these formula as
mu = log((m^2)/sqrt(v+m^2));
sigma = sqrt(log(v/(m^2)+1));
Now, this is clear for me but the confusing part in the document is the following sentence "If X is distributed lognormally with parameters µ and σ, then log(X) is distributed normally with mean µ and standard deviation σ"
Should not be if X is distributed lognormally with parameters m and v since µ and σ represent only the normal distribution?
I have listed what I'm trying to do just to be clear about my understanding and for confirmation about how to estimate random distribution from given mean and standard deviation of the log normal distribution:
m = 14; % mean of the lognormal
std_d = 7; % standard deviaiton of the lognormal
v = std_d^2; % varaiance of the log
mu = log((m.^2)./ sqrt(v+m.^2)); % mu is the normal mean
sigma = sqrt(log(v./(m.^2)+1)); % sigma is the normal standard deviation
R = lognrnd(mu,sigma,10^6,1);
Thanks for your help and reading this.

Accepted Answer

Torsten on 11 Mar 2019
Edited: Torsten on 11 Mar 2019
It is common to say that X is lognormally distributed with parameters mu and sigma if it has the pdf
f(x) = 1/(x*sigma*sqrt(2*pi))*exp(-(log(x)-mu)^2/(2*sigma^2))
If you now calculate the pdf of log(X), you'll see that it equals
g(y) = 1/(sigma*sqrt(2*pi))*exp(-(y-mu)^2/(2*sigma^2))
Thus log(X) is normally distributed with parameters mu and sigma.
To calculate 10^6 random numbers from a lognormally distributed random variable with mean 14 and standard deviation 7, your code from above is correct.
Fernanda Suarez Jaimes
Fernanda Suarez Jaimes on 12 Mar 2020
Do you know how to run a regression of a time series with lognrnd?

Sign in to comment.

More Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!