Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to simulate bimodal distribution?

Tags:

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)) 
like image 245
Amateur Avatar asked Jul 17 '12 20:07

Amateur


People also ask

How do you create a bimodal distribution?

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!

What is a real life example of a bimodal distribution?

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.

How can you explain 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.


1 Answers

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:

enter image description here

like image 76
Julius Vainora Avatar answered Oct 10 '22 20:10

Julius Vainora