I have the following code to generate bimodal distribution but when I graph the histogram. I don't see the 2 modes. I am wondering if there's something wrong with my code.
mu1 <- log(1) mu2 <- log(10) sig1 <- log(3) sig2 <- log(3) cpct <- 0.4 bimodalDistFunc <- function (n,cpct, mu1, mu2, sig1, sig2) { y0 <- rlnorm(n,mean=mu1, sd = sig1) y1 <- rlnorm(n,mean=mu2, sd = sig2) flag <- rbinom(n,size=1,prob=cpct) y <- y0*(1 - flag) + y1*flag } bimodalData <- bimodalDistFunc(n=100,cpct,mu1,mu2, sig1,sig2) hist(log(bimodalData))
Merging Two Processes or Populations. In some cases, combining two processes or populations in one dataset will produce a bimodal distribution. Each of the underlying conditions has its own mode. Combine them and, voilà, two modes!
Often bimodal distributions occur because of some underlying phenomena. For example, the number of customers who visit a restaurant each hour follows a bimodal distribution since people tend to eat out during two distinct times: lunch and dinner. This underlying human behavior is what causes the bimodal distribution.
A bimodal distribution has two modes. In other words, the outcome of two processes with different distributions are combined in one set of data. It is also known as double-peaked distribution. For example, data distribution of two shifts production data in a manufacturing plant.
The problem seems to be just too small n
and too small difference between mu1
and mu2
, taking mu1=log(1)
, mu2=log(50)
and n=10000
gives this:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With