# Simulation of Lognormal distribution

This post is a try about how yo simulate lognormal distribution in R. Lognormal distribution is used a lot in cumulative data (e.x. counting), which is very similar with normal distribution except x should be larger than 0. For instance, the number of schools, the number of students. But I always have no idea about how to parameterized this distribution. I’ll update this post as I learn more about lognormal distribution…

## Simulate lognomal distibution

### Simulation Study 1

This study is to simulate lognormal density distribution based on mean and sd of depedent variable (Y). My simulated mean of y is 891, and sd is 490, N (sample size) is 200000. Then use the formular below:

``````mu  = log(m^2/phi) # log mean
sigma = sqrt(log(1+v/m^2)) # log sd
``````

It could calculate the log mean and log standard deviation for lognormal distribution.

``````set.seed(20171108)

#### Give Y mean and Y sd, simluate lognormal distribution data.
m = 891 # geometric mean
sd = 490 # geometric sd
v = sd ^ 2
phi = sqrt(v + m^2)

mu    = log(m^2/phi) # log mean
sigma = sqrt(log(1+v/m^2)) # log sd

y <- rlnorm(n = 200000, mu, sigma) %>% round(0)
m.sim <- mean(y) # should be close to 891
sd.sim <- sd(y) # should be close to 490

row1 <- c(m, mu,m.sim)
row2 <- c(sd, sigma,sd.sim)
table <- rbind(row1, row2)
colnames(table) <- c("Original", "Log", "Simulated")
rownames(table)  <- c("Mean", "SD")
kable(table)
``````

This is the original, log and simulated mean and sd. It could be easily found that simulated ones are very closed to original.

OriginalLogSimulated
Mean8916.660225891.1468
SD4900.514041490.4396
``````plot(density(y))
``````

From the density plot below, we can see the mean of X is also close to 891. ##### Jihong Zhang, PhD
###### Postdoctoral Research Fellow

My research interests focus on the Bayesian Diagnostic Classification Models (DCMs) and other psychometric modeling, as applied in the psychological, educational, and social sciences. I seek to improve the utility of advanced psychometric modeling and provide easy-to-use tools or software for researchers.