Skip to content

Commit

Permalink
Merge branch 'newquestion-bayescoins'
Browse files Browse the repository at this point in the history
  • Loading branch information
dwcoder committed Sep 28, 2019
2 parents f36c802 + 6bc15cb commit 544ca6e
Show file tree
Hide file tree
Showing 3 changed files with 156 additions and 2 deletions.
Binary file modified src/QuantitativePrimer.pdf
Binary file not shown.
21 changes: 19 additions & 2 deletions src/QuantitativePrimer.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
% C: Increment with minor error corrections and additions
% When B is incrememted, C is reset to zero
% When A is incrememted, B and C is reset to zero
\newcommand{\docversion}{V1.1.5}
\newcommand{\docversion}{V1.2.0}
\begin{document}

%\doublespacing
Expand Down Expand Up @@ -783,6 +783,23 @@ \subsection{Phone interview, 1 hour}
\input{answers/drop20cards.tex}

\clearpage

\subsection{Face-to-face, 1 hour}

\begin{question}{bayescoins}
\index{questions!Bayes' law and coin flips}
You have a bag with 1000 coins in it.
One of them is a double headed coin, the other 999 are fair coins.
I pick one coin from the bag at random, and flip it ten times.
It comes up heads all ten times.
What is the probability that I have selected the double headed coin?
\end{question}


\clearpage
\input{answers/bayescoins.tex}


\section{Old friends}
Two questions stood out:
I got the \emph{Air Force One} question three times in 2014, and I got the \emph{Stick Breaking} question more than three times during 2017.\footnote{I never got \emph{Air Force One} in 2017, nor did I get \emph{Stick Breaking} in 2014. Questions seem to go in and out of fashion and there is evidence of cross-pollination.}
Expand Down Expand Up @@ -1644,7 +1661,7 @@ \subsection{Questions for them}
to foldernames?
\item What programming languages does the team use? R, Python, C++, Julia, Matlab?
For data analysis? For scripting? For production?
\item Is the team Bayesians, frequentists, or whatever gets the job done?
\item Is the team made up of Bayesians, frequentists, or whatever gets the job done?
\item What are the backgrounds of the other team members? What would someone with my background contribute?
\item Are modellers expected to write the code to implement their models, or is this handled by developers?
\item How are datasets accessed? SQL (Postgres, MySQL, MSSQL, sqlite), Hadoop, csvs, Excel, shared folders, or do people throw around USB sticks?
Expand Down
137 changes: 137 additions & 0 deletions src/answers/bayescoins.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
\begin{answer}{bayescoins}
This is another question that tests your knowledge of Bayes' law.
Let's define some notation to use.
Define $H$ as the event that a coin comes up head, and $T$ that a coin comes up tails, and let $10H$ denote getting ten heads from ten coin flips.
Let $C_{F}$ be the event where we select the fair coin from the bag, and $C_{R}$ the event that we select the rigged coin.
This is one of the simplest questions about Bayes' law as there is not much to unpack.
You want to know the probability of the rigged coin being selected, given you saw ten heads.
By rote application of Bayes' law:
\begin{align}
\label{eq:1000coins:bayeslaw1}
P( C_{R} \vert 10H)
&=
\frac{
P( 10H \vert C_{R} )
P( C_{R} )
}{
P( 10H \vert C_{R} )
P( C_{R} )
+
P( 10H \vert C_{F} )
P( C_{F} )
}
\text{.}
\end{align}
Consider
$P( 10H \vert C_{R} )$, the probability of getting ten heads in a row with the rigged coin.
Since this will happen with certainty
$P( 10H \vert C_{R} ) = 1$.
For the fair coin each flip is independent, so you have
$$P( 10H \vert C_{F} )=P( H \vert C_{F} )^{10}= ({1}/{2})^{10} = {1}/{1024}.$$
Since you picked te coin out of a bag of 1000 coins, the probability that you selected the rigged coin is
$P(C_{R}) = 1/1000$ and the probability that the coin you selected is fair is
$P(C_{F}) = 999/1000$.
You can substitute these into \eqref{eq:1000coins:bayeslaw1} to get
\begin{align*}
P( C_{R} \vert 10H)
&=
\frac{
(1)
\left( \frac{1}{1000} \right)
}{
(1)
\left( \frac{1}{1000} \right)
+
\left(\frac{1}{1024}\right)
\left(\frac{999}{1000}\right)
}
\\
&=
\frac{
1
}{
1
+
\left(\frac{999}{1024}\right)
}
\\
&=
\frac{
1
}{
\left(\frac{2023}{1024}\right)
}
\\
&=
\frac{1024}{2023}
\text{,}
\end{align*}
which is slightly more than $1/2$.

This question is so well known that your interviewer likely won't even let you finish it.
Once they see that you are on the right track they will move on to the next question.
My interviewer didn't care about the answer, but he wanted me to describe \eqref{eq:1000coins:bayeslaw1} in detail.
Since Bayes' law is just the application of conditional probability, you can derive it from first principles:
\begin{align}
\label{eq:1000coins:bayesexplain}
P( C_{R} \vert 10H)
&=
\frac{
P( 10H , C_{R} )
}{
P( 10H )
}
\end{align}
and even a frequentist will agree.
The nominator is the joint probability of ten heads and the rigged coin being selected, and it is easier to split this into another conditional probability:
\begin{align*}
P( 10H , C_{R} )
=
P( 10H \vert C_{R} ) p( C_{R} )
\text{.}
\end{align*}
Technically, we can also say
\begin{align*}
P( 10H , C_{R} )
=
P( C_{R} \vert 10H ) p( 10H )
\text{,}
\end{align*}
but this is not helpful, as it contains the quantity we are trying to solve for, $P( C_{R} \vert 10H )$, and will lead to circular reasoning.

You can expand denominator in
\eqref{eq:1000coins:bayesexplain}
using the law of total probability to consider all the possible ways you can see ten heads.
Since you only have two types of coins---either a fair coin or a rigged one---there are only two ways ten heads can happen:
\begin{align*}
P( 10H ) =
P( 10H \vert C_{R} )p(C_{R})
+
P( 10H \vert C_{F} )p(C_{F})
\text{.}
\end{align*}
If the interviewer wants you to explain even further, you can note that this is derived form the marginal probability
\begin{align*}
P( 10H ) =
P( 10H , C_{R} )
+
P( 10H , C_{F} )
\text{,}
\end{align*}
by applying the law of conditional probability to each of the terms.
Putting all this together yields \eqref{eq:1000coins:bayeslaw1}.

My interviewer used this Bayes' law question to test my handle on probability concepts.
It is easy to confuse these basic concepts, which is another reason for doing proper interview preparation.
Some interviewers ask this question and demand an ``intuitive'' solution that doesn't rely on algebraic manipulation.
In this case, you could opt for a visual explanation of Bayes' Law as discussed in answer \ref{a:bayeslawdisease}.
If that's not what your interviewer wants, use the following argument.
You know the probability of choosing the rigged coin is $1/1000$.
You also know the probability of getting ten heads from a fair coin is $1/2^{10} = 1/1024$.
These two events are about equally likely, meaning the probability that we have the double headed coin is about a half.
If you only had nine heads in a row, the fair coin would give a probability of $1/512 = 2/1024$.
That means the outcome of nine heads is about twice as likely with the fair coin as the probability of selecting the rigged coin from the bag.
So the odds of ${fair}{:}{rigged}$ are $2{:}1$, leading you to assign a probability of about $1/3$ to the rigged coin being selected.
%TODO: could link this up to section on gambling mathematics
\end{answer}

0 comments on commit 544ca6e

Please sign in to comment.