>
 

MATH 375 -- Probability and Statistics 1 

Central Limit Theorem Demonstration 

December 1, 2009 

 

We consider the distribution of the means of  

random samples of size  n  from a given distribution, 

described by a given pdf   

  

> read
 

> `assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
`assign`(MP, proc (PDF, a, b, n, addNormal) local i, Means, MH, NP, CDF, mu, sigma; `assign`(mu, evalf(Int(`*`(y, `*`(PDF(y))), y = a .. b))); `assign`(sigma, sqrt(`+`(evalf(Int(`*`(`^`(y, 2), `*`(PDF...
 

>
 

 

First, let's consider a uniform distribution on the interval from 2 to 4, and n = 100.  The procedure MP 

takes 300 random samples of size 100 from this distribution and plots a histogram of the means. 

 

> `assign`(Uniform, proc (y) options operator, arrow; `/`(1, 2) end proc); 1
 

proc (y) options operator, arrow; `/`(1, 2) end proc (1)
 

> MP(Uniform, 2, 4, 100, true); 1
 

Plot_2d
 

 

Second, let's do the same sort of experiment with an exponential distribution. 

 

> `assign`(Exponential, proc (y) options operator, arrow; exp(`+`(`-`(y))) end proc); 1
 

proc (y) options operator, arrow; exp(`+`(`-`(y))) end proc (2)
 

> MP(Exponential, 0, 6, 20, true); 1
 

Plot_2d
 

 

Next let's take a rather different-looking pdf:
 

> `assign`(DifferentPDF, proc (y) options operator, arrow; `+`(`*`(`/`(3, 2), `*`(`^`(y, 2)))) end proc); 1
 

proc (y) options operator, arrow; `+`(`*`(`/`(3, 2), `*`(`^`(y, 2)))) end proc (3)
 

> int(DifferentPDF(y), y = -1 .. 1); 1
 

1 (4)
 

>
 

 

Again, we take random samples of size  n  from this distribution and 

plot a histogram of their means.  As  n  increases, note how the distribution 

of the sample means becomes closer and closer to a normal(!) 

 

> MP(DifferentPDF, -1, 1, 30, true); 1
 

Plot_2d
 

>
 

.909495465902 (5)
 

> `+`(1, `-`(exp(-6.))); 1
 

.9975212478 (6)
 

>