On Sun, Feb 19, 2012 at 08:39:13PM -0800, Ryan Murphy wrote: > Hello, > > Is there a way to create random numbers that fit a certain specified > requirement other than distributional characteristics. > In particular, I would like to create simulated income distributions with > certain gini coefficient
Hello: The gini coefficient does not determine the distribution uniquely, so we have to make a choice of the distribution. According to the article http://en.wikipedia.org/wiki/Gini_coefficient we have (A) The gini coefficient for the log-normal distribution is 2 \Phi(sigma/sqrt(2)) - 1 (B) The gini coefficient for a finite sample y_i, i=1, ..., n is in R's syntax 2*sum(seq(length=n)*sort(y))/(n*sum(y)) - (n+1)/n This suggests the following. 1. Generate a sample y with gini coefficient G using (A). G <- 0.3 n <- 1000 sigma <- sqrt(2) * uniroot(function(x) { pnorm(x) - (G + 1)/2 }, c(0, 1e10))$root y <- exp(rnorm(n, sd=sigma)) 2. Check the gini coefficient of the sample using (B). 2*sum(seq(length=n)*sort(y))/(n*sum(y)) - (n+1)/n [1] 0.305003 Hope this helps. Petr Savicky. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.