### Paul Johnson ### April 9, 2009 ###Andi Nye sent me a starter function that I fixed up. ### Basic idea: unifMean <- function(n) { plot(0, 0, type = "n", xlim = c(0,1), ylim = c(0,13.5), xlab = "Density", ylab = "f(x)") res = c() m = 500; a = 0; b = 1 for(i in 1:m) res[i] = mean(runif(n, a, b)) lines(density(res), lwd = 2) } unifMean(10) unifMean(100) unifMean(1000) ### Maybe I like this better ### Small function to get m means of n observations each unifMean <- function(n=100, m=100, a=0, b=1) { res <- replicate(m, mean(runif(n, a, b))) } x1 <- unifMean() x2 <- unifMean(100, 50, 0, 1) plot(0, 0, type = "n", xlim = c(0,1), ylim = c(0,13.5), xlab = "Density", ylab = "f(x)") lines(density(x2), lwd = 2) hist(x2, xlim=c(0,1),breaks=20, prob=T) lines(density(x2), lwd = 2) ### Same as plot(density(x2)) Nvalues <- c(5, 10, 50, 100, 500, 1000, 10000) myUs <- sapply(Nvalues, function(x) unifMean(n=x) ) plot(0, 0, type = "n", xlim = c(0,1), ylim = c(0,13.5), xlab = "Density", ylab = "f(x)") lines(density(myUs[,1]),lty=1) lines(density(myUs[,2]),lty=2) lines(density(myUs[,3]),lty=3) lines(density(myUs[,4]),lty=4) lines(density(myUs[,5]),lty=5) lines(density(myUs[,6]),lty=6) ### Also works to get a list of outcomes myUs <- lapply(Nvalues, function(x) unifMean(n=x) ) plot(0, 0, type = "n", xlim = c(0,1), ylim = c(0,13.5), xlab = "Density", ylab = "f(x)") lines(density(myUs[[1]])) lines(density(myUs[[2]])) plot(density(myUs[[1]])) lapply( myUs, function(x) lines(density(x))) plot(0, 0, type = "n", xlim = c(0,1), ylim = c(0,13.5), xlab = "Density", ylab = "f(x)") lapply( myUs, function(x) lines(density(x))) mydensities <- sapply( myUs, function(x) density(x))