MONT 105Q -- Mathematical Journeys 

 

Evidence for the Central Limit Theorem -- a family of probability histograms 

 

March 18, 2016 

 

Consider the box [and make  ndraws with replacement.  

 

(This is analogous to choosing a random sample from a large population where  
`/`(3, 38) of the individuals are 1's and the other `/`(35, 38)  are 0's.  
Note:  If the population 

is large, then the distinction between sampling with or without replacement 

is not too significant.)   

 

Question:  What can we say about the distribution of the means of these 

samples?  How does the size of the sample affect what is going on?  

 

Note that the sum of the draws will equal the number of 1's out of the 35 draws,  

so it has a binomial distribution with p = `/`(3, 38) and  Then the  

mean will equal that number of 1's divided by n. 

 

We will study our question by drawing the probability histograms for the means  

of the draws.  These will be histograms where the areas of the bars tell us the  

probability of getting the corresponding value of the sample mean.  What do these  

histograms look like as  nincreases?    

 

Here is some code (for the computer algebra system Maple we use in 

many mathematics courses) in that computes the binomial probabilities 

and generates the corresponding probability histograms: 

 

>
 

> Y := proc (n) options operator, arrow; [seq(`*`(binomial(n, i), `*`(`^`(`/`(3, 38), i), `*`(`^`(`/`(35, 38), `+`(n, `-`(i)))))), i = 0 .. n)] end proc; -1
 

> X := proc (n) options operator, arrow; [seq(`/`(`*`(i), `*`(n)), i = 0 .. n)] end proc; -1
 

> PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
PH := proc (Xlist, Ylist) local i, start, n, pl; with(plots); n := `+`(nops(Xlist), `-`(1)); pl := {}; for i to `+`(n, 1) do pl := `union`(pl, {[t, `*`(n, `*`(Ylist[i])), t = `+`(`/`(`*`(`+`(i, `-`(1)...
 

>
 

 

With  n = 2draws.  Since p = `/`(3, 38)is rather small, the probability of a mean of  0 is much larger than the probability 

that the mean is  `/`(1, 2)or      The values 0, `/`(1, 2), `*`(2, `/`(1, 2))are the midpoints of the intervals at the bases of the boxes.  The  

heights of the boxes here are normalized so that the total area of the histogram is 1, as we discussed in a problem from  

Problem Set 1 earlier. 

 

> PH(X(2), Y(2)); 1
 

Plot_2d
 

 

With  n = 10draws.  Now a mean of  0  is still the likeliest, but a mean of or or `/`(3, 10)is not negligible. 

> PH(X(10), Y(10)); 1
 

Plot_2d
 

 

With  n = 20draws -- now the likeliest mean is not zero any more(!) 

 

> PH(X(20), Y(20)); 1
 

Plot_2d
 

 

With  n = 30draws. At this point, notice that  the probability histogram is starting to look more "normal" in shape(!)
 

> PH(X(30), Y(30)); 1
 

Plot_2d
 

  

Finally, with  n = 100draws:
 

> PH(X(100), Y(100)); 1
 

Plot_2d
 

Now we find an approximating normal curve to this probability histogram.  The mean is `/`(3, 38) = average 

of original box.  The SD is the SD of the box multiplied by the reciprocal of the square root of the 

sample size:   We define that shifted, scaled normal curve, and plot it in red  

together with the N = 100 probability histogram to see how closely it matches: 

 

> sigma := `/`(`*`(sqrt(`*`(`/`(3, 38), `/`(35, 38)))), `*`(sqrt(100))); -1; mu := `/`(3, 38); -1
 

> A := PH(X(100), Y(100)); -1
 

> B := plot(`/`(`*`(exp(`+`(`-`(`*`(`^`(`+`(x, `-`(mu)), 2), `*`(`/`(`+`(`*`(2, `*`(`^`(sigma, 2))))))))))), `*`(sqrt(`+`(`*`(2, `*`(Pi, `*`(`^`(sigma, 2)))))))), x = -.2 .. .2, color = red); -1
 

> display(A, B, view = [-.2 .. .2, 0 .. 15]); 1
 

Plot_2d
 

>