Subscribe to this blog

Follow by Email

Search This Blog

Stirling Numbers of the Second Kind: a Puzzle

Q: An urn contains 20 uniquely identifiable balls. How many draws with replacement needs to be done before you are \(95\%\) sure that you have seen all of them?A Book on Statistical Inference

A: A benign looking question, but its closed form solution is fairly complex and quite unlike a typical counting puzzle. First lets learn a useful tool: Stirling numbers of the second kind. It is a complete name and they all go together. It takes in two arguments say \((k,n)\). This is represented as \(S(k,n)\) or also as \({k\brace n }\). It represents the number of subsets of a set of size \(k\) which has a size of \(n\). For example, if a set is given as \({a,b,c}\) then the number of sets of size 2 is \(\{\{a,b\},\{b,c\},\{a,c\}\}\). So we phrase this as
$$
S(3,2) = 3
$$
The generic expression for \(S(k,n)\) is given by
$$
S(k,n) = \frac{1}{n!}\sum_{i=0}^{n}(-1)^{i}{{n}\choose{i}}(n-i)^{n}
$$

The present problem is similar to starting with \(k\) balls, dropping then in \(n\) bins and evaluating the probability that all bins have at least 1 ball. If we can estimate this probability in terms of \(k,n\), then we can set it to \(95\%\) and solve for \(k\) (if it is feasible!).

To start with, each ball can go into any one of the \(n\) bins. So, there are \(n^{k}\) ways to distribute \(k\) balls into \(n\) bins. This is the total number of ways to distribute the balls, the denominator in our probability estimate. The numerator is where things get tricky. Lets say we have just 3 balls that we want to drop off in 2 bins. For a given set of 3 balls, there are \(S(3,2) = 3\) ways to drop them and for each of those ways, there is exactly one way to put them all into the bins such that all bins have at least one ball. So the sought probability can be stated as
$$
P(\text{All Balls Drawn at least once}) = \frac{{k \brace n}}{n^{k}}
$$
This looks good overall as we now have a closed form expression for the probability. We could set it to \(95\%\) and try and solve for \(k\). However, it is quite difficult in practice without a simulation. Instead we can try something different to put an upper bound on the probability and work off that. For this we use the second tool: Markov's Inequality. It states as follows
$$
P(X \ge a) \le \frac{E(X)}{a}
$$
where \(X\) is the number of balls to draw and \(E(X)\) is the expectation of \(X\).
The expectation is easier to compute and think off. From the first pull we will definitely get one unique ball. In the second pull there is a \(\frac{19}{20}\) chance that you will get another unique ball. So the expected number of draws to get two unique balls is \(1 + \frac{20}{19}\). Extending this out, we arrive at the expected number of draws to get at 20 unique balls as
$$
E(X) = 1 + \frac{20}{19} + \frac{20}{18} + \ldots + \frac{20}{1}
$$
Using R, you can compute the above fairly easily as follows

The result yields \(\approx 72\). In order to choose \(a\) we reason as follows: if \(a\) were indeed the number needed to be \(95\%\) sure that all balls have been counted, then the probability of requiring \(\ge a\) would be \(5\%\). Plugging that into the Markov inequality gives us
$$
a \le \frac{72}{0.05} \approx 1440
$$
Note that this is an extremely large bound and not as tight as we would want it to be. This is for a later write up. In the meanwhile you can try and simulate it through using the following R code

which gives an approximate range of 50 to 60 pulls
If you are looking to buy some books in probability here are some of the best books to learn the art of Probability

Discovering Statistics Using R
This is a good book if you are new to statistics & probability while simultaneously getting started with a programming language. The book supports R and is written in a casual humorous way making it an easy read. Great for beginners. Some of the data on the companion website could be missing.

A Course in Probability Theory, Third Edition
Covered in this book are the central limit theorem and other graduate topics in probability. You will need to brush up on some mathematics before you dive in but most of that can be done online

Discovering Statistics Using R
This is a good book if you are new to statistics & probability while simultaneously getting started with a programming language. The book supports R and is written in a casual humorous way making it an easy read. Great for beginners. Some of the data on the companion website could be missing.

Linear Algebra (Dover Books on Mathematics)
An excellent book to own if you are looking to get into, or want to understand linear algebra. Please keep in mind that you need to have some basic mathematical background before you can use this book.

Linear Algebra Done Right (Undergraduate Texts in Mathematics)
A great book that exposes the method of proof as it used in Linear Algebra. This book is not for the beginner though. You do need some prior knowledge of the basics at least. It would be a good add-on to an existing course you are doing in Linear Algebra.

Follow @ProbabilityPuzIf you are looking to learn time series analysis, the following are some of the best books in time series analysis.

Introductory Time Series with R (Use R!)
This is good book to get one started on time series. A nice aspect of this book is that it has examples in R and some of the data is part of standard R packages which makes good introductory material for learning the R language too. That said this is not exactly a graduate level book, and some of the data links in the book may not be valid.

Econometrics
A great book if you are in an economics stream or want to get into it. The nice thing in the book is it tries to bring out a oneness in all the methods used. Econ majors need to be up-to speed on the grounding mathematics for time series analysis to use this book. Outside of those prerequisites, this is one of the best books on econometrics and time series analysis.