├── LICENSE
├── README.md
├── Chapter 6 - Multiple Random Variables.ipynb
├── Chapter 1 - Joint and Conditional Probability.ipynb
├── Chapter 3 - PMF, PDF and CDF.ipynb
└── Chapter 2 - Bayes' Theorem.ipynb
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 WeijieChen-MacroAnalyst
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [Last updated in Jan 2021]
2 | # Probability Theory
3 | A Quick Introduction to Probability Theory. This tutorial aims to refresh all most important concepts in probability theory with simple examples. Probability theory is the key foundation of statistics, econometrics and data science. Make you understand all the details in the example, use these examples as your references when encounter new problems.
4 |
5 | ## Prerequiste
6 | Since this is not an academic course, there is no sophisticated derivation, only practical examples, you need don't any prerequiste except freshman level mathematics.
7 |
8 | ## Content (updating)
9 | [Lecture 1 - Joint and Conditional Probability](https://nbviewer.jupyter.org/github/WeijieChen-MacroAnalyst/Probability_Theory/blob/master/Chapter%201%20-%20Joint%20and%20Conditional%20Probability.ipynb)
10 | [Lecture 2 - Bayes' Theorem](https://github.com/WeijieChen-MacroAnalyst/Probability_Theory/blob/master/Chapter%202%20-%20Bayes'%20Theorem.ipynb)
11 | [Lecture 3 - PMF, PDF and CDF](https://nbviewer.jupyter.org/github/MacroAnalyst/Probability_Theory/blob/master/Chapter%203%20-%20PMF%2C%20PDF%20and%20CDF.ipynb)
12 | [Lecture 4 - Important Distributions](https://nbviewer.jupyter.org/github/MacroAnalyst/Probability_Theory/blob/master/Chapter%204%20-%20Most%20Important%20Discrete%20and%20Continuous%20Distributions.ipynb)
13 | [Lecture 5 - Joint Distributions](https://nbviewer.jupyter.org/github/MacroAnalyst/Probability_Theory/blob/master/Chapter%205%20-%20Joint%20Distributions.ipynb)
14 |
--------------------------------------------------------------------------------
/Chapter 6 - Multiple Random Variables.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "toc": true
7 | },
8 | "source": [
9 | "
"
13 | ]
14 | },
15 | {
16 | "cell_type": "markdown",
17 | "metadata": {},
18 | "source": [
19 | "# Joint Probability"
20 | ]
21 | },
22 | {
23 | "cell_type": "markdown",
24 | "metadata": {},
25 | "source": [
26 | "**Joint probability** and **conditional probability** are closely intertwined, however elusive for beginners, sometimes even experienced data scientists are hard to tell the subtlety. \n",
27 | "\n",
28 | "We will tackle the joint probability first. "
29 | ]
30 | },
31 | {
32 | "cell_type": "markdown",
33 | "metadata": {},
34 | "source": [
35 | "The joint probability is defined as\n",
36 | "\n",
37 | "$$\n",
38 | "P(A\\cap B) = P(A)P(B)\n",
39 | "$$\n",
40 | "\n",
41 | "when we talking about joint probability, we implicitly assume that\n",
42 | "\n",
43 | "1. $A$ and $B$ are independent events.\n",
44 | "2. $A$ and $B$ happen in the same time.\n",
45 | "\n",
46 | "For instance, I throw a dice (event A) and you also throw a dice (event B) in the mean time. The joint probability of obtaining two $1$'s is $\\frac{1}{6}\\times\\frac{1}{6}$. \n",
47 | "\n",
48 | "If $A$ and $B$ are not independent, then it is pointless to talk about joint probability, because they are affection each other's results. In other words, if $A$ and $B$ are dependent, when $A$ happens, the probability of $B$ happening is no longer $P(B)$ anymore, hence $P(AB) = P(A)P(B)$ won't hold in this case."
49 | ]
50 | },
51 | {
52 | "cell_type": "markdown",
53 | "metadata": {},
54 | "source": [
55 | "## Example 1"
56 | ]
57 | },
58 | {
59 | "cell_type": "markdown",
60 | "metadata": {},
61 | "source": [
62 | "What is the joint probability of rolling the number $6$ twice in a fair six-sided dice?"
63 | ]
64 | },
65 | {
66 | "cell_type": "markdown",
67 | "metadata": {},
68 | "source": [
69 | "
\n",
70 | "Throwing twice dice at a time are independent events, \n",
71 | "\n",
72 | "$\\text{Event A}$ = $\\text{Obtaining number 6}$\n",
73 | "\n",
74 | "$$\n",
75 | "P(A\\cap A)=\\frac{1}{6}\\frac{1}{6}= \\frac{1}{36}\n",
76 | "$$\n",
77 | "
"
78 | ]
79 | },
80 | {
81 | "cell_type": "markdown",
82 | "metadata": {},
83 | "source": [
84 | "## Example 2"
85 | ]
86 | },
87 | {
88 | "cell_type": "markdown",
89 | "metadata": {},
90 | "source": [
91 | "What is the joint probability of obtaining 3 times head followed by 3 times tail in a sequence of coin tosses?"
92 | ]
93 | },
94 | {
95 | "cell_type": "markdown",
96 | "metadata": {},
97 | "source": [
98 | "
"
106 | ]
107 | },
108 | {
109 | "cell_type": "code",
110 | "execution_count": 1,
111 | "metadata": {},
112 | "outputs": [
113 | {
114 | "data": {
115 | "text/plain": [
116 | "0.015625"
117 | ]
118 | },
119 | "execution_count": 1,
120 | "metadata": {},
121 | "output_type": "execute_result"
122 | }
123 | ],
124 | "source": [
125 | ".5**6"
126 | ]
127 | },
128 | {
129 | "cell_type": "markdown",
130 | "metadata": {},
131 | "source": [
132 | "## Example 3"
133 | ]
134 | },
135 | {
136 | "cell_type": "markdown",
137 | "metadata": {},
138 | "source": [
139 | "What is the joint probability that you pick a card which is larger than 4 and less than $10$ and in the meanwhile a $diamond$?"
140 | ]
141 | },
142 | {
143 | "cell_type": "markdown",
144 | "metadata": {},
145 | "source": [
146 | "
\n",
147 | "$\\text{Event A}$ = $\\text{Getting card in (4\n",
148 | "$\\text{Event B}$ = $\\text{Getting a diamond}$.\n",
149 | "\n",
150 | "There are five cards in range $(4, 10)$, probability is $\\frac{5}{52}$, considering four suits $\\frac{5\\times 4}{52}$, and thirteen cards for each suit.\n",
151 | "\n",
152 | "$P(A\\cap B) = P(A)P(B) = \\frac{5\\times 4}{52}\\frac{13}{52}$\n",
153 | "
"
154 | ]
155 | },
156 | {
157 | "cell_type": "code",
158 | "execution_count": 2,
159 | "metadata": {},
160 | "outputs": [
161 | {
162 | "data": {
163 | "text/plain": [
164 | "0.09615384615384616"
165 | ]
166 | },
167 | "execution_count": 2,
168 | "metadata": {},
169 | "output_type": "execute_result"
170 | }
171 | ],
172 | "source": [
173 | "(5*4/52)*(13/52)"
174 | ]
175 | },
176 | {
177 | "cell_type": "markdown",
178 | "metadata": {},
179 | "source": [
180 | "# Conditional Probability"
181 | ]
182 | },
183 | {
184 | "cell_type": "markdown",
185 | "metadata": {},
186 | "source": [
187 | "Conditional probability is more complicated, denoted as\n",
188 | "\n",
189 | "$$\n",
190 | "P(B|A)= \\frac{P(A\\cap B)}{P(A)}=\\frac{P(A\\cap B)}{P(A\\cap B)+P(A\\cap B^C)}\n",
191 | "$$"
192 | ]
193 | },
194 | {
195 | "cell_type": "markdown",
196 | "metadata": {},
197 | "source": [
198 | "which reads, the probability of $B$ given $A$. Here we treat $A$ as a fact, it either happens or assumed to happen. $B^C$ is the complement event of $A$, such that $P(B^C)+P(B) =1 $"
199 | ]
200 | },
201 | {
202 | "cell_type": "markdown",
203 | "metadata": {},
204 | "source": [
205 | "## Example 1"
206 | ]
207 | },
208 | {
209 | "cell_type": "markdown",
210 | "metadata": {},
211 | "source": [
212 | "What is the probability of drawing a card, given which is a $\\text{diamond}$, that is also larger than 4 and less than $10$?"
213 | ]
214 | },
215 | {
216 | "cell_type": "markdown",
217 | "metadata": {},
218 | "source": [
219 | "Note how we rephrase the question than Example 3 in last section. When we are talking about conditional probability, the sample space is usually different from joint probability, here the sample space changes from all deck to $\\text{diamonds}$."
220 | ]
221 | },
222 | {
223 | "cell_type": "markdown",
224 | "metadata": {},
225 | "source": [
226 | "
\n",
227 | "$\\text{Event A}$ = $\\text{Getting card in (4\n",
228 | "$\\text{Event B}$ = $\\text{Getting a diamond}$.
\n",
229 | " \n",
230 | "There are $13$ cards of diamonds, this is the new sample space. And in this new sample space, we count how many numbers there are in $(4,\\ 10)$. There are 5 numbers. Thus\n",
231 | "\n",
232 | "$P(A|B) = \\frac{5}{13}$\n",
233 | "
"
234 | ]
235 | },
236 | {
237 | "cell_type": "code",
238 | "execution_count": 3,
239 | "metadata": {},
240 | "outputs": [
241 | {
242 | "data": {
243 | "text/plain": [
244 | "0.38461538461538464"
245 | ]
246 | },
247 | "execution_count": 3,
248 | "metadata": {},
249 | "output_type": "execute_result"
250 | }
251 | ],
252 | "source": [
253 | "5/13"
254 | ]
255 | },
256 | {
257 | "cell_type": "markdown",
258 | "metadata": {},
259 | "source": [
260 | "Then what is the joint probability of $P(A\\cap B)$? Using multiplication rule $P(A\\cap B) = P(A|B)P(B)$."
261 | ]
262 | },
263 | {
264 | "cell_type": "code",
265 | "execution_count": 4,
266 | "metadata": {},
267 | "outputs": [
268 | {
269 | "data": {
270 | "text/plain": [
271 | "0.09615384615384616"
272 | ]
273 | },
274 | "execution_count": 4,
275 | "metadata": {},
276 | "output_type": "execute_result"
277 | }
278 | ],
279 | "source": [
280 | "5/13*1/4"
281 | ]
282 | },
283 | {
284 | "cell_type": "markdown",
285 | "metadata": {},
286 | "source": [
287 | "The joint probability only makes sense is because drawing a $\\text{diamond}$ and in $(4 Example 2"
302 | ]
303 | },
304 | {
305 | "cell_type": "markdown",
306 | "metadata": {},
307 | "source": [
308 | "We roll a fair die twice and obtain two numbers $X_1= a$ and $X_2= b$. Given $a+b=7$, what is the probability that $a=4$ or $b=4$?"
309 | ]
310 | },
311 | {
312 | "cell_type": "markdown",
313 | "metadata": {},
314 | "source": [
315 | "
\n",
316 | "Our goal is to find out $P(a=4|a+b=7)$ and $P(b=4|a+b=7)$.\n",
317 | "\n",
318 | "$\\text{Event A}$ : $a = 4$ or $b = 4$ \n",
319 | "$\\text{Event B}$ : $a+b = 7$\n",
320 | "\n",
321 | "There are only two possibilities of obtaining a $7$ if either $a$ or $b$ equals $4$, that are $(3, 4)$ and $(4, 3)$. And two dice have $6^2 = 36$ combinations, thus $P(A\\cap B) = \\frac{2}{36}$.\n",
322 | "\n",
323 | "To obtain $7$ there are $6$ combination: $(1, 6), (2, 5), (3,4), (4,3), (5,2),(6, 1)$, this is actually the sample space, so we get\n",
324 | "\n",
325 | "$$\\frac{P(A\\cap B)}{P(B)}= \\frac{2}{36}\\Big/\\frac{6}{36}=\\frac{1}{3}$$\n",
326 | "
"
327 | ]
328 | },
329 | {
330 | "cell_type": "markdown",
331 | "metadata": {},
332 | "source": [
333 | "## Example 3"
334 | ]
335 | },
336 | {
337 | "cell_type": "markdown",
338 | "metadata": {},
339 | "source": [
340 | "Consider a family that has two children. We are interested in the children's genders. The sample space of gender is $S=\\{(G,G),(G,B),(B,G),(B,B)\\}$. Also assume that all four possible outcomes are equally likely.\n",
341 | "\n",
342 | "1. What is the probability that both children are girls given that the first child is a girl?\n",
343 | "2. We ask the father: \"Do you have at least one daughter?\" He responds \"Yes!\". Given this extra information, what is the probability that both children are girls? In other words, what is the probability that both children are girls given that we know at least one of them is a girl?\n"
344 | ]
345 | },
346 | {
347 | "cell_type": "markdown",
348 | "metadata": {},
349 | "source": [
350 | "
\n",
351 | "Since we have sample space explicitly presented, the conditional probability is simply counting events\n",
352 | "\n",
353 | "The first question's sample space is $\\{(G,G),(G,B)\\}$, the answer is $1/2$.\n",
354 | "\n",
355 | "The second question's sample space is $\\{(G,G),(G,B),(B,G)\\}$, the answer is $1/3$.\n",
356 | "
"
357 | ]
358 | },
359 | {
360 | "cell_type": "markdown",
361 | "metadata": {},
362 | "source": [
363 | "# Independence"
364 | ]
365 | },
366 | {
367 | "cell_type": "markdown",
368 | "metadata": {},
369 | "source": [
370 | "Let me define two events:\n",
371 | "\n",
372 | "$\\text{Event A}$: $\\text{Obtaining head when tossing a coin}$ \n",
373 | "$\\text{Event B}$: $\\text{Raining today}$ \n",
374 | "\n",
375 | "What is $P(A|B)$? Unless you believe weather will affect your winning odds of gambling, the sober answer is that it doesn't have a conditional probability."
376 | ]
377 | },
378 | {
379 | "cell_type": "markdown",
380 | "metadata": {},
381 | "source": [
382 | "
\n",
383 | "Apparently, for independent events, conditional probability reduces to $P(A|B) = P(A)$. Formally derived from\n",
384 | "\n",
385 | "$$\n",
386 | "\\begin{aligned}\n",
387 | "P(A | B) &=\\frac{P(A \\cap B)}{P(B)} \\\\\n",
388 | "&=\\frac{P(A) P(B)}{P(B)} \\\\\n",
389 | "&=P(A)\n",
390 | "\\end{aligned}\n",
391 | "$$\n",
392 | "That's exactly why we mentioned in the beginning that joint probability only makes sense in the context of probabilistic independence.\n",
393 | "
"
394 | ]
395 | },
396 | {
397 | "cell_type": "markdown",
398 | "metadata": {},
399 | "source": [
400 | "## Independence vs Disjoint"
401 | ]
402 | },
403 | {
404 | "cell_type": "markdown",
405 | "metadata": {},
406 | "source": [
407 | "Independence and disjoint are entirely disparate concepts. **Disjoint events** mean if $A$ happens, then $B$ certainly can't happen, which exactly assures they are dependent."
408 | ]
409 | },
410 | {
411 | "cell_type": "markdown",
412 | "metadata": {},
413 | "source": [
414 | "Formally, consider two events $A$ and $B$, with $P(A) \\neq 0$ and $P(B) \\neq 0$. \n",
415 | "\n",
416 | "We can show that if $A$ and $B$ are disjoint, we have\n",
417 | "\n",
418 | "$$\n",
419 | "P(A \\cap B)=\\varnothing \\neq P(A) P(B)\n",
420 | "$$\n",
421 | "\n",
422 | "Thus, $A$ and $B$ are not independent."
423 | ]
424 | },
425 | {
426 | "cell_type": "markdown",
427 | "metadata": {},
428 | "source": [
429 | "# Law of Total Probability"
430 | ]
431 | },
432 | {
433 | "cell_type": "markdown",
434 | "metadata": {},
435 | "source": [
436 | "If $B_{1}, B_{2}, B_{3}, \\cdots B_k$ are partitions of the sample space $S$, then for any event $A$ we have\n",
437 | "\n",
438 | "$$\n",
439 | "P(A)=\\sum_{i=1}^k P\\left(A \\cap B_{i}\\right)=\\sum_{i=1}^k P\\left(A | B_{i}\\right) P\\left(B_{i}\\right)\n",
440 | "$$\n",
441 | "\n",
442 | "This is called **law of total probability**."
443 | ]
444 | },
445 | {
446 | "cell_type": "markdown",
447 | "metadata": {},
448 | "source": [
449 | "## Example 1"
450 | ]
451 | },
452 | {
453 | "cell_type": "markdown",
454 | "metadata": {},
455 | "source": [
456 | "A person has undertaken a mining job. The probabilities of completion of job on time with and without rain are $0.42$ and $0.90$ respectively. If the probability that it will rain is $0.45$, then determine the probability that the mining job will be completed on time."
457 | ]
458 | },
459 | {
460 | "cell_type": "markdown",
461 | "metadata": {},
462 | "source": [
463 | "Total probability to some extent means that you have to consider all scenarios, in this case raining $R$ and not raining $R^C$."
464 | ]
465 | },
466 | {
467 | "cell_type": "markdown",
468 | "metadata": {},
469 | "source": [
470 | "
"
13 | ]
14 | },
15 | {
16 | "cell_type": "code",
17 | "execution_count": 13,
18 | "metadata": {},
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np\n",
22 | "import matplotlib.pyplot as plt\n",
23 | "plt.style.use('ggplot')"
24 | ]
25 | },
26 | {
27 | "cell_type": "markdown",
28 | "metadata": {},
29 | "source": [
30 | "# Concept of Bayes' Theorem"
31 | ]
32 | },
33 | {
34 | "cell_type": "markdown",
35 | "metadata": {},
36 | "source": [
37 | "The **Bayes' Theorem** is occasionally called **inverse probability theorem**. As the name suggests, once we have known $p(A|B)$, the Bayes' Theorem can tell us something about $P(B|A)$. "
38 | ]
39 | },
40 | {
41 | "cell_type": "markdown",
42 | "metadata": {},
43 | "source": [
44 | "To see how Bayes' Theorem is derived, start from conditional probability\n",
45 | "\n",
46 | "$$\n",
47 | "P(A|B)P(B)=P(A\\cap B)\\\\\n",
48 | "P(B|A)P(A)=P(A\\cap B)\n",
49 | "$$"
50 | ]
51 | },
52 | {
53 | "cell_type": "markdown",
54 | "metadata": {},
55 | "source": [
56 | "Equate them and arrange, we obtain the famous Bayes' Theorem:\n",
57 | "\n",
58 | "$$\n",
59 | "P(B|A) = \\frac{P(A|B)P(B)}{P(A)}\n",
60 | "$$"
61 | ]
62 | },
63 | {
64 | "cell_type": "markdown",
65 | "metadata": {},
66 | "source": [
67 | "If there are $k$ partitions of $B$, $P(A)$ can bee explicitly written in total probability form\n",
68 | "\n",
69 | "$$\n",
70 | "P(B_i|A)=\\frac{P(A|B_i)P(B_i)}{\\sum_{i=0}^k P(A|B_i)P(B_i)}\n",
71 | "$$"
72 | ]
73 | },
74 | {
75 | "cell_type": "markdown",
76 | "metadata": {},
77 | "source": [
78 | "Since Bayes' Theorem can be somewhat counter-intuitive, it might take some time to grasp the tricky logic. We will go through some examples, strongly advise to study them thoroughly."
79 | ]
80 | },
81 | {
82 | "cell_type": "markdown",
83 | "metadata": {},
84 | "source": [
85 | "## Example 1"
86 | ]
87 | },
88 | {
89 | "cell_type": "markdown",
90 | "metadata": {},
91 | "source": [
92 | "A certain disease affects about 1 out of 10,000 people. There is a test to check whether the person has the disease. The test is quite accurate. In particular, we know that\n",
93 | "\n",
94 | "1. the probability that the test result is positive (suggesting the person has the disease), given that the person does not have the disease, is only 2 percent;\n",
95 | "\n",
96 | "2. the probability that the test result is negative (suggesting the person does not have the disease), given that the person has the disease, is only 1 percent.\n",
97 | "\n",
98 | "A random person gets tested for the disease and the result comes back positive. What is the probability that the person has the disease?"
99 | ]
100 | },
101 | {
102 | "cell_type": "markdown",
103 | "metadata": {},
104 | "source": [
105 | "
\n",
106 | "$\\text{Event A}$: $\\text{the test result is positive}$ \n",
107 | "$\\text{Event B}$: $\\text{the person has the disease}$\n",
108 | "\n",
109 | "\n",
110 | "\n",
111 | "$$P(B|A) = \\frac{P(A|B)P(B)}{P(A|B)P(B)+P(A|B^c)P(B^c)}= \\frac{(1- .01)\\times.0001}{(1- .01)\\times.0001+.02\\times(1-.0001)}$$\n",
112 | "
"
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 1,
118 | "metadata": {},
119 | "outputs": [
120 | {
121 | "name": "stdout",
122 | "output_type": "stream",
123 | "text": [
124 | "The probability that a person have positive results and having the disease is 0.493%.\n"
125 | ]
126 | }
127 | ],
128 | "source": [
129 | "pB_A =( .99*.0001)/(.99*.0001+.02*.999)\n",
130 | "print('The probability that a person have positive results and having the disease is %.3f%%.'%(pB_A*100))"
131 | ]
132 | },
133 | {
134 | "cell_type": "markdown",
135 | "metadata": {},
136 | "source": [
137 | "
\n",
138 | "The result comes with a surprise. But if you dwell on it a while, you will notice an obvious fact that there are much more 'healthy people'(people who do not have this type of disease) i.e. $9999:1$. Even if you got to guess, you should consider this fact, which we call **prior**. It means even if a person has a positive result, yet he is still likely to be from healthy group.
\n",
139 | "
"
140 | ]
141 | },
142 | {
143 | "cell_type": "markdown",
144 | "metadata": {},
145 | "source": [
146 | "## Example 2"
147 | ]
148 | },
149 | {
150 | "cell_type": "markdown",
151 | "metadata": {},
152 | "source": [
153 | "Suppose a patient has an unidentified lesion in the liver, that internist recommend abdominal MRI for firmer evidences to exclude critical diseases. The sensitivity (true positive) rate of MRI is $92\\%$, the prevalence of critical liver disease is $.06\\%$. \n",
154 | "\n",
155 | "The question is if the result is positive, how likely this patient has critical liver disease?"
156 | ]
157 | },
158 | {
159 | "cell_type": "markdown",
160 | "metadata": {},
161 | "source": [
162 | "
"
168 | ]
169 | },
170 | {
171 | "cell_type": "code",
172 | "execution_count": 3,
173 | "metadata": {},
174 | "outputs": [
175 | {
176 | "name": "stdout",
177 | "output_type": "stream",
178 | "text": [
179 | "The probability that a person who has symptoms truly have critical liver disease is 0.686%.\n"
180 | ]
181 | }
182 | ],
183 | "source": [
184 | "pB_A = (0.92*.0006)/(.92*.0006+.08*.9994)\n",
185 | "print('The probability that a person who has symptoms truly have critical liver disease is %.3f%%.'%(pB_A*100))"
186 | ]
187 | },
188 | {
189 | "cell_type": "markdown",
190 | "metadata": {},
191 | "source": [
192 | "## Example 3"
193 | ]
194 | },
195 | {
196 | "cell_type": "markdown",
197 | "metadata": {},
198 | "source": [
199 | "A factory produces an item using three different brands of machines—$\\text{A}$, $\\text{B}$, and $\\text{C}$—which account for $20\\%$, $30\\%$, and $50\\%$ of output respectively. Of the items produced by machine $\\text{A}$, $5\\%$ are defective; similarly, $3\\%$ of machine $\\text{B}$'s items and $1\\%$ of machine $\\text{C}$'s are defective. If a randomly selected item is defective, what is the probability it was produced by machine $\\text{C}$?"
200 | ]
201 | },
202 | {
203 | "cell_type": "markdown",
204 | "metadata": {},
205 | "source": [
206 | "
"
215 | ]
216 | },
217 | {
218 | "cell_type": "code",
219 | "execution_count": 5,
220 | "metadata": {},
221 | "outputs": [
222 | {
223 | "name": "stdout",
224 | "output_type": "stream",
225 | "text": [
226 | "The probability that a defective product made by machine C is 20.833%.\n"
227 | ]
228 | }
229 | ],
230 | "source": [
231 | "pB_A = .5*.01/(.2*.05+.3*.03+.5*.01)\n",
232 | "print('The probability that a defective product made by machine C is %.3f%%.'%(pB_A*100))"
233 | ]
234 | },
235 | {
236 | "cell_type": "markdown",
237 | "metadata": {},
238 | "source": [
239 | "## Example 4"
240 | ]
241 | },
242 | {
243 | "cell_type": "markdown",
244 | "metadata": {},
245 | "source": [
246 | "Bag I contains 4 white and 6 black balls while Bag II contains 4 white and 3 black balls. One ball is drawn randomly from one of the bags and it is found to be black. Find the probability that it was drawn from Bag I."
247 | ]
248 | },
249 | {
250 | "cell_type": "markdown",
251 | "metadata": {},
252 | "source": [
253 | "
"
259 | ]
260 | },
261 | {
262 | "cell_type": "code",
263 | "execution_count": 6,
264 | "metadata": {},
265 | "outputs": [
266 | {
267 | "name": "stdout",
268 | "output_type": "stream",
269 | "text": [
270 | "The probability that the ball is from Bag I given it is black is 58.33333%.\n"
271 | ]
272 | }
273 | ],
274 | "source": [
275 | "pB_A = 6/10*.5/(6/10*.5+3/7*.5)\n",
276 | "print('The probability that the ball is from Bag I given it is black is %.5f%%.'%(pB_A*100))"
277 | ]
278 | },
279 | {
280 | "cell_type": "markdown",
281 | "metadata": {},
282 | "source": [
283 | "## Example 5"
284 | ]
285 | },
286 | {
287 | "cell_type": "markdown",
288 | "metadata": {},
289 | "source": [
290 | "A man is known to speak truth 2 out of 3 times. He throws a die and reports that number obtained is a four. Find the probability that the number obtained is actually a four."
291 | ]
292 | },
293 | {
294 | "cell_type": "markdown",
295 | "metadata": {},
296 | "source": [
297 | "
"
304 | ]
305 | },
306 | {
307 | "cell_type": "code",
308 | "execution_count": 8,
309 | "metadata": {},
310 | "outputs": [
311 | {
312 | "name": "stdout",
313 | "output_type": "stream",
314 | "text": [
315 | "The probability that he truly obtains 4 given he speaks the truth is 28.571%.\n"
316 | ]
317 | }
318 | ],
319 | "source": [
320 | "pB_A = (1/6*2/3)/(1/6*2/3+5/6*1/3)\n",
321 | "print('The probability that he truly obtains 4 given he speaks the truth is %.3f%%.'%(pB_A*100))"
322 | ]
323 | },
324 | {
325 | "cell_type": "markdown",
326 | "metadata": {},
327 | "source": [
328 | "# Bayesian Inference "
329 | ]
330 | },
331 | {
332 | "cell_type": "markdown",
333 | "metadata": {},
334 | "source": [
335 | "Bayes' Theorem won't be much helpful in scientific researches if it is only a tool for calculate the inverse probability. Without changing the theory, just reframe the definition, we will have a completely revolutionary view. "
336 | ]
337 | },
338 | {
339 | "cell_type": "markdown",
340 | "metadata": {},
341 | "source": [
342 | "$\\text{Event A}$: $\\text{Newly collected data}$ \n",
343 | "$\\text{Event B}$: $\\text{Hypothesis}$ \n",
344 | "$$\n",
345 | "P(B|A) = \\frac{P(A|B)P(B)}{P(A)} = \\frac{P(A|B)P(B)}{P(A|B)P(B)+P(A|B^c)P(B^c)}\n",
346 | "$$"
347 | ]
348 | },
349 | {
350 | "cell_type": "markdown",
351 | "metadata": {},
352 | "source": [
353 | "Hypothesis $\\text{B}$ has a probability $P(B)$ which is called **prior** in **Bayesian Inference**, $P(A|B)$ is the **likelihood** (exactly the same meaning as in maximum likelihood), $P(B|A)$ is the **posterior** meaning which is also your new prior before next data collection.\n",
354 | "\n",
355 | "The reason why $P(A|B)$ is called likelihood is actually quite intuitive, it measures how likely data $A$ will present given $B$ hypothesis is true. $P(A)$ is calculated by law of total probability based on $B$ and $B^C$ hypothesis."
356 | ]
357 | },
358 | {
359 | "cell_type": "markdown",
360 | "metadata": {},
361 | "source": [
362 | "If $B$ is called a hypothesis, then it expresses a subjective belief. Broadly speaking, you start with a scientific question and set forth two or more alternative hypotheses. You then assign a prior probability that each alternative hypothesis is true. Next, you collect data. Finally, you use Bayes’ Theorem to update the probability for each hypothesis considered."
363 | ]
364 | },
365 | {
366 | "cell_type": "markdown",
367 | "metadata": {},
368 | "source": [
369 | "What if we change the prior gradually in the first example above, from $1$ to $1000$ people out of $10000$, and rest parameters are the same, let's see how the posteriors change."
370 | ]
371 | },
372 | {
373 | "cell_type": "code",
374 | "execution_count": 18,
375 | "metadata": {},
376 | "outputs": [
377 | {
378 | "data": {
379 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAGHCAYAAAByA95NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA+5ElEQVR4nO3deXxU1eH+8edMAoQQEpIZkkASFgERwQWIoCAgkOJuca17kS9Vi1ttbd2tXbDYuv1UKLYgUu2iVutW1wiKEheURXYIArIkZGdJSEhyz++PC5E0LCHL3Ezm83698kpm5k7muRy1Ty/nnmOstVYAAAAAjprP6wAAAABAqKJMAwAAAA1EmQYAAAAaiDINAAAANBBlGgAAAGggyjQAAADQQJRpAMBhPfjgg+rdu7fXMQCgRaJMA0AzmjBhgowxdb5iYmK8jhZ0f/nLXzR27FglJCTIGKNPP/3U60gA0GiUaQBoZiNGjFBOTk6tr2+//dbrWEFXVlamMWPG6E9/+pPXUQCgyVCmAaCZtW3bVsnJybW+EhMTJUmFhYVKS0vTbbfdVnN8Xl6eunTpojvvvFOSZK3VT37yE/Xq1Uvt27fXMccco3vuuUcVFRU179k/FeOll15Snz59FB0drfHjx2vnzp169dVX1bdvX3Xs2FGXXHKJduzYUfO+CRMmKCMjQ4899phSUlIUHR2tiy++WAUFBYc9pw8++EDDhw9X+/btlZKSouuuu06FhYWHfc/PfvYz3XvvvRo7duxR/xkCQEtFmQYAD/n9fv3973/X9OnT9eabb8paq2uuuUbdu3fX73//e0lumU5KStI//vEPrVq1Sk888YRmz56thx56qNbvysnJ0Zw5c/TKK6/onXfe0YIFC3TJJZdo5syZeumll/T222/rk08+qfO+L7/8Uh999JHeffddvf322/rmm280ceLEQ2aeO3eufvjDH+ryyy/XN998o9dee00bN27UhRdeKGtt0/8hAUALFul1AABo7T766KM6c6RHjx6tN998U5I0cuRI3Xfffbruuuv04x//WF988YUWL16sNm3aSJJ8Pl9NsZakHj16aP369Zo+fbp+85vf1DxfUVGhOXPmKBAISJIuu+wyzZgxQ7m5uercubMk6fLLL9eHH35YK4vjOHr++ecVFxcnSZo2bZrOPPNMrVu3Tn369KlzPr/97W9166236pZbbql5bs6cOerevbuWLl2qk08+uaF/VAAQcijTANDMhg4dqjlz5tR6Ljo6utbj+++/X++9954ee+wx/etf/1LPnj1rvf7Xv/5VM2fO1MaNG1VaWqqqqio5jlPrmJSUlJoiLalmSsn+Ir3/uby8vFrvO/7442uKtCQNHz5ckrRq1aqDlumFCxfq888/19NPP13ntXXr1lGmAYQVyjQANLP27dsfcWm5nJwcrV27VhEREVq7dm2t115++WXddNNNmjp1qkaNGqXY2Fi9/PLLuvfee2sdt/9K9n7GmIM+978l/Gg5jqM777xT11xzTZ3XkpOTG/W7ASDUUKYBwGOO4+jqq69W//79dfvtt+vSSy/V6NGjdfrpp0uS5s+fr4EDB+rnP/95zXs2btzYZJ+/atUq7dy5U7GxsZKkrKwsSVK/fv0Oenx6erpWrFjB2tMAIMo0ADS7vXv3Kjc3t87zSUlJMsZoypQpWrZsmZYsWaLU1FTdeOONuuqqq7RkyRLFx8erb9++mjVrll5//XUNGDBAb731ll599dUmy2eM0bXXXqvf//73Kioq0k033aRzzz33oFM8JHfO9Lhx43T77bfrxz/+sTp27Kh169bp5Zdf1tNPP6327dsf9H25ubnKzc3Vtm3bJEnZ2dmKiYmpmY4CAKGI1TwAoJl98skn6tKlS52vwsJCZWVl6be//a2effZZpaamSpIeeeQRderUSZMmTZIk3XDDDbrmmmt03XXXaeDAgfriiy/04IMPNlm+IUOG6PTTT9cPfvADnXnmmerfv79mz559yONHjx6tuXPnatmyZRoxYoROPPFE3X777erYsWOdaSUHmjFjhgYOHKhzzz1XkmrOZ8aMGU12LgAQbMayjhEAhK0JEyZoy5YtyszM9DoKAIQkrkwDAAAADUSZBgAAABqIaR4AAABAA3FlGgAAAGggyjQAAADQQJRpAAAAoIFCftOW/Yv/B1MgEFBBQUHQPxfBxTiHB8Y5PDDOrR9jHB68HOeuXbse9HmuTAMAAAANRJkGAAAAGogyDQAAADQQZRoAAABoIMo0AAAA0ECUaQAAAKCBKNMAAABAA1GmAQAAgAaiTAMAAAANRJkGAAAAGogyDQAAADRQpNcBAAAAgIOx1koV5dKuHdKuHarYsFo2rZdMZBuvo9WgTAMAACBobFWltGuntKtE2rlDdteOmp+1a9/jnSVugd69Q9q7t+a9JZJ8U2dJ/s7ehD8IyjQAAAAaxZbvcQvwvi+7vwzX/Pz9Y5WVHvyXRLaRYuOkjp2kjrEyXbtJHeP2PRcn0zFOndK6q6RDp+CcVD1RpgEAAFCHrSiXdhTvK8jFbineccDPB37trTj4L+nQcV8h7iST0kPq18ktx7GdZDp2qnlNsXFSu/Yyxhw2U5tAQKagoKlOsUlQpgEAAMKEra52rxLvKJZ2FMvuL8s7imV3FteUZe0okSr21P0FxrgFOS7eLcS9jttXht0vs//n/VeXW9Dc5uZCmQYAAAhxdm+FW5BLiqQdRbI7SqQdRfsKc1FNedbunZK1dX9BdAcpNl6Ki5fp3ntfWY6X4vYX5Ph9JTlOJiIiyGfXslGmAQAAWqgDS7ItKZJ2FLqFuebxvpK85yDzkCMiagqy/Ikyx/StKclm35VldUpwryi3aRv0c2stKNMAAABBZqur9xXhIqm4ULbkgJK8o6jmZ5XtrvvmyDZuKe6UIHXtJtPvJPfnuAS3JHeKl+ISpA4dZXxsKdLcKNMAAABNyJaXScVFUkmhbHGBVOwWZVtc8H1J3lkiWaf2GyMi3JIclyAldZXpO8D9uZNfplOCW5g7JUjRMUe8UQ/BQ5kGAACoB2utu6xbcb57NXl/US4ukC0ukooLpJJCaU9Z3Td36OgW4Xi/TFrPfcXYL9PJv+/5BCkmjivJIYgyDQAAIMnuKZOK8qWiAtli93tNaS4qcMvy/y4BZ3xSXCcpPiB1SZU5/mQp3v99UY7fV5rbtvPilBAElGkAANDq2apK9ypyYZ7svsKsovzaRfl/rygbnzvtIiEgpXaXOSHdvbKcEHDLc7zfvZkvkjoVzhh9AAAQ0qy1cnbtlP3uW6koT7awQCrKkwrzvy/OO4vrLgnXMU5K6CwldpU57kS3NCd0lonfV5Y7JbAMHI6IMg0AAFo0a617w17BdrccF+a5V5gL9/+cr/z/3WCkTVu3KPs7y5ww2P05ISCT0NktygkBpl6gSQStTC9ZskSzZ8+W4zgaO3asxo8fX+v1srIyPfnkkyosLFR1dbXOP/98jR49OljxAACAR2qV5YLtNQXZFn7/syr31n5TdIzk33dVud9J6tCtp8raRbvPJXR2NxdhxQsEQVDKtOM4mjVrlu677z75/X7dfffdSk9PV2pqas0x7777rlJTU3XXXXdp586duu222zRixAhFMg8JAICQZ0t3SwXbvy/MB3xXYV7dshwTK/kTpZTuMicOkQKJMgmJUiDRvdocFV3r8A6BgPYUFATxjABXUJpqdna2kpOTlZSUJEkaNmyYFi5cWKtMG2NUXl4ua63Ky8sVExMjH8vDAAAQEmxVpXsFOT93X0nOlc13vyt/e90d+qJjpECSu+nIienuDn2BJMmftK8st/fmRICjFJQyXVRUJL/fX/PY7/dr3bp1tY4566yz9Mc//lE33HCD9uzZo9tvv50yDQBAC2LLdrtlOS9Xys9xry7n5Uj5ue5KGQduQhLZxi3LgSSZXse53wPJ3z8X3cG7EwGaUFDKtP3fu2elOvOYli5dqu7du+uBBx7Q9u3b9bvf/U7HHXecoqNr/zVOZmamMjMzJUlTp05VIBBovuCHEBkZ6cnnIrgY5/DAOIcHxrl+rLVydhSrOmeL+5W7VdW5W1SVu1XVOVtkd++sdbwvLl6RySmKGDBQEUkpikhOUURyV0UkpcgX7w/qBiSMcXhoieMclDLt9/tVWFhY87iwsFDx8fG1jpk3b57Gjx8vY4ySk5OVmJiobdu2qXfv3rWOy8jIUEZGRs3jAg/mRwUCAU8+F8HFOIcHxjk8MM7fq7nZb/s22bxtUl6OlJcjm+9+V/kBq2IYn3tDX+dkmcHDZDp3kemcLCUmS4Fkmaj2ciQ5kiprfYikoqJgnhZjHCa8HOeuXbse9PmglOlevXopJydHeXl5SkhIUFZWlm699dZaxwQCAS1btkz9+vVTSUmJtm3bpsTExGDEAwCg1bG7d7qFefs2afs2aftWtzBvz5EOXEYuIkIKJEuJXWT69Jc6d5FJ7CJ1TnZv+ots491JACEgKGU6IiJCEydO1JQpU+Q4jkaPHq20tDS9//77kqRx48bp4osv1vTp0/WLX/xCknTVVVcpNjY2GPEAAAhJdm+FlOeWZZu7Vcrd6l5t3r5NKt31/YE+nztXObHr94U5qYuU2NW98Y+NSYAGM/ZgE5pDyLZt24L+mfxVUnhgnMMD4xweQnmcrbVSSZGUu2VfYd73fftWqSi/9q5+8QH3CnNyiluck1KkpK7uDX+tfKnZUB5j1F/YTvMAAACHZysr3TnLuVtkczYfUJ631p6W0a69lJwi07uflJTh/pzU1S3PLCcHBB1lGgCAILLlZVLOvsJ8wHcV5ErOAUvLJXSWklNlTt9fmFOkLqlSXAI7+wEtCGUaAIBmYMt2u2V523fSts3u95zNUvEBf0UdEelOw0jrITNkhFuek1Pd8twuyrvwAOqNMg0AQCPYPWXStu/2lebvv6vkgKXh2raVktNk+g6QuqTJdElzrzJ37sLNf0CIo0wDAFAPtnKve6V56yZp6yb3+7ZNUtEBV5r3l+bjTnK3ye7aTeqa5q6Ywa6+QKtEmQYA4ADWcaTCPGnLRtmtG6Ut+4pz3rbv5zRHREpdUmV6H++W5pRuUtfu7rrMPq40A+GEMg0ACFu2rNQtzVs27Pu+0Z2iUVHuHmCMuz5zSg+ZwcPc7ynd3JUzWvlScwDqh/8SAABaPes4snk50pYNspvdL23Z6F6B3q9DRym1h8zwDPd7Snf3qjPLzQE4DMo0AKBVsZWV0rZNst99K+0rzvlbN7o3CkqS8bmrZRzTVxp5pkxaTymlhxTvZ8k5AEeNMg0ACFl2T5m0+Vu3OH/3rezmb93l56qr3QOi2kupPRR1xtkq79xFJrWnlNJNpm07b4MDaDUo0wCAkGBLd7mF+bv10qb1spvWuzcF7hcXL6UdI3PiKTLdjpHSekqBZBmfT7GBgPay1TSAZkCZBgC0OLZ0t/TdetmN2dKmbNlN2VLB9u8P8CdK3XvJDBvjFuduvWTi4r0LDCBsUaYBAJ6y5Xv2Fed10sZs93t+7vcHBJJkuveWRp4l072X1O0YmZhY7wIDwAEo0wCAoLFVle6GJ9+ulTauc4tzzhbJ7lu/OaGz1KO3zIhxbnHu3lumQ0dvQwPAYVCmAQDNwlor5efIblgnbVgru2Gt9N23UlWle0DHOKlHH5nBw2R69HF/ju3kaWYAOFqUaQBAk7Blpe7V5m/XyH67RtqwRtq9y32xbTt3jvOYc6Uex8r07ONusc1SdABCHGUaAHDUrONI27fKrl8trV/tlueczZK17gFd0mROGiL17Ouu59y1m0wE22wDaH0o0wCAI7IV5dK3a2TXr3YL9LdrpLLd7ovRMdIxfWVOOd0tzj36yETHeBsYAIKEMg0AqMMWF8pmr5LWr3K/b/5WchzJGPeq8+BhUq/jZI45TkrqKuPzeR0ZADxBmQaAMGetlXI2y2avlNatlF23UirMc19s29adqnH2JTK9+7lXoLnqDAA1KNMAEGZsdbW7k+C65W5xzl75/Y2CHeOkPv1lMs6X6XW8lNZTJpL/qQCAQ+G/kADQytmqSneVjbUrZNcul7JXSxV73BcTu7g3CvY+XqZPf/cxK2wAQL1RpgGglakpz2uWy65ZJq1fJe3d677YtZvMaWdIxw6Q6dNfplOCp1kBINRRpgEgxNnqarc8r/6mbnlO7Skz4kyZY/u70zc6xnkbFgBaGco0AIQY6zjSlo1ueV79jbRuhVS+b9pGao995XmAdGx/mZhYb8MCQCtHmQaAEGDzc2VXLZFWLpVd8833NwwmpcgMHSXT7yTp2BNkOlKeASCYKNMA0ALZ3Tul1d/Irloqu2qplJ/rvtDJL3NCutTvZJm+J8gkBLwNCgBhjjINAC2ArapydxhcuVh25RJp4zp3a+720VLfE2QyLpDpd7KUnMJqGwDQglCmAcAjNj9XdsUi2eWLpDXL3HnPPp/U81iZ8y6XOf5k9+eICK+jAgAOgTINAEFi91ZIa1fILv9adsUiKXer+4I/UWbIKJn+A6XjTmCHQQAIIZRpAGhGtmC77LKvZJd9La35xl2yrk1bqe8AmVFnywwYLCV1ZeoGAIQoyjQANCFbVSWtXyX7zVeyy76Scja7L3ROdpesGzDI3TClbTtvgwIAmgRlGgAayZbucovz0oXu9I09ZVJEpLvO88hxMgPSZZJTvI4JAGgGlGkAaACbu1V26Zey33wprVslWUeK7SQzeLjMiadI/U6UiYr2OiYAoJlRpgGgHqzjSBvWyi75QnbJF1LuFveF1B4yZ18ic9IpUo8+Mj6ft0EBAEFFmQaAQ7CVle7GKUs+l136pbSj2F26ru8JMmecI3PyEBl/otcxAQAeokwDwAFsRbm0fJHsos9kly105z+3a+/eOHjyUJkT0mU6sHQdAMBFmQYQ9mxZqew3X8ou+kxaschdvi6mo8ygYTKDTpP6nSTTpq3XMQEALRBlGkBYsmW7ZZd8qeJlC+Us+UKqqpI6JcgM/4FboPv0Z+dBAMARUaYBhA23QH8h+9UCaeUSqbpKVYEkmTPOlUkf7m7dzQ2EAICjQJkG0KrZinJ3CbuFn0jLv3avQCd0lhl7nsygYQqcMkyFRUVexwQAhCjKNIBWx1bulZZ9LbvwE3cd6L173SkcZ5wrc8rp7hXofdt3cyUaANAYlGkArYJ1qqU1y2W/+Ni9kXBPqRQTKzNsrMwpI6Tex1OcAQBNjjINIGRZa6XN37oF+sv5UkmRu4zdoFNlhoxyV+HgJkIAQDOiTAMIOba4UPaLj2Q/mydt+06KiJQGDJK5bJTMiUNk2rXzOiIAIExQpgGEBFtRLrv4M7dAr1oqWSv1Ok7mqp/KpA+XiYn1OiIAIAxRpgG0WNZaad0K2QUfyn69QKool/yJMuf+SOa0M2QSu3odEQAQ5ijTAFocW5Qv+9k82QWZUn6uFNVe5pQRMqeNkXr340ZCAECLQZkG0CLYykp3Q5UFH7gbqlgr9T1B5vwrZAadJtMuyuuIAADUQZkG4Cmbs0X2k/fcudC7d7obqpx7mbukXedkr+MBAHBYlGkAQWf3Vsh+tUD2k/el7JVSRIR00lD5RoyTjj9JxsdydgCA0ECZBhA0NmeL7MfvyH42VyorlRK7yFz8Y5lhY2Ri472OBwDAUaNMA2hWtqpKWvK5nI/ekdYskyIi3TnQo86Sjh1Qs603AAChiDINoFnYogLZ+e/KfvqBtKPYXdLuwmtkTs/gKjQAoNWgTANoMvvXhXbmviUt/txdkeOEdPnOOFvqP5C50ACAVocyDaDRbEWFu733vP9KWzZK0TEyP/ihzBnnyASSvI4HAECzoUwDaDBbVCA777+y89+TynZLqT1krr1ZZsgomXbtvI4HAECzo0wDOGp2w1rZD153t/i2kgadKt+Y86U+x3NDIQAgrFCmAdSLdaqlxV/IyXxdyl4ltY+WGXu+zJjzmMoBAAhblGkAh2UrKmSzPpT94DUpP1cKJMn8aJK7KkdUtNfxAADwFGUawEHZXTvd+dDz/utu831MX/kumSCdPJRVOQAA2IcyDaAWm58r+8Frsgsypb17pZOGyHfmRVLvfsyHBgDgfwStTC9ZskSzZ8+W4zgaO3asxo8fX+eYFStW6LnnnlN1dbU6duyo3/zmN8GKB4Q9u/U72Xf/LfvlfMn4ZE49Q2bceJmu3byOBgBAixWUMu04jmbNmqX77rtPfr9fd999t9LT05WamlpzTGlpqWbOnKl7771XgUBAO3bsCEY0IOzZDevkvP2ytORzqW0796bCH4yXifd7HQ0AgBYvKGU6OztbycnJSkpy7/gfNmyYFi5cWKtMf/rppxo6dKgCgYAkKS4uLhjRgLBl1yyX8/ZL0solUnQHmfMulxl7nkxMrNfRAAAIGUEp00VFRfL7v7/K5ff7tW7dulrH5OTkqKqqSg8++KD27Nmjc845R6NGjarzuzIzM5WZmSlJmjp1ak35DqbIyEhPPhfB1RrH2VqryuWLtPvFZ1W5YrF8nRIUfe1Nan/WePnad/A6nida4zijLsa59WOMw0NLHOeglGlrbZ3n/vdGpurqam3YsEH333+/9u7dq/vuu099+vRR165dax2XkZGhjIyMmscFBQXNE/owAoGAJ5+L4GpN42ytlVZ/I+fNf0rrVkpxCTKX/0QaMU572rbTntI9Uuker2N6ojWNMw6NcW79GOPw4OU4/28n3S8oZdrv96uwsLDmcWFhoeLj4+sc07FjR0VFRSkqKkr9+vXTpk2bDhkcwJHVlOg3/illr5Q6Jchccb3MiHEybdp6HQ8AgJDnC8aH9OrVSzk5OcrLy1NVVZWysrKUnp5e65j09HStXr1a1dXVqqioUHZ2tlJSUoIRD2iVbPZKOY/cK+ex+6WC7TJX3iDfQ3+Rb8x5FGkAAJpIUK5MR0REaOLEiZoyZYocx9Ho0aOVlpam999/X5I0btw4paam6uSTT9Ydd9whn8+nMWPGqFs3luQCjpbdtF7Oay9Iy7+WYjvJXP4TmZFnUqABAGgGxh5sQnMI2bZtW9A/k3lZ4SHUxtlu+07O6/+QFmVJ0TEyZ10sM+ZcmXZRXkdr0UJtnNEwjHPrxxiHh7CdMw2g+diifNk3/iGbNU9q107m/MtlMn4oEx2eq3MAABBMlGkgRNnS3bLvvCz74VuSrMwPLpA56xKZjqwTDQBAsFCmgRBjK/fKzn1L9u2XpT1l7rbfP7xKxp/odTQAAMIOZRoIEdZxZL/8WPY/z0tFBdKAwfJdfK1Mak+vowEAELYo00AIsOtWynlxprQpW+reW77rfiZz3IlexwIAIOxRpoEWzObnynnlOenrLKmTX2bi7TJDR8n4grJEPAAAOALKNNAC2bJS2bdfkv3wTckXIXPBlTLjxrPMHQAALQxlGmhBrOPIfjZP9tU50q4dMqeNkRl/tUy83+toAADgICjTQAthN66T88+/SN+ukXoeK98t98v06ON1LAAAcBiUacBjdtcO2f88L/vpB1LHOJnrbpM5dTTzogEACAGUacAj1qmW/fg92deelyrKZTIukDnvcnYuBAAghFCmAQ/YTevlvDBd2rhO6neSfFdcL9MlzetYAADgKFGmgSCye8pkX/+77Nz/Sh1jZSb9QmbISBljvI4GAAAagDINBIG1Vvp6gZx/zZR2Fsuccba7Skd0jNfRAABAI1CmgWZmC/Pl/P3P0rKvpG695LvpXpmerNIBAEBrQJkGmol1HNmP3pZ99XlJVuZHk2TGnCvji/A6GgAAaCKUaaAZ2JzNcuY8Ja1fLfUfKN81N8n4E72OBQAAmhhlGmhCtqpS9t1XZf/7otQ2Sua6n8mcNpobDAEAaKUo00ATsZs3yHn2cWnLRpn002Wu+IlMbLzXsQAAQDOiTAONZKurZd/5t+xbL0odYuSbfI/MwFO9jgUAAIKAMg00gt32nZxnn5A2ZcucMkLmyhtkYmK9jgUAAIKEMg00gHWqZT94Xfa1v0tR7eW74Vcy6ad7HQsAAAQZZRo4SjY/150bnb1KGniqfFf/lLnRAACEKco0UE/WWtnPP5L9xwzJGJn/u11m6Bms1AEAQBijTAP1YMt2y77wZ9mFn0h9jpfv/37OutEAAIAyDRyJXbtczqzHpR1FMuOvljn7YnYxBAAAkijTwCHZqio5/3le9p1/S52T5bvzYZmex3odCwAAtCCUaeAgbGG+ih+9V3b1MpnhGTKX/0Qmqr3XsQAAQAtDmQb+h136pZxnn5C1jsxP7pBvyEivIwEAgBaKMg3sY6sqZV/9m+wHr0vdjlHCnX9QSVuuRgMAgEOjTAOSbMF2OX/5k7Rhrczoc2QunajILl2lggKvowEAgBaMMo2w507reFyyVr4b75QZPNzrSAAAIETUq0xba5WXl6fOnTvL5/M1dyYgKKxTLfvGP2X/+5LUrZdbpDsnex0LAACEkHo1Y2OM7rjjjubOAgSNLd0l56nfyf73JZnhY+W7cypFGgAAHLV6T/Po0aOHcnJylJKS0px5gGZnv1sv589TpeJCmasny4w8ky3BAQBAg9S7TPfv318PPfSQRo0apUAgUOu1MWPGNHkwoDk4WXNlX5gudego36/+IHNMX68jAQCAEFbvMr1mzRolJiZq1apVdV6jTKOls9XVsi8/K/vhm1LfE+S7/pcysZ28jgUAAEJcvcv0r3/96+bMATQbW7pbzl/+KK1cIpNxgcwl18lERHgdCwAAtAJHtTTe7t279fXXX6uoqEgJCQkaPHiwYmJimisb0Gg2d4ucp34vFebJ/PgW+U7/gdeRAABAK1Lvde7Wrl2rW265RR988IE2bdqkzMxM3XLLLVq7dm1z5gMazC5fJOehX0p7SuX7xe8p0gAAoMnV+8r0c889p0mTJmn48O83tMjKytLs2bP1hz/8oVnCAQ1hrZX98E3Zl56VUrrJd/N9Mv5Er2MBAIBWqN5XpnNycnTaaafVeu7UU09Vbm5uk4cCGspWV8u+MF32xZnSSUPku/NhijQAAGg29S7TycnJysrKqvXcZ599pqSkpCYPBTSELS+T8/TvZOe/J3P2JfL99C6ZqPZexwIAAK1Yvad5TJgwQVOnTtU777yjQCCg/Px85eTk6K677mrOfEC92JJCOU/+Vtq6Seaam+QbeabXkQAAQBiod5nu27evnnrqKS1atEjFxcUaPHiwBg0axGoe8JzdstEt0mWl8t18v8wJg72OBAAAwsRRLY0XExOjkSNHNlcW4KjZVUvl/PkPUrsod0fDbsd4HQkAAISRw5bpKVOm6N5775UkPfDAAzLGHPS43/zmN02fDDgCJ2uu7N+ekpJT5bv1AZmEzl5HAgAAYeawZXrUqFE1P7NlOFoS5/3/yL48W+p3knw33iUT3cHrSAAAIAwdtkyffvrpkiTHcbR9+3ZddNFFatOmTVCCAQdjrZX9z99k33lFZvBwmf/7uQz/TAIAAI/Ua2k8n8+n9957TxEREc2dBzgk61TLPj/NLdIjz5K5/g6KNAAA8FS915keNWqUPvjgg+bMAhySrdwr55k/yn7yvsy5l8lc/VMZH//nDgAAeKveq3lkZ2fr3Xff1RtvvCG/31/rZkRuQERzsuVlcqY9JK3+RuZH/ydfxg+9jgQAACDpKMr02LFjNXbs2ObMAtRhS3fJeeJB6bv1MhNvl++00V5HAgAAqFHvMn3GGWc0YwygLrtrp5zH75dyNss3+R6Zk4Z4HQkAAKCWepdpa60+/PBDLViwQLt27dIjjzyilStXqqSkRMOGDWvOjAhDdmexnEfvl/Jz5bvpPpkBg7yOBAAAUEe9b0B88cUXNW/ePGVkZKigoECS5Pf79frrrzdbOIQnW1Io50/3SgXb5bvlfoo0AABosepdpj/++GPdeeedGj58eM3Nh4mJicrLy2u2cAg/tihfzp/ukYoL5bvtQZl+J3kdCQAA4JDqPc3DcRxFRUXVeq68vLzOc0BD2YLtch65VyrbLd/tv5HpdZzXkQAAAA6r3lemBw4cqL/97W+qrKyU5M6hfvHFFzV48OBmC4fwYQu2y/nT3dKeUvlu/x1FGgAAhIR6l+lrr71WRUVFmjBhgsrKynTttdcqPz9fV155ZXPmQxiwRflyHr1PKt8j3y9+L9Ozj9eRAAAA6qXe0zyio6P1q1/9Sjt27FB+fr4CgYA6derUjNEQDmxJkbtqx+6d8v389zLdenkdCQAAoN7qfWX6V7/6lSQpLi5OvXv3rinSd911V73ev2TJEt1222265ZZb9Nprrx3yuOzsbP3oRz/S559/Xt9oCFF21w45j90v7SiS77Zfc0UaAACEnHqX6dzc3DrPWWu1ffv2I77XcRzNmjVL99xzjx5//HEtWLBAW7ZsOehxf//733XyySfXNxZClC3dJeexB75f/q738V5HAgAAOGpHnObx9NNPS5Kqqqpqft4vPz9faWlpR/yQ7OxsJScnKykpSZI0bNgwLVy4UKmpqbWOe+eddzR06FCtX7++3ieA0GPLSuU8/mspd7N8N98v0/cEryMBAAA0yBGvTCclJdWU4P0/JyUlKTk5WaeffnrN9I/DKSoqkt/vr3ns9/tVVFRU55gvv/xS48aNO9pzQAix5XvkPPkbacsG+W68W6b/QK8jAQAANNgRr0xfeumlkqQ+ffo0ePqFtbbOc/s3ftnvueee01VXXSWf7/D9PjMzU5mZmZKkqVOnKhAINChTY0RGRnryuaHOVlaqZPoU7d2wVnF3/E5Rp432OtJhMc7hgXEOD4xz68cYh4eWOM71Xs0jMjJSeXl5SkxMVElJiV544QX5fD5deeWVR1zVw+/3q7CwsOZxYWGh4uPjax2zfv16/b//9/8kSTt37tTixYvl8/k0ZMiQWsdlZGQoIyOj5vH+rc2DKRAIePK5ocw6juysx2QXfyFz7c3a3ecE7W7hf4aMc3hgnMMD49z6Mcbhwctx7tq160Gfr/cNiLNmzaq5ajxnzhxVV1fLGKNnnnnmiO/t1auXcnJylJeXp6qqKmVlZSk9Pb3WMdOmTav5OvXUUzVp0qQ6RRqhyVor+9Is2S/ny1x0rXwjmMoDAABah3pfmS4qKlIgEFB1dbWWLl2q6dOnKzIyUjfccMMR3xsREaGJEydqypQpchxHo0ePVlpamt5//31JYp50K2fffln2wzdlMn4oc9bFXscBAABoMvUu0+3bt1dJSYk2b96s1NRURUVFqaqqSlVVVfV6/6BBgzRo0KBazx2qRN900031jYUWzpn/nuxrL8iceobMpdfVmSsPAAAQyupdps866yzdfffdqqqq0oQJEyRJq1evVkpKSnNlQ4iziz6TfeHP0oDBMj++VeYIN5cCAACEmnqX6fHjx2vIkCHy+XxKTk6WJCUkJOjGG29stnAIXXbtCjl/fUTq2Ue+G++Uiaz3P2oAAAAh46gaTlJSktasWaPs7GwlJCSob9++ioiIaK5sCFF2+zY50x+SAonu7obtoryOBAAA0CzqXaa3bt2qhx9+WHv37q1Z6q5Nmza688476+xkiPBld+90N2UxRr5bHpCJifU6EgAAQLOpd5meOXOmMjIydP7559fcRPbGG29o1qxZ+vWvf91sARE6bGWlnGkPSUUF8v3i9zKJXbyOBAAA0KzqfUfYxo0bdd5559VajeHcc8/Vxo0bmyMXQoy1VnbOk1L2SpmJP5Pp3c/rSAAAAM2u3mU6ISFBK1eurPXcqlWr6uxkiPBk3/yn7Bcfy4y/Wr5TRngdBwAAICjqPc3jiiuu0MMPP6zBgwfXbOW4aNEi3XLLLc2ZDyHA+Wye7Jv/khk+VuacS72OAwAAEDRHLNMVFRV65ZVXtHnzZp1yyilKSUlRcXGx0tLSdNlllx1yn3KEB7t2heycp6TjTpS5ejKbsgAAgLByxDI9a9YsrV+/XgMHDtTixYvVoUMHTZo0KRjZ0MLZwnw5M6ZKnZPku/Eumcg2XkcCAAAIqiPOmV6yZInuu+8+XX311br77ru1aNGiYORCC2f3VrhrSVdVynfTvTIdYryOBAAAEHRHLNMVFRU1NxkGAgGVlZU1eyi0bNZa2eenSZu/lW/SL2SSWWccAACEpyNO86iurtby5ctrHjuOU+uxJA0YMKDpk6HFsh+8Lvv5RzLjr5Y58RSv4wAAAHjmiGU6Li5Of/7zn2sex8TE1HpsjNHTTz/dPOnQ4tiVS2T//Zw0aBgrdwAAgLB3xDI9bdq0YORACLD5uXL+8iepa5p8193Gyh0AACDs1XvTFoQ3W1EuZ9oUyTryTb5HJqq915EAAAA8R5nGEblbhT8lbdss309+KZPYxetIAAAALQJlGkdkP35HduEnMj+8UmbAIK/jAAAAtBiUaRyW3bRe9sWZ0oDBMmdf4nUcAACAFoUyjUOyZaVynnlY6thJvom3y/j4xwUAAOBAtCMclLVWzpynpMI8+a6/Q6ZjrNeRAAAAWhzKNA7Kzv2vtChL5qJrZXof73UcAACAFokyjTrshnWyLz8rnXiKzA/Gex0HAACgxaJMoxZbutudJx0XL9/EnzFPGgAA4DBoSqhhrZXzt6ekkkL5rv+lTIeOXkcCAABo0SjTqGE//UBa9JnMhdfK9DrO6zgAAAAtHmUakiSbt81dT/q4E2V+8EOv4wAAAIQEyjRkq6rkzHxMioiU7zrmSQMAANQXrQmyb78kbVgr3zWTZRICXscBAAAIGZTpMGfXr5Z96yWZ00bLpJ/udRwAAICQQpkOY7a8TM6sx6SEgMwVN3gdBwAAIORQpsOY/ddfpYI8+Sb9XKZ9tNdxAAAAQg5lOkzZr7NkF3woc84lbBcOAADQQJTpMGR3Fst5YZrUo4/MeZd7HQcAACBkUabDkPOPZ6Tycne78MhIr+MAAACELMp0mLFfL5C+zpK54AqZLmlexwEAAAhplOkwYnftlPP3GVL33jLjLvQ6DgAAQMijTIcR++JfpbLd8k24RSYiwus4AAAAIY8yHSbs0i9lv/hY5pxLZVJ7eh0HAACgVaBMhwFbtlvOC9OllO4y51zqdRwAAIBWgzIdBuxLz0o7S+SbcKtMZBuv4wAAALQalOlWzq5YLLsgU+bMC2V69PE6DgAAQKtCmW7FbPkeOX97WkpOkTn/Cq/jAAAAtDqU6VbMvvUvqShfvmtvkWnT1us4AAAArQ5lupWyWzfJZr4hMzxDps/xXscBAABolSjTrZC1Vs4Lf5aiomUunuB1HAAAgFaLMt0K2c/mStkrZS7+sUzHWK/jAAAAtFqU6VbGlu6SfXm21Os4meEZXscBAABo1SjTrYx99Xl3y/CrfirjY3gBAACaE22rFbHfrpH95D2ZMefLpLFlOAAAQHOjTLcStrpazt//LMXFy/yQNaUBAACCgTLdStiP3pa++1a+H02SiYr2Og4AAEBYoEy3AnZHsexrL0jHD5QGD/c6DgAAQNigTLcC9j/PS5WV8l15g4wxXscBAAAIG5TpEGe/Wy+b9aHMmHNlkrp6HQcAACCsUKZDmLVWzkvPSh1iZM77kddxAAAAwg5lOpQt+UJas0zmgqtkomO8TgMAABB2KNMhylZVyvn3bKlLmszIM72OAwAAEJYo0yHKzv2vlJcj32UTZSIivI4DAAAQlijTIcju2in71ovSgEEyAwZ7HQcAACBsUaZDkH3zH1LFHvkuneh1FAAAgLBGmQ4xdtt3sh+/KzPyLJmu3byOAwAAENYig/VBS5Ys0ezZs+U4jsaOHavx48fXev2TTz7R66+/LkmKiorSpEmT1KNHj2DFCxnOy7Oldu1lLrjS6ygAAABhLyhXph3H0axZs3TPPffo8ccf14IFC7Rly5ZaxyQmJurBBx/UI488oosvvlh/+ctfghEtpNgVi6XlX8ucd5lMx1iv4wAAAIS9oJTp7OxsJScnKykpSZGRkRo2bJgWLlxY65i+ffsqJsZdK7lPnz4qLCwMRrSQYa2V8+rfJH+izOjzvI4DAAAABWmaR1FRkfx+f81jv9+vdevWHfL4uXPnauDAgQd9LTMzU5mZmZKkqVOnKhAING3YeoiMjAz655Z/Nk87vluv2FvvV/suXYL62eHKi3FG8DHO4YFxbv0Y4/DQEsc5KGXaWlvnOWPMQY9dvny55s2bp9/+9rcHfT0jI0MZGRk1jwsKCpom5FEIBAJB/VzrVMv525+lLmna3X+QSj0453AU7HGGNxjn8MA4t36McXjwcpy7du160OeDMs3D7/fXmrZRWFio+Pj4Osdt2rRJzzzzjH75y1+qY8eOwYgWEuznH0m5W+Qbf5WMjw1aAAAAWoqglOlevXopJydHeXl5qqqqUlZWltLT02sdU1BQoEceeUQ333zzIZt/OLKVlbJv/FPq3lsaeJrXcQAAAHCAoEzziIiI0MSJEzVlyhQ5jqPRo0crLS1N77//viRp3Lhx+ve//63du3dr5syZNe+ZOnVqMOK1aPbT96XCPPmuuemQU2MAAADgDWMPNqE5hGzbti3onxms+Tq2olzOPddLyany3TGFMh1kzL8LD4xzeGCcWz/GODyE7ZxpNIyd+5a0s0S+C6+mSAMAALRAlOkWypbtln33FemEdJnex3sdBwAAAAdBmW6h7HuvSWWl8l14jddRAAAAcAiU6RbI7iyW/fANmVNGyKT19DoOAAAADoEy3QLZd1+VKvfKXHCl11EAAABwGJTpFsbu2iH78bsyQ0fJJKd4HQcAAACHQZluYWzmG+5V6bMv9ToKAAAAjoAy3YLYst2y8/4rM2iYTJdUr+MAAADgCCjTLYid+19pT5nMuZd5HQUAAAD1QJluIWz5HneKx0lDWMEDAAAgRFCmWwj78btS6S75zmGuNAAAQKigTLcAdm+F7AevSf1Okjmmr9dxAAAAUE+U6RbALsiUdhTLd+6PvI4CAACAo0CZ9pitqnQ3aendTzq2v9dxAAAAcBQo0x6zn38kFeXLd+5lMsZ4HQcAAABHgTLtIVtdLfvOv6XuvaX+g7yOAwAAgKNEmfaQ/epTKS9HvnMu5ao0AABACKJMe8Ra686V7pImnTzU6zgAAABoAMq0V1Z/I23ZIDNuvIyPYQAAAAhFtDiPOJlvSB3jZIaO8joKAAAAGogy7QGbu0X6ZqHMGefItGnrdRwAAAA0EGXaAzbzDSmyjcwZZ3sdBQAAAI1AmQ4yu3un7GdzZU49Qya2k9dxAAAA0AiU6SCzH78r7d0rk3GB11EAAADQSJTpILJVlbLz3paOHyiT0t3rOAAAAGgkynQQ2YWfSjuK5PsBV6UBAABaA8p0kFhrZT94zd2kha3DAQAAWgXKdLCsXS5t3iCTcQFbhwMAALQSlOkgcT54XYqJlTn1DK+jAAAAoIlQpoPA5m7dt0nL2TJt23kdBwAAAE2EMh0E9sM3pYgImTPO8ToKAAAAmhBlupnZPWXuJi2njJCJi/c6DgAAAJoQZbqZ2S8+lirKxVVpAACA1ocy3Yyste6Oh2k9pZ7Heh0HAAAATYwy3Zy+XSNt2SAz6myWwwMAAGiFKNPNyH78rtSuvczQkV5HAQAAQDOgTDcTW7pL9qtPZU4dJRMV7XUcAAAANAPKdDOxn82VKvfKjDrb6ygAAABoJpTpZlBz4+ExfWXSenodBwAAAM2EMt0c1q6QcrfKjDrL6yQAAABoRpTpZmA/fkeK7iCTfrrXUQAAANCMKNNNzO4skV30mcywsTJt23kdBwAAAM2IMt3E7IIPpeoqmZFM8QAAAGjtKNNNyDqO7Px3pWMHyHRJ9ToOAAAAmhlluimtXCIVbOfGQwAAgDBBmW5CzsfvSh3jZAae5nUUAAAABAFluonYncXSN1+6Nx62aeN1HAAAAAQBZbqJ2C/mS44jM3ys11EAAAAQJJTpJmKz5ko9+sh0SfM6CgAAAIKEMt0E7OYN0pYNMsPGeB0FAAAAQUSZbgI2a64UESlzygivowAAACCIKNONZKurZb/4SDoxXSYm1us4AAAACCLKdGOtWCTt2iEfUzwAAADCDmW6kWzWXCkmVhow2OsoAAAACDLKdCPY0t2yS7+UGTpKJpK1pQEAAMINZboR7FefSlWVMqeN9joKAAAAPECZbgT72VypazepWy+vowAAAMADlOkGstu3SetXywwbI2OM13EAAADgAcp0A9nP5krGJzN0lNdRAAAA4BHKdANYx5H9bJ50/EkynfxexwEAAIBHKNMNULlisVSUL3Maa0sDAACEs8hgfdCSJUs0e/ZsOY6jsWPHavz48bVet9Zq9uzZWrx4sdq1a6fJkyfrmGOOCVa8o7Lno3ekqPYyJ5/qdRQAAAB4KChXph3H0axZs3TPPffo8ccf14IFC7Rly5ZaxyxevFi5ubl68skndf3112vmzJnBiHbUbEW5KrI+kkk/XaZdO6/jAAAAwENBKdPZ2dlKTk5WUlKSIiMjNWzYMC1cuLDWMV999ZVGjhwpY4yOPfZYlZaWqri4OBjxjs7OErU5boDMsLFeJwEAAIDHglKmi4qK5Pd/f6Oe3+9XUVFRnWMCgcBhj2kJTOdkxf/6CZk+x3sdBQAAAB4Lypxpa22d5/53beb6HCNJmZmZyszMlCRNnTq1VgEPlsjISE8+F8HFOIcHxjk8MM6tH2McHlriOAelTPv9fhUWFtY8LiwsVHx8fJ1jCgoKDnuMJGVkZCgjI6Pm8YHvCZZAIODJ5yK4GOfwwDiHB8a59WOMw4OX49y1a9eDPh+UaR69evVSTk6O8vLyVFVVpaysLKWnp9c6Jj09XfPnz5e1VmvXrlV0dPRByzQAAADQUgTlynRERIQmTpyoKVOmyHEcjR49WmlpaXr//fclSePGjdPAgQO1aNEi3XrrrWrbtq0mT54cjGgAAABAgwVtnelBgwZp0KBBtZ4bN25czc/GGE2aNClYcQAAAIBGYwdEAAAAoIEo0wAAAEADUaYBAACABqJMAwAAAA1EmQYAAAAaiDINAAAANBBlGgAAAGggyjQAAADQQMZaa70OAQAAAIQirkw3wF133eV1BAQB4xweGOfwwDi3foxxeGiJ40yZBgAAABqIMg0AAAA0EGW6ATIyMryOgCBgnMMD4xweGOfWjzEODy1xnLkBEQAAAGggrkwDAAAADRTpdYCWZMmSJZo9e7Ycx9HYsWM1fvz4Wq9bazV79mwtXrxY7dq10+TJk3XMMcfU671oORo6zgUFBZo2bZpKSkpkjFFGRobOOeccb04CR9SYf58lyXEc3XXXXUpISGiRd4/D1ZhxLi0t1YwZM7R582YZY/TTn/5Uxx57rAdngSNpzDi/9dZbmjt3rowxSktL0+TJk9W2bVsPzgJHcqRx3rp1q6ZPn64NGzbo8ssv1wUXXFDv9zYrC2uttdXV1fbmm2+2ubm5trKy0t5xxx128+bNtY75+uuv7ZQpU6zjOHbNmjX27rvvrvd70TI0ZpyLiors+vXrrbXWlpWV2VtvvZVxbqEaM877vfnmm/aJJ56wf/jDH4IZHUehseP81FNP2czMTGuttZWVlXb37t1BzY/6acw4FxYW2smTJ9uKigprrbWPPvqonTdvXrBPAfVQn3EuKSmx69ats//4xz/s66+/flTvbU5M89gnOztbycnJSkpKUmRkpIYNG6aFCxfWOuarr77SyJEjZYzRscceq9LSUhUXF9frvWgZGjPO8fHxNVc62rdvr5SUFBUVFXlxGjiCxoyzJBUWFmrRokUaO3asF/FRT40Z57KyMq1atUpjxoyRJEVGRqpDhw5enAaOoLH/PjuOo71796q6ulp79+5VfHy8F6eBI6jPOMfFxal3796KiIg46vc2J8r0PkVFRfL7/TWP/X5/naJUVFSkQCBQ55j6vBctQ2PG+UB5eXnasGGDevfu3byB0SCNHefnnntOV199tYwxwQmMBmnMOOfl5Sk2NlbTp0/Xr371K82YMUPl5eVBy476a8w4JyQk6Pzzz9dPf/pTXX/99YqOjtZJJ50UtOyov8Z0Ka97GGV6H3uQRU3+939ID3VMfd6LlqEx47xfeXm5Hn30UU2YMEHR0dFNHxKN1phx/vrrrxUXF1dr/jRapsaMc3V1tTZs2KBx48bpj3/8o9q1a6fXXnutuaKiERozzrt379bChQs1bdo0PfPMMyovL9f8+fObLSsarjFdyuseRpnex+/3q7CwsOZxYWFhnb8K8vv9KigoqHNMfd6LlqEx4yxJVVVVevTRRzVixAgNHTo0OKFx1BozzmvWrNFXX32lm266SU888YSWL1+uJ598MmjZUX+N/e+23+9Xnz59JEmnnnqqNmzYEJzgOCqNGedly5YpMTFRsbGxioyM1NChQ7V27dqgZUf9NaZLed3DKNP79OrVSzk5OcrLy1NVVZWysrKUnp5e65j09HTNnz9f1lqtXbtW0dHRio+Pr9d70TI0ZpyttZoxY4ZSUlJ03nnneXQGqI/GjPOVV16pGTNmaNq0afrZz36mAQMG6NZbb/XoTHA4jRnnTp06ye/3a9u2bZKkZcuWKTU11YvTwBE0ZpwDgYDWrVuniooKWWu1bNkypaSkeHQmOJzGdCmvexibthxg0aJFmjNnjhzH0ejRo3XRRRfp/ffflySNGzdO1lrNmjVLS5cuVdu2bTV58mT16tXrkO9Fy9TQcV69erUeeOABdevWreavj6644goNGjTIy9PBITTm3+f9VqxYoTfffJOl8Vqwxozzxo0bNWPGDFVVVSkxMVGTJ09WTEyMl6eDQ2jMOL/00kvKyspSRESEevTooRtvvFFt2rTx8nRwCEca55KSEt11113as2ePjDGKiorSY489pujoaE97GGUaAAAAaCCmeQAAAAANRJkGAAAAGogyDQAAADQQZRoAAABoIMo0AAAA0ECUaQAIE9dcc422b9/udQwAaFVYGg8AQthNN92kkpIS+Xw+RUVFaeDAgZo4caKioqK8jgYAYYEr0wAQ4u688049//zzevjhh7V+/Xq98sortV6vrq5u1O9v7PsBoDWL9DoAAKBpJCQk6OSTT9bmzZt12WWXaeLEiXr77bdVXV2tadOm6bLLLtOTTz6p5ORklZWV6dlnn9XixYvVrl07jR07VhdeeKF8Pp8++ugjffjhh+rVq5c+/vhjnXnmmbr88su9Pj0AaJEo0wDQShQUFGjx4sUaMmSIFi1apIULF+qhhx5S27Zt6xz77LPPqqysTE8//bR27dqlKVOmKD4+XmPGjJEkrVu3TsOGDdPMmTO5Mg0Ah0GZBoAQ96c//UkRERGKjo7WoEGDdNFFF+nVV1/VhRdeqJiYmDrHO46jrKws/fGPf1T79u3Vvn17nXfeeZo/f35NmY6Pj9fZZ58tSYqIiAjq+QBAKKFMA0CI++Uvf6kTTzyxzvN+v/+gx+/cuVNVVVUKBAI1z3Xu3FlFRUU1jw98DQBwaNyACACtlDHmoM/HxsYqIiJCBQUFNc8VFBQoISEhWNEAoNWgTANAmPH5fDrttNP0z3/+U3v27FF+fr7eeustjRgxwutoABBymOYBAGFo4sSJevbZZ3XzzTerbdu2Gjt2rEaPHu11LAAIOWzaAgAAADQQ0zwAAACABqJMAwAAAA1EmQYAAAAaiDINAAAANBBlGgAAAGggyjQAAADQQJRpAAAAoIEo0wAAAEADUaYBAACABvr/GbLcPy84RgAAAAAASUVORK5CYII=\n",
380 | "text/plain": [
381 | ""
382 | ]
383 | },
384 | "metadata": {},
385 | "output_type": "display_data"
386 | }
387 | ],
388 | "source": [
389 | "p_B = np.linspace(.0001, .1, 100)\n",
390 | "pB_A =( .99*p_B)/(.99*p_B+.02*(1-p_B))\n",
391 | "fig, ax = plt.subplots(figsize=(12, 6))\n",
392 | "\n",
393 | "ax.plot(p_B, pB_A)\n",
394 | "ax.set_xlabel('Prior')\n",
395 | "ax.set_ylabel('Posterior')\n",
396 | "ax.set_title('Example 1')\n",
397 | "plt.show()"
398 | ]
399 | },
400 | {
401 | "cell_type": "markdown",
402 | "metadata": {},
403 | "source": [
404 | "## Probability Density Form of Bayesian Inference"
405 | ]
406 | },
407 | {
408 | "cell_type": "markdown",
409 | "metadata": {},
410 | "source": [
411 | "To handle complicated issues, the integral version of Bayes' Theorem is our guideline, every Bayesian computation requires solving an integral numerically. \n",
412 | "\n",
413 | "$$\n",
414 | "p(\\theta \\mid D)=\\frac{ p(D \\mid \\theta)p(\\theta)}{p(D)}=\\frac{p(D \\mid \\theta)p(\\theta) }{\\int p(D \\mid \\theta) p(\\theta) d \\theta}\n",
415 | "$$"
416 | ]
417 | },
418 | {
419 | "cell_type": "markdown",
420 | "metadata": {},
421 | "source": [
422 | "where $\\theta$ is the parameter that we hypothesized which characterizes the distribution $p(\\theta)$, note that we change the notation from $P$ to $p$, the former represents probability mass function and latter represents probability density distribution, which will be illustrated in details in next chapter."
423 | ]
424 | },
425 | {
426 | "cell_type": "markdown",
427 | "metadata": {},
428 | "source": [
429 | "Some important differences has to be pointed out, density form has an _infinite number_ of hypotheses though bounds could be specified. And also the integral in the denominator won't always have a closed-form solution, which is why **Markov Chain Monte Carlo** is usually used for numerical computation of the integral.\n",
430 | "\n",
431 | "In some special cases you can derive posterior in closed-form, usually both prior and posterior share the same distribution but different parameters, such prior is called **conjugate prior**. "
432 | ]
433 | },
434 | {
435 | "cell_type": "code",
436 | "execution_count": null,
437 | "metadata": {},
438 | "outputs": [],
439 | "source": []
440 | }
441 | ],
442 | "metadata": {
443 | "kernelspec": {
444 | "display_name": "Python 3",
445 | "language": "python",
446 | "name": "python3"
447 | },
448 | "language_info": {
449 | "codemirror_mode": {
450 | "name": "ipython",
451 | "version": 3
452 | },
453 | "file_extension": ".py",
454 | "mimetype": "text/x-python",
455 | "name": "python",
456 | "nbconvert_exporter": "python",
457 | "pygments_lexer": "ipython3",
458 | "version": "3.8.8"
459 | },
460 | "toc": {
461 | "base_numbering": 1,
462 | "nav_menu": {},
463 | "number_sections": true,
464 | "sideBar": true,
465 | "skip_h1_title": false,
466 | "title_cell": "Table of Contents",
467 | "title_sidebar": "Contents",
468 | "toc_cell": true,
469 | "toc_position": {},
470 | "toc_section_display": true,
471 | "toc_window_display": false
472 | }
473 | },
474 | "nbformat": 4,
475 | "nbformat_minor": 4
476 | }
477 |
--------------------------------------------------------------------------------