diff --git a/Seminar_materials/Seminar01/Seminar 1 (Introduction).ipynb b/Seminar_materials/Seminar01/Seminar 1 (Introduction).ipynb deleted file mode 100644 index 40597fa..0000000 --- a/Seminar_materials/Seminar01/Seminar 1 (Introduction).ipynb +++ /dev/null @@ -1,632 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "ed2cd65f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Seminar 1" - ] - }, - { - "cell_type": "markdown", - "id": "632282a7", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Let's get to know each other" - ] - }, - { - "cell_type": "markdown", - "id": "5756efe3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Counting" - ] - }, - { - "cell_type": "markdown", - "id": "19acb677", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 1\n", - "How many Russian-style car plates are possible in one region?" - ] - }, - { - "cell_type": "markdown", - "id": "6320db58", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "Russain car plate consists of three letters and three digits. Any digits are permitted, but the only permitted letters are the ones that have English-lookalikes. How many letters are there?" - ] - }, - { - "cell_type": "markdown", - "id": "c262061b", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "A, B, C, E, H, K, M, O, P, T, X, Y - total 12 letters." - ] - }, - { - "cell_type": "markdown", - "id": "85e5d53b", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "We choose the digits and the letters. Using sampling with replacement (why?):\n", - "- We choose three of ten digits: $10^3$\n", - "- We choose three of twelve letters: $12^3$\n", - "\n", - "Since the choice of the digits and the letters is independent, the total number of plates is therefore $10^3 \\cdot 12^3 = 1728000$." - ] - }, - { - "cell_type": "markdown", - "id": "8913f59a", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 2\n", - "How many 7-digit phone numbers are possible, assuming that the first digit can’t be a 0 or a 1?" - ] - }, - { - "cell_type": "markdown", - "id": "0d8962e6", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "We independently choose each digit. Using sampling with replacement (why?):\n", - "- We choose the first digit from reduced set of 8 digits: $8$\n", - "- We choose the rest 6 digits: $10^6$\n", - "\n", - "The total number of phone numbers is therefore $8 \\cdot 10^6$." - ] - }, - { - "cell_type": "markdown", - "id": "182aa1e5", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 3\n", - "How many paths are there from the point (0,0) to the point (110,111) in the plane such that each step either consists of going one unit up or one unit to the right?" - ] - }, - { - "cell_type": "markdown", - "id": "cf05e84b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "We will encode a path as a sequence of letters $U$ (for up step) and $R$ (for right step), like $URURURU\\ldots UURUR$.\n", - "\n", - "The sequence must consist of 110 $R$s and 111 $U$s (why?)" - ] - }, - { - "cell_type": "markdown", - "id": "c5bbb80d", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "We will use the factorial rule: the number of shuffles of this sequence is $(110+111)! = 221!$. Is it correct?" - ] - }, - { - "cell_type": "markdown", - "id": "09d469d4", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It is not correct, because we do not care about individual permutations of $R$s and $U$s, but we counted these permutations as different. We need to adjust for overcounting.\n", - "\n", - "We need to get rid of permutations that we counted multiple times. In order to do that, we divide byy the number of such permutations, and this gives the correct answer:\n", - "\n", - "$$\\frac{221!}{110!111!}$$" - ] - }, - { - "cell_type": "markdown", - "id": "e15dda8a", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Binomial coefficient\n", - "A binomial coefficient counts the number of subsets of a certain size for a set, such as the number of ways to choose a committee of size $k$ from a set of $n$ people. Sets and subsets are by definition unordered, e.g., $\\{3, 1, 4\\} = \\{4, 1, 3\\}$, so we are counting the number of ways to choose $k$ objects out of $n$, without replacement and without distinguishing between the different orders in which they could be chosen.\n", - "\n", - "For any nonnegative integers $k$ and $n$, the binomial coefficient $\\begin{pmatrix}n\\\\k\\end{pmatrix}$, read as \"$n$ choose $k$\", is the number of subsets of size $k$ for a set of size $n$. For $ k \\leqslant n$,\n", - "\n", - "$$\n", - "\\begin{pmatrix}n\\\\k\\end{pmatrix}=\\frac{n!}{k!(n-k)!}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "43ad8ad1", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Note that to fully describe the sequence we actually only need to specify where the $R$s are located. This falls under binomial coefficient definition. So there are $\\begin{pmatrix}110+111\\\\110\\end{pmatrix}$ possible paths." - ] - }, - { - "cell_type": "markdown", - "id": "8e3b937b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 3\n", - "How many ways are there to split a dozen people into 3 teams, where each team has 4 people?" - ] - }, - { - "cell_type": "markdown", - "id": "1d70cd45", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "Let's randomly pick the first team, then randomly pick the second and claim the remaining people the third team.\n", - "\n", - "This gives us $\\begin{pmatrix}12\\\\4\\end{pmatrix}\\cdot\\begin{pmatrix}8\\\\4\\end{pmatrix}$ possibilities. Is it correct?" - ] - }, - { - "cell_type": "markdown", - "id": "7c0b75a6", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It is not correct, because we overcounted due the fact that we do not actually care which team is the first, second or third. So we need to divide the expression by $3!$. The final answer is:\n", - "\n", - "$$\n", - "\\frac{1}{3!} \\cdot \\begin{pmatrix}12\\\\4\\end{pmatrix}\\cdot\\begin{pmatrix}8\\\\4\\end{pmatrix} = \\frac{1}{3!} \\cdot \\frac{12!}{4!8!} \\cdot \\frac{8!}{4!4!} = \\frac{12!}{4! 4! 4! 3!}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8cd47068", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "If we cared which team is which, we would obtain $\\frac{12!}{4! 4! 4!}$, which is called a multinomial coefficient. The only difference is that we choose more than one subset from one total." - ] - }, - { - "cell_type": "markdown", - "id": "3f3c4caa", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 5\n", - "A certain casino uses 10 standard decks of cards mixed together into one big deck, which we will call a superdeck. Thus, the superdeck has 52 · 10 = 520 cards, with 10 copies of each card. How many different 10-card hands can be dealt from the superdeck? The order of the cards does not matter, nor does it matter which of the original 10 decks the cards came from. Express your answer as a binomial coefficient." - ] - }, - { - "cell_type": "markdown", - "id": "1172a6f5", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "### Solution\n", - "\n", - "Since we have 10 copies of each card, there are in fact no limitations on the hand and sampling from superdeck without replacement is equivalent to sampling from deck with replacement. So we just use the formula for sampling with replacement where the order matters:\n", - "$$\n", - "\\begin{pmatrix}52+10-1\\\\10\\end{pmatrix}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "bfae1a78", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Naive definition" - ] - }, - { - "cell_type": "markdown", - "id": "fc86e8db", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 7\n", - "A city with 6 districts has 6 robberies in a particular week. Assume the robberies are located randomly, with all possibilities for which robbery occurred where equally likely. What is the probability that some district had more than 1 robbery?" - ] - }, - { - "cell_type": "markdown", - "id": "cf105e4e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "We will compute the probability of the complement.\n", - "\n", - "- All cases: There are $6^6$ possible configurations for which robbery occurred where.\n", - "- Favorable cases: There are $6!$ configurations where each district had exactly 1 of the 6.\n", - "\n", - "So the probability of the complement of the desired event is $6!/6^6$.\n", - "\n", - "Finally, the probability of some district having more than 1 robbery is $1 - 6!/6^6$." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "5dc1948a", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "0.9845679012345679" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from scipy.special import factorial\n", - "1 - factorial(6) / (6 ** 6)" - ] - }, - { - "cell_type": "markdown", - "id": "beacaf6b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 8\n", - "Each of $n$ balls is independently placed into one of $n$ boxes, with all boxes equally likely.\n", - "What is the probability that exactly one box is empty?" - ] - }, - { - "cell_type": "markdown", - "id": "171b4cea", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "Reformulate: one box empty means one box has two balls.\n", - "\n", - "- All cases: $n^n$ (why?)\n", - "- Favorable cases:\n", - " - Choose empty box: $\\begin{pmatrix}n\\\\1\\end{pmatrix}$\n", - " - Choose box with two balls: $\\begin{pmatrix}n-1\\\\1\\end{pmatrix}$\n", - " - Choose two balls: $\\begin{pmatrix}n\\\\2\\end{pmatrix}$\n", - " - Permutations of the rest balls: $(n-2)!$\n", - " \n", - "Overall:\n", - "$$\n", - "\\frac{\\begin{pmatrix}n\\\\1\\end{pmatrix}\\begin{pmatrix}n-1\\\\1\\end{pmatrix}\\begin{pmatrix}n\\\\2\\end{pmatrix}(n-2)!}{n^n} = \\frac{\\begin{pmatrix}n\\\\2\\end{pmatrix} n!}{n^n}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "ff01ba29", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Non-naive definition" - ] - }, - { - "cell_type": "markdown", - "id": "245a4685", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Definition\n", - "\n", - "A probability space consists of a sample space $S$ and a probability function $P$ which takes an event $A \\subseteq S$ as input and returns $P(A)$, a real number between $0$ and $1$, as output. The function $P$ must satisfy the following axioms:\n", - "- $P(\\varnothing) = 0, P(S) = 1$\n", - "- If $A1, A2, \\ldots$ are disjoint ($A_i \\cap A_j = \\varnothing, i \\neq j$) events, then\n", - " $$\n", - " P\\left(\\bigcup\\limits_{j=1}^\\infty A_j\\right) = \\sum\\limits_{j=1}^\\infty P(A_j)\n", - " $$" - ] - }, - { - "cell_type": "markdown", - "id": "0eb7c712", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Properties\n", - "\n", - "1. $P(A^c) = 1 − P(A)$\n", - "2. If $A \\subseteq B$, then $P(A) \\leqslant P(B)$\n", - "3. $P (A \\cup B) = P (A) + P (B) − P (A \\cap B)$" - ] - }, - { - "cell_type": "markdown", - "id": "36e2e51e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Inclusion-exclusion formula\n", - "\n", - "$$P (A \\cup B) = P (A) + P (B) − P (A \\cap B)$$" - ] - }, - { - "cell_type": "markdown", - "id": "7c5cd08c", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "$$P\\left(\\bigcup\\limits_{i=1}^n A_i\\right) = \\sum_i P(A_i) − \\sum_{i < j} P(A_i \\cap A_j) + \\sum_{i < j < k}P(A_i \\cap A_j \\cap A_k)−\\ldots+(−1)^{n+1} P(A_1 \\cap\\ldots \\cap A_n)$$" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "237d7658", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "source": [ - "from matplotlib_venn import venn2, venn3" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9a01b5cf", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "venn2(({'A', 'B', 'C'}, {'A', 'D', 'E'}))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "4c3960ed", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "venn3(({'A', 'B', 'C'}, {'A', 'D', 'E'}, {'A', \"F\", \"G\"}))" - ] - }, - { - "cell_type": "markdown", - "id": "1dada35e", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "$$(3+3+3)-(1+1+1)+1=9-3+1=7$$" - ] - }, - { - "cell_type": "markdown", - "id": "5da2e9e5", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Problem 9\n", - "A fair dice is rolled $n$ times. What is the probability that at least 1 of the 6 values never appears?" - ] - }, - { - "cell_type": "markdown", - "id": "8ad48654", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Solution\n", - "\n", - "$A_i$ - the event that $i$-th value does not appear. Then, $\\bigcup\\limits_{i=1}^6 A_i$ is the event that at least one values does not appear.\n", - "\n" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar01/Seminar 1 (Introduction).pdf b/Seminar_materials/Seminar01/Seminar 1 (Introduction).pdf deleted file mode 100644 index 57918d5..0000000 Binary files a/Seminar_materials/Seminar01/Seminar 1 (Introduction).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).ipynb b/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).ipynb deleted file mode 100644 index be01908..0000000 --- a/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).ipynb +++ /dev/null @@ -1,442 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1cac9fc4", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Seminar 2" - ] - }, - { - "cell_type": "markdown", - "id": "3b8f1f70", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap of counting and naive probability\n", - "\n", - "Sampling $k$ objects from $n$ choices:\n", - "\n", - "|With replacement|Order matters|Formula|Example|\n", - "|:-:|:-:|:-:|:-:|\n", - "|Yes|Yes|\\begin{eqnarray}n^k\\end{eqnarray}|Car plates|\n", - "|Yes|No|\\begin{eqnarray}\\begin{pmatrix}n+k-1\\\\k\\end{pmatrix}\\end{eqnarray}|\"Stars and bars\"|\n", - "|No|Yes|\\begin{eqnarray}\\lfloor n \\rfloor_k\\end{eqnarray}|Birthday paradox complement numerator|\n", - "|No|No|\\begin{eqnarray}\\begin{pmatrix}n\\\\k\\end{pmatrix}\\end{eqnarray}|Bose-Einstein|\n", - "\n", - "Arranging $k$ objects into $n$ boxes:\n", - "\n", - "|With replacement|Objects distinguishable|Formula|\n", - "|:-:|:-:|:-:|\n", - "|Yes|Yes|\\begin{eqnarray}n^k\\end{eqnarray}|\n", - "|Yes|No|\\begin{eqnarray}\\begin{pmatrix}n+k-1\\\\k\\end{pmatrix}\\end{eqnarray}|\n", - "|No|Yes|\\begin{eqnarray}\\lfloor n \\rfloor_k\\end{eqnarray}|\n", - "|No|No|\\begin{eqnarray}\\begin{pmatrix}n\\\\k\\end{pmatrix}\\end{eqnarray}|" - ] - }, - { - "cell_type": "markdown", - "id": "d8d195a0", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 1\n", - "\n", - "There are 15 chocolate bars and 10 children. In how many ways can the chocolate bars be distributed to the children, in each of the following scenarios?\n", - "- The chocolate bars are fungible (interchangeable).\n", - "- The chocolate bars are fungible, and each child must receive at least one.\n", - "- The chocolate bars are not fungible (it matters which particular bar goes where).\n", - "- The chocolate bars are not fungible, and each child must receive at least one. Hint: The strategy suggested in (b) does not apply. Instead, consider randomly giving the chocolate bars to the children, and apply inclusion-exclusion." - ] - }, - { - "cell_type": "markdown", - "id": "d9a7231d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.1\n", - "\n", - "The chocolate bars are fungible (interchangeable). Since the children are interchangeable as well, we will be using \"stars and bars\":\n", - "\n", - "$$|\\underbrace{oo}_{\\text{child }1}|\\underbrace{o}_{\\text{child }2}|\\underbrace{o}_{\\text{child }3}|\\ldots|\\underbrace{o}_{\\text{child }10}|$$\n", - "\n", - "- We have $10-1=9$ bars (separators between children), because left- and right-most bars are fixed\n", - "- We have $15$ stars (chocolates)\n", - "- Total $9+15=24$ possible object positions\n", - "\n", - "Therefore, we have $\\begin{pmatrix}24\\\\9\\end{pmatrix}$ combinations." - ] - }, - { - "cell_type": "markdown", - "id": "68d5be3e", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "There is a different way to arrive at this answer: for each of 15 chocolate bars we are making a decision from 10 children with replacement. The formula from the lecture gives $\\begin{pmatrix}10+15-1\\\\15\\end{pmatrix}$, which is the same number." - ] - }, - { - "cell_type": "markdown", - "id": "bf200579", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.2\n", - "\n", - "\n", - "The chocolate bars are fungible (interchangeable). Since the children are interchangeable as well, we will be using \"stars and bars\". Let's first lay out all the chocolate bars in a line:\n", - "\n", - "$$oooo\\ldots o$$\n", - "\n", - "Next, we need to put the boundaries into their possible positions, but now without replacement (so that boundaries do not coincide leaving a child without his chocolate bar)\n", - "\n", - "$$|\\underbrace{oo}_{\\text{child }1}|\\underbrace{o}_{\\text{child }2}|\\underbrace{o}_{\\text{child }3}|\\ldots|\\underbrace{o}_{\\text{child }10}|$$\n", - "\n", - "- We have $10-1=9$ bars (separators between children), because left- and right-most bars are fixed\n", - "- We have $15-1=14$ stars (chocolates) i.e. object positions\n", - "\n", - "Sampling without replacement, we obtain $\\begin{pmatrix}14\\\\9\\end{pmatrix}$." - ] - }, - { - "cell_type": "markdown", - "id": "e6f120f7", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.3\n", - "\n", - "The chocolate bars are not fungible (it matters which particular bar goes where), but the children are still interchangeable. Can't use \"stars and bars\", though.\n", - "\n", - "For each of 15 chocolate bars we will be selecting one of 10 children who gets it, with replacement of children. The formula from the lecture gives us: $10^{15}$." - ] - }, - { - "cell_type": "markdown", - "id": "fe4464dd", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.4\n", - "\n", - "The chocolate bars are not fungible, and each child must receive at least one. The children are interchangeable. Can't use \"stars and bars\". Instead, let's apply inclusion-exclusion. From the previous subproblem, the number of all possible combinations is $10^{15} = \\begin{pmatrix}10\\\\0\\end{pmatrix} 10^{15}$.\n", - "\n", - "Next, let's count how many cases are there, when exactly one child has no chocolate bar. Denote $A_{i}$ the event that child $i$ does not get a chocolate bar. The number of such combinations is $N(A_i) = \\begin{pmatrix}10\\\\1\\end{pmatrix}9^{15}$.\n", - "\n", - "Next, let's count how many cases are there, when exactly two children have no chocolate bar: $N(A_i \\cap A_j) = \\begin{pmatrix}10\\\\2\\end{pmatrix}8^{15}$.\n", - "\n", - "See the pattern? Now we need to apply inclusion-exclusion formula. The final number of combinations is:\n", - "$$\n", - "\\sum_{k=0}^{10} (-1)^k \\begin{pmatrix}10\\\\k\\end{pmatrix} (10-k)^{15}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5a3ae9da", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 2\n", - "\n", - "What is the number of all subsets of a set with $N$ elements?" - ] - }, - { - "cell_type": "markdown", - "id": "7606e3a5", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "Denote our set $A = \\{a_1, a_2, \\ldots, a_N\\}$. Now let's create a subset $B \\subset A$. For every element $a_i$, let's choose if we will include it into subset ($1$) or not ($0$). How many combinations of zeros and ones are there then?" - ] - }, - { - "cell_type": "markdown", - "id": "6db37b9a", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Using ordered sampling with replacement, we obtain $2^N$ combinations." - ] - }, - { - "cell_type": "markdown", - "id": "63428a7f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 3\n", - "\n", - "There are 100 passengers lined up to board an airplane with 100 seats (with each seat assigned to one of the passengers). The first passenger in line crazily decides to sit in a randomly chosen seat (with all seats equally likely). Each subsequent passenger takes their assigned seat if available, and otherwise sits in a random available seat. What is the probability that the last passenger in line gets to sit in their assigned seat?" - ] - }, - { - "cell_type": "markdown", - "id": "1554fccc", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "Denote $i$-th passenger true seat as $i$, regardless of its position in the plane.\n", - "\n", - "Next, notice that if any passenger $j$ sits into seat $1$, it means that his place $j$ is taken. Such case therefore removes the source of permutation. After that, all the passengers that enter the plane will be able to sit in their true seats. It is important that it always happens and can happen with any passenger $j$.\n", - "\n", - "Generally, the last $100$-th passenger may observe two cases:\n", - "- The premutation was removed, then he has the option to sit into his true $100$-th seat\n", - "- The permutation was not removed, then he is the one to remove the permutation and take seat $1$.\n", - "\n", - "We can now reduce the problem to just two seats: $1$-st and $100$-th. One of the passengers seating on these seats is the last $100$-th passenger, the other is any other passenger $j$." - ] - }, - { - "cell_type": "markdown", - "id": "0113aef1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Since $j<100$, it means that both $1$-st and $100$-th seats were empty when he or she boarded the plane! And the probabilities to sit in any of them is equal.\n", - "\n", - "If $j$ sat in $1$ then the last passenger ended up sitting in $100$ and the resulting configuration of passengers sitting in the 100 seats is the same as if $j$ had sat in $100$ except for the fact that the passengers in $1$ and $100$ are swapped. Therefore these two configurations occur with the same probability and exactly one of them has the last passenger in her seat $100$.\n", - "\n", - "This implies that all the final configurations of passengers can be paired such that the two configurations in any pair occur with the same probability and exactly one has the last passenger in her seat.\n", - "\n", - "This implies that the probability that the last passenger is in her seat is $0.5$." - ] - }, - { - "cell_type": "markdown", - "id": "b5342290", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Axiomatic definition\n", - "\n", - "A probability space is the following tuple: $(\\Omega, \\cal{F}, \\mathbb{P})$." - ] - }, - { - "cell_type": "markdown", - "id": "714fcb86", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "- **Sample space** $\\Omega = \\{\\omega\\}$ is an arbitrary set. It is a space of **elementary outcomes** (basic mutually exclusive events)." - ] - }, - { - "cell_type": "markdown", - "id": "994580c0", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "- Basic and non-basic events are associated with **sets** of outcomes, which belong to **set of events** - a family $\\cal{F} \\subset 2^\\Omega$, such that\n", - " 1. $\\Omega \\in \\cal{F}$\n", - " 2. If $A \\in \\cal{F}$, then $\\overline{A} \\in \\cal{F}$ (closed under complement operation)\n", - " 3. If $A, B \\in \\cal{F}$, then $A \\cup B \\in \\cal{F}$ (closed under union operation)\n", - " 4. If $A_1, A_2, \\ldots \\in \\cal{F}$, then $\\bigcup_{k=1}^\\infty A_k \\in \\cal{F}$ (closed under countable union operation)\n", - " \n", - "A set $\\cal{F}$ that satisfies conditions (1, 2, 3) is called an **algebra of sets**. A set $\\cal{F}$ that satisfies conditions (1, 2, 4) is called a **$\\sigma$-algebra of sets**. If $\\Omega$ is finite, any algebra is a $\\sigma$-algebra.\n", - "\n", - "Properties of a $\\sigma$-algebra:\n", - "- $\\varnothing \\in \\cal{F}$\n", - "- If $A_1, A_2, \\ldots \\in \\cal{F}$, then $\\bigcap_{k=1}^\\infty A_k \\in \\cal{F}$\n", - "\n", - "The pair $(\\Omega, \\cal{F})$ is called a **measurable space**." - ] - }, - { - "cell_type": "markdown", - "id": "209206a1", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "- The function $\\mathbb{P}: \\cal{F} \\to \\mathbb{R}_+$ is called a **probability measure**, if\n", - " 1. $\\mathbb{P}(\\Omega) = 1$\n", - " 2. If $A_1, A_2, \\ldots \\in \\cal{F}$ and $A_i \\cap A_j = \\varnothing$ for $i\\neq j$, then $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty A_k \\right) = \\sum_{k=1}^\\infty \\mathbb{P}(A_k)$ ($\\sigma$-additivity)\n", - " \n", - "Properties of probability measure:\n", - "- $\\mathbb{P}(\\overline{A}) = 1 - \\mathbb{P}(A)$\n", - "- If $B \\subset A$, then $\\mathbb{P}(B) \\leqslant \\mathbb{P}(A)$\n", - "- If $A_1 \\subset A_2 \\subset \\ldots$, then $\\mathbb{P}\\left(\\bigcup_{k=1}^\\infty\\right) = \\lim_{k\\to\\infty} \\mathbb{P}(A_k)$\n", - "- If $A_1 \\supset A_2 \\supset \\ldots$, then $\\mathbb{P}\\left(\\bigcap_{k=1}^\\infty\\right) = \\lim_{k\\to\\infty} \\mathbb{P}(A_k)$" - ] - }, - { - "cell_type": "markdown", - "id": "764dbfee", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 4\n", - "\n", - "Consider set $S$ of all (how many?) subsets of set $M = \\{1, \\ldots, N\\}$. We take two sets randomly and independently two sets $A, B \\in S$. Find the probability that $A \\cap B = \\varnothing$." - ] - }, - { - "cell_type": "markdown", - "id": "eb8e0e1b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "Take any element $e \\in M$ from the original set.\n", - "\n", - "- $\\mathbb{P}(e \\in A) = p_1 = \\tfrac12$, by construction of $A$\n", - "- $\\mathbb{P}(e \\in B) = p_2 = \\tfrac12$, by construction of $B$\n", - "- $\\mathbb{P}(e \\in A \\cap B) = p_{12} = p_1 \\cdot p_2 = \\tfrac14$\n", - "- $\\mathbb{P}(e \\notin A \\cap B) = 1 - \\mathbb{P}(e \\in A \\cap B) = 1 - p_{12} = \\tfrac34$\n", - "\n", - "Repeat for every $e \\in M$ to obtain:\n", - "$$\n", - "\\mathbb{P}(A \\cap B = \\varnothing) = \\left( \\frac34 \\right)^N\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "97ac6cc4", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 3\n", - "\n", - "Let $B_1, B_2, \\ldots, B_n \\in \\cal{F}$ be some events. Prove that\n", - "$$\n", - "\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty B_k \\right) \\leqslant \\sum_{k=1}^\\infty \\mathbb{P}(B_k)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "86ea074b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "- $\\sigma$-additivity axiom of probability: If $A_1, A_2, \\ldots \\in \\cal{F}$ and $A_i \\cap A_j = \\varnothing$ for $i\\neq j$, then $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty A_k \\right) = \\sum_{k=1}^\\infty \\mathbb{P}(A_k)$\n", - "- We need to prove $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty B_k \\right) \\leqslant \\sum_{k=1}^\\infty \\mathbb{P}(B_k)$\n", - "\n", - "What is lacking?" - ] - }, - { - "cell_type": "markdown", - "id": "40428e99", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "We need to correct our events $B_k$ to be disjoint. Let's introduce sets $C_k = B_k - \\bigcup_{i=1}^{k=1} B_k$. They are disjoint by construction.\n", - "\n", - "Since $C_k \\subset B_k$, we have\n", - "- $\\bigcup_{k=1}^\\infty B_k = \\bigcup_{k=1}^\\infty C_k$\n", - "- $\\mathbb{P}(C_k) \\leqslant \\mathbb{P}(B_k)$\n", - "\n", - "Therefore,\n", - "$$\n", - "\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty B_k \\right) = \\mathbb{P}\\left(\\bigcup_{k=0}^\\infty C_k \\right)= \\sum_{k=1}^\\infty \\mathbb{P}(C_k) \\leqslant \\sum_{k=1}^\\infty \\mathbb{P}(B_k)\n", - "$$" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).pdf b/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).pdf deleted file mode 100644 index 9336153..0000000 Binary files a/Seminar_materials/Seminar02/Seminar 2 (Definition of probability).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar03/Seminar 3 (Conditional probability).pdf b/Seminar_materials/Seminar03/Seminar 3 (Conditional probability).pdf deleted file mode 100644 index 073c38b..0000000 Binary files a/Seminar_materials/Seminar03/Seminar 3 (Conditional probability).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar04-05/.ipynb_checkpoints/Seminar 4 (Random variables)-checkpoint.ipynb b/Seminar_materials/Seminar04-05/.ipynb_checkpoints/Seminar 4 (Random variables)-checkpoint.ipynb deleted file mode 100644 index 061a25d..0000000 --- a/Seminar_materials/Seminar04-05/.ipynb_checkpoints/Seminar 4 (Random variables)-checkpoint.ipynb +++ /dev/null @@ -1,757 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "a8f7b639", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Seminar 4" - ] - }, - { - "cell_type": "markdown", - "id": "7bb7a2e9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap of axiomatic definition of probability\n", - "\n", - "A probability space is the following tuple: $(\\Omega, \\cal{F}, \\mathbb{P})$." - ] - }, - { - "cell_type": "markdown", - "id": "concrete-petroleum", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- **Sample space** $\\Omega$\n", - "- **Set of events** $\\cal{F}$\n", - "- **Probability measure** $\\mathbb{P}$" - ] - }, - { - "cell_type": "markdown", - "id": "collaborative-madison", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Set of events is $\\cal{F} \\subset 2^\\Omega$ ($\\sigma$-algebra), such that\n", - "1. $\\Omega \\in \\cal{F}$\n", - "2. If $A \\in \\cal{F}$, then $\\overline{A} \\in \\cal{F}$ (closed under complement operation)\n", - "3. If $A_1, A_2, \\ldots \\in \\cal{F}$, then $\\bigcup_{k=1}^\\infty A_k \\in \\cal{F}$ (closed under countable union operation)\n", - "\n", - "The pair $(\\Omega, \\cal{F})$ is called a measurable space. Set $A$ is called measurable if $A \\in \\mathcal{F}$.\n", - "\n", - "Probability measure is $\\mathbb{P}: \\cal{F} \\to \\mathbb{R}_+$, such that\n", - "1. $\\mathbb{P}(\\Omega) = 1$\n", - "2. If $A_1, A_2, \\ldots \\in \\cal{F}$ and $A_i \\cap A_j = \\varnothing$ for $i\\neq j$, then $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty A_k \\right) = \\sum_{k=1}^\\infty \\mathbb{P}(A_k)$ ($\\sigma$-additivity)" - ] - }, - { - "cell_type": "markdown", - "id": "reduced-february", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "Let\n", - "- $\\Omega = (0, 1]$\n", - "- $\\mathcal{F} = 2^{(0, 1]}$\n", - "- $\\mathbb{P}(A) = \\tfrac{k}{n}$, where $k$ is the number of points like $\\tfrac{i}{n}, i \\in \\{1, \\ldots, n\\}$ in $A$\n", - "\n", - "We can check that all the necessary conditions are satisfied:" - ] - }, - { - "cell_type": "markdown", - "id": "convinced-musical", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "1. $\\Omega = (0, 1] \\subset 2^{(0, 1]} = \\mathcal{F}$\n", - "2. If $A \\subset (0, 1] \\in \\mathcal{F}$, then $\\overline{A} \\subset (0, 1] \\in \\mathcal{F}$ as well\n", - "3. If $A_1, A_2, \\ldots \\subset (0, 1] \\in \\mathcal{F}$, then all their elements are in $(0, 1]$, and thus the union $\\bigcup_{k=1}^\\infty A_k \\subset (0, 1] \\in \\mathcal{F}$\n", - "4. $\\mathbb{P}(\\Omega) = \\mathbb{P}((0,1]) = \\tfrac{n}{n} = 1$\n", - "5. If $A_1$ and $A_2 \\in \\cal{F}$ and $A_1 \\cap A_2 = \\varnothing$, then $\\tfrac{k_1 + k_2}{n} = \\mathbb{P}\\left(A_1 \\cup A_2 \\right) = \\mathbb{P}(A_1) + \\mathbb{P}(A_2) = \\tfrac{k_1}{n} + \\tfrac{k_2}{n}$" - ] - }, - { - "cell_type": "markdown", - "id": "congressional-mercury", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "Let\n", - "- $\\Omega = (0, 1]$\n", - "- $\\mathcal{F}$ is the set of all half-intervals $(a, b]$ in $(0, 1]$\n", - "- $\\mathbb{P}((a, b]) = b - a$ (length of half-interval)" - ] - }, - { - "cell_type": "markdown", - "id": "current-height", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "In this case, $\\mathcal{F}$ is not a $\\sigma$-algebra, because union of half-intervals is not necessarily a half-interval." - ] - }, - { - "cell_type": "markdown", - "id": "expected-dynamics", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "We need to add something else to $\\mathcal{F}$. We can add all finite unions of half-intervals, then $\\mathcal{F}$ will be an algebra, but still not $\\sigma$-algebra. We can **not** build such $\\mathcal{F}$ by hand, but it exists according to the following theorem.\n", - "\n", - "**Theorem 1:** Let $\\mathcal{A}$ be some set of subsets of set $A$, then exists a minimal $\\sigma$-algebra $\\sigma(\\mathcal{A})$, which contains $\\mathcal{A}$. It means that this $\\sigma(\\mathcal{A})$ will be a part of any larger $\\sigma$-algebra, that contains $\\mathcal{A}$.\n", - "\n", - "**Theorem 2 (Caratheodory Theorem):** Let probability measure $\\mathbb{P}$ be defined on algebra $\\mathcal{A}$ and $\\sigma$-additive on it. Then $\\mathbb{P}$ can be extended to $\\sigma(\\mathcal{A})$ uniquely.\n", - "\n", - "This gives us the following result: The measure $\\mathbb{P}$, defined on half-intervals in $(0, 1]$ as $\\mathbb{P}((a, b]) = b - a$, can be uniquely extended to a minimal $\\sigma$-algebra containing such half-intervals. Then it will be a probability measure." - ] - }, - { - "cell_type": "markdown", - "id": "alpine-culture", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Lebesgue measure\n", - "\n", - "What we just defined is called **probabilistic Lebesgue measure** $\\lambda((a, b]) = \\mathbb{P}((a, b]) = b - a$. Next, we can define non-probabilistic measure.\n", - "\n", - "A mapping $\\mu: \\mathcal{F} \\to [0, +\\infty)$ is called a **measure** if it is additive and $\\sigma$-additive (we simply ignore the $\\mathbb{P}(\\Omega) = 1$ property).\n", - "\n", - "So we defined $\\lambda$ on $(0, 1]$. We can naturally extend it to $(n, n+1]$: the measure of set $A \\subset 2^{(n, n+1]}$ will be equal to measure of set $B \\subset 2^{(0, 1]}$ obtained by shifting the set.\n", - "\n", - "Finally, for a general set $A \\subset \\mathbb{R}$, define\n", - "$$\n", - "\\lambda(A) = \\sum\\limits_{n \\in \\mathbb{Z}} \\lambda\\left( A \\cap (n, n+1] \\right)\n", - "$$\n", - "\n", - "This is the **Lebesgue measure on real line**, what we usually call length." - ] - }, - { - "cell_type": "markdown", - "id": "trying-reconstruction", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Borel $\\sigma$-algebra\n", - "\n", - "Minimal $\\sigma$-algebra $\\mathcal{B}(A)$ that contains all open subsets of $A$ is called **Borel $\\sigma$-algebra**.\n", - "\n", - "**Lemma:** Borel $\\sigma$-algebra of subsets of $(0, 1]$ coincides with minimal $\\sigma$-algebra, containing all half-intervals.\n", - "\n", - "Since we extended Lebesgue measure to the whole real line, we can find measure of every set in $\\mathcal{B}(\\mathbb{R})$." - ] - }, - { - "cell_type": "markdown", - "id": "decreased-database", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Measurable mapping\n", - "\n", - "Consider\n", - "- Two measurable spaces $(X, \\mathcal{F}_X)$ and $(Y, \\mathcal{F}_Y)$\n", - "- A mapping $T: X \\to Y$\n", - "- A measurable set $A \\in \\mathcal{F}_X$\n", - "\n", - "**Full pre-image** of $A$ under T is then\n", - "$$\n", - "T^{-1}(A) = \\{ x \\in X | T(x) \\in A \\}\n", - "$$\n", - "\n", - "Full pre-image of $A$ under $T$ can also be measurable: $T^{-1}(A) \\in \\mathcal{F}_X$, but not necessarily. If for any measurable set $A$ its full pre-image under $T$ is measurable, we say that $T$ is a **measurable mapping**." - ] - }, - { - "cell_type": "markdown", - "id": "present-example", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random variables\n", - "\n", - "Consider probabiliy space $(\\Omega, \\mathcal{F}, \\mathbb{P})$. A **random variable** is a measurable function $X: \\Omega \\to \\mathbb{R}$ from $(\\Omega, \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$.\n", - "\n", - "It means that the pre-image of any set $A$ in $\\mathcal{B}(\\mathbb{R})$ belongs to $\\mathcal{F}$:\n", - "$$\n", - "\\forall A \\in \\mathcal{B}(\\mathbb{R}) \\Longrightarrow X^{-1}(A) \\in \\mathcal{F}\n", - "$$\n", - "\n", - "Think of event $B \\in \\mathcal{B}(\\mathbb{R})$ and its pre-image $A \\in \\mathcal{F}$. Naturally, the probability that random variable $X$ lies in set $B$ is the same as probability of event $A$:\n", - "$$\n", - "\\mathbb{P}(X \\in B) = \\mathbb{P}(X^{-1}(B)) = \\mathbb{P}(A)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "appropriate-bridal", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "Let\n", - "- $\\Omega = [0, 1]$\n", - "- $\\mathcal{F} = \\mathcal{B}([0, 1])$\n", - "- $X_1(\\omega) = \\omega$" - ] - }, - { - "cell_type": "markdown", - "id": "abandoned-concert", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "In order to check if $X_1$ will be a random variable, we need to verify that $X_1$ is a measurable function from $([0, 1], \\mathcal{B}([0, 1]))$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$." - ] - }, - { - "cell_type": "markdown", - "id": "curious-throat", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It will be such measurable function, because the pre-image of any set $[a, b] \\in \\mathcal{B}(\\mathbb{R})$ lies in $\\mathcal{B}([0, 1])$:\n", - "$$\n", - "X_1^{-1}([a, b]) = [a, b] \\cap [0, 1]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "stretch-motion", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4\n", - "\n", - "Let\n", - "- $\\Omega = [0, 1]$\n", - "- $\\mathcal{F} = \\{\\Omega, \\varnothing\\}$\n", - "- $X_1(\\omega) = \\omega$\n", - "\n", - "In order to check if $X_1$ will be a random variable, we need to verify that $X_1$ is a measurable function from $([0, 1], \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$." - ] - }, - { - "cell_type": "markdown", - "id": "practical-camcorder", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It will **not** be such measurable function, because the pre-image of e.g. $[0, 1/2] \\in \\mathcal{B}(\\mathbb{R})$ does not lie in $\\mathcal{F}$:\n", - "$$\n", - "X_1^{-1}([0, 1/2]) = [0, 1/2] \\not\\in \\{[0, 1], \\varnothing\\}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "stretch-vehicle", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Independence of random variables\n", - "\n", - "A **minimal $\\sigma$-algebra generated by random variable $X$** is the minimal $\\sigma$-algebra containing pre-images of all borel sets:\n", - "$$\n", - "\\sigma(X) = \\sigma\\{X^{-1}(B), B \\in \\mathcal{B}(\\mathbb{R})\\} = \\{X^{-1}(B), B \\in \\mathcal{B}(\\mathbb{R})\\}\n", - "$$\n", - "\n", - "Random variables $X$ and $Y$ are called independent if their minimal generated $\\sigma$-algebras are independent. This means that any events $A \\in \\sigma(X)$ and $B \\in \\sigma(Y)$ should be independent:\n", - "$$\n", - "\\mathbb{P}(A \\cap B) = \\mathbb{P}(A) \\mathbb{P}(B)\n", - "$$\n", - "\n", - "Let's say $A$ is pre-image of some borel event $B_1$ and $B$ is the pre-image of a different borel event $B_2$. Then, $\\mathbb{P}(A) = \\mathbb{P}(X^{-1}(B_1)) = \\mathbb{P}(X \\in B_1)$ and similarly for $B_2$, so finally,\n", - "$$\n", - "\\mathbb{P}(X \\in B_1, X \\in B_2) = \\mathbb{P}(X \\in B_1) \\mathbb{P}(X \\in B_2)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "built-newton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Distribution of a random variable\n", - "\n", - "Consider probability sapce $(\\Omega, \\mathcal{F}, \\mathbb{P})$ and random variable $X: \\Omega \\to \\mathbb{R}$. We will call the image $\\mu$ of measure $\\mathbb{P}$ through the mapping $X$ **the distribution** (or distribution law) of $X$:\n", - "$$\n", - "\\mu(A) = \\mathbb{P}(X^{-1}(A))\n", - "$$\n", - "\n", - "We will write $X \\sim \\mu$." - ] - }, - { - "cell_type": "markdown", - "id": "elementary-hospital", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Three types of distributions\n", - "\n", - "**Lebesgue theorem:** Let $\\nu$ be Lenesgue measure on $\\mathbb{R}$ and $\\mu$ be any probabilistic measure, then $\\mu = \\mu_d + \\mu_s + \\mu_{ac}$, where\n", - "- $\\mu_d$ is **discrete measure**, i.e. it is concentrated on a countable set of points.\n", - "- $\\mu_s$ is **singular measure**, i.e. exists measurable set $S$ such that $\\nu(S) = 0$ and $\\mu_s(\\overline{S}) = 0$ and $\\forall x \\in \\mathbb{R} \\mu_s(\\{x\\}) = 0$.\n", - "- $\\mu_{ac}$ is **absolutely continuous measure**, i.e. from $\\nu(A) = 0$ follows $\\mu_{ac}(A) = 0$ for any measurable set $A$.\n", - " By **Radon-Nikodim theorem**, it is equivalent to the existence of a non-negative measurable function $f: \\mathbb{R} \\to \\mathbb{R}$ called **probability density function**, such that $\\mu_{ac}(A) = \\int_A f(x) dx$.\n", - " \n", - "Because the distributions are defined through the measure, any probability distribution may be viewed as a mixture of three base types: discrete, singular and continuous.\n", - "\n", - "Normally though, the distributions fall into just one category. Also, you never encounter singular distributions in practice." - ] - }, - { - "cell_type": "markdown", - "id": "fabulous-hamilton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 5\n", - "\n", - "Consider event $A \\in \\mathcal{F}$ and a random variable $X = \\mathbb{I}\\text{nd}_A$, an indicator:\n", - "$$\n", - "\\mathbb{I}\\text{nd}_A(x) = \\begin{cases}\n", - "1, x \\in A, \\\\\n", - "0, \\text{else}\n", - "\\end{cases}\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(X = 1) = \\mathbb{P}(A) = p\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(X = 0) = 1 - \\mathbb{P}(A) = 1 - p\n", - "$$\n", - "\n", - "We say that $X$ follows **Bernoulli distribution** with parameter $p$ and write $X \\sim Be(p)$.\n", - "\n", - "We will call $\\mathbb{P}_X(\\omega)$ a **probability mass function** (PMF)." - ] - }, - { - "cell_type": "markdown", - "id": "ignored-connection", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Bernoulli trial scheme\n", - "\n", - "Previously we have worked with independent events that were happening in one probability space. But sometimes we want to have multiple trials, where for every trial the probability space is known, but we are interested in the probability space covering all the trials at once. We can achieve it via direct product of probability spaces.\n", - "\n", - "If all probability spaces are the same and equal to:\n", - "- $\\Omega = \\{0, 1\\}$\n", - "- $\\mathcal{F} = \\{\\varnothing, 0, 1, \\Omega\\}$\n", - "- $\\mathbb{P}(1) = p$ and $\\mathbb{P}(0) = 1 - p$\n", - "\n", - "Then we call such experiment a **Bernoulli trial scheme**, and the probability space of it is:\n", - "- $\\Omega = \\{(i_1, \\ldots, i_n), i_j \\in \\{0, 1\\}\\}$\n", - "- $\\mathcal{F} = 2^\\Omega$\n", - "- $\\mathbb{P}(i_1, \\ldots, i_n) = p^{\\text{num} j \\text{ such that } i_j = 1} (1 - p)^{\\text{num} j \\text{ such that } i_j = 0}$" - ] - }, - { - "cell_type": "markdown", - "id": "statutory-league", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 6\n", - "\n", - "Consider $X_1, \\ldots, X_n \\sim Be(p)$ independent random variables. Then $Y = \\sum_{k=1}^n X_k$ follows **Binomial distribution** with parameters $n$ and $p$, $Y \\sim Bi(n, p)$. $\\mathbb{P}(Y = k) = ?$" - ] - }, - { - "cell_type": "markdown", - "id": "adaptive-clinton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 6\n", - "\n", - "$$\n", - "\\mathbb{P}(Y = k) = \\begin{pmatrix}n\\\\k\\end{pmatrix} p^k (1-p)^{n-k}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "joint-donor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 7\n", - "\n", - "Consider $X$ and $Y$ independent $\\mathbb{Z}$-valued random variables. $\\mathbb{P}(X + Y = k) = ?$" - ] - }, - { - "cell_type": "markdown", - "id": "alive-chancellor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 7\n", - "\n", - "$$\n", - "\\mathbb{P}(X + Y = k) = \\sum_{m} \\mathbb{P}(X = m) \\mathbb{P}(Y = k - m)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "intense-college", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 8\n", - "\n", - "Let $X \\sim Bi(n, p)$ and $Y \\sim Bi(m, p)$ be independent. What is the distribution of $Z = X + Y$?" - ] - }, - { - "cell_type": "markdown", - "id": "temporal-member", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 8\n", - "\n", - "$$\n", - "\\mathbb{P}(X + Y = k) = \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} p^j (1-p)^{n-j} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} p^{k-j} (1-p)^{m-k+j} = p^{k} (1-p)^{n+m-k} \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} = \\begin{pmatrix}n+m\\\\k\\end{pmatrix} p^{k} (1-p)^{n+m-k}\n", - "$$\n", - "\n", - "$$\n", - "Z \\sim Bi(n+m, p)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "increasing-delaware", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Cumulative distribution function\n", - "\n", - "Note that distribution of a discrete distribution of a random variable $X$ is uniquely defined by its PMF $\\mathbb{P}(X = x_i)$. In general, we define the distribution using cumulative distribution function (CDF):\n", - "$$\n", - "F_X(x) = \\mathbb{P}(X < x)\n", - "$$\n", - "\n", - "It has the following properties:\n", - "- $F_X$ is non-decreasing\n", - "- $\\lim\\limits_{x\\to-\\infty}F_X(x) = 0$\n", - "- $\\lim\\limits_{x\\to+\\infty}F_X(x) = 1$\n", - "- $F_X$ if left continuous\n", - "\n", - "Interesting enough, the converse is also true. Any function that conforms to the properties above defines some probability distribution on $\\mathbb{R}$ and this relation is unique." - ] - }, - { - "cell_type": "markdown", - "id": "printable-haiti", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Probability density function\n", - "\n", - "- If $X$ has a discrete distribution, then $F_X$ has a countable number of jumps $p_i = \\mathbb{P}(X = x_i)$ and at $x = x_i$ it is continuous\n", - "- If $X$ has absolutely continuous distribution, then $F_X$ is differentiable a.e. and can be recovered from its derivative:\n", - " $$\n", - " F_X(x) = \\int\\limits_{-\\infty}^x f_X(t) dt\n", - " $$\n", - " \n", - " where $f_X(t)$ is the probability density function and $f_X(t) = F'_X(x)$ a.e." - ] - }, - { - "cell_type": "markdown", - "id": "vocational-chinese", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 9\n", - "\n", - "We say that random variable $X$ is distributed uniformly on $[a, b]$ and write $X \\sim U([a, b])$ if\n", - "$$\n", - "f_X(x) = \\begin{cases}\n", - "\\frac{1}{b-a}, a \\leqslant x \\leqslant b, \\\\\n", - "0, \\text{else}\n", - "\\end{cases}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "adjusted-acrylic", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 10\n", - "\n", - "Consider $X$ and $Y$ independent random variables with PDFs $f_X$ and $f_Y$ respectively. Then, their sum $Z = X + Y$ has absolutely continuous distribution with density\n", - "$$\n", - "f_Z(z) = \\int f_X(x) f_Y(z-x) dx\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "local-minnesota", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 11\n", - "\n", - "Let $X, Y \\sim U([0, 1])$ and $Z = X + Y$. Find $f_Z(z)$." - ] - }, - { - "cell_type": "markdown", - "id": "wireless-commerce", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 11\n", - "\n", - "$$\n", - "f_Z(z) = \\int\\limits_{0}^1 f_X(x) f_Y(z-x) dx = \\int\\limits_{0}^1 f_Y(z-x) dx = \\begin{cases}\n", - "z, & 0 \\leqslant z \\leqslant 1, \\\\\n", - "2 - z, & 1 \\leqslant z \\leqslant 2, \\\\\n", - "0, & \\text{else}\n", - "\\end{cases}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "auburn-speaking", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Functions of random variables\n", - "\n", - "Random variables transform like functions, i.e. if $Y = \\varphi(X)$, then $Y(\\omega) = \\varphi(X(\\omega))$." - ] - }, - { - "cell_type": "markdown", - "id": "identical-amazon", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 12\n", - "\n", - "Let $X$ be a random variable with CDF $F_X$ and PDF $f_X$. Find CDF and PDF of $Y = a X + b$." - ] - }, - { - "cell_type": "markdown", - "id": "detailed-bible", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 13\n", - "\n", - "If $a > 0$:\n", - "$$\n", - "F_Y(y) = \\mathbb{P}(Y < y) = \\mathbb{P}(a X + b < y) = \\mathbb{P}\\left(X < \\frac{y - b}{a}\\right)\n", - "$$\n", - "\n", - "$$\n", - "f_Y(y) = F'_Y(y) = \\frac{1}{|a|}f_X\\left(X < \\frac{y - b}{a}\\right)\n", - "$$\n", - "\n", - "In general for a smooth $\\varphi$, the density will be:\n", - "$$\n", - "f_Y(y) = \\sum\\limits_{\\varphi(x) = y} \\frac{f_X(x)}{|\\varphi'(x)|}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "alpine-motor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 13\n", - "\n", - "Let $X$ be a **normally distributed** random variable with parameters $m$ and $\\sigma^2$:\n", - "$$\n", - "f_X(x) = \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} \\exp \\left( - \\frac{(x - m)^2}{2\\sigma^2} \\right)\n", - "$$\n", - "\n", - "Find PDF of $Y = X^2$." - ] - }, - { - "cell_type": "markdown", - "id": "narrow-seven", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 13" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).ipynb b/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).ipynb deleted file mode 100644 index 061a25d..0000000 --- a/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).ipynb +++ /dev/null @@ -1,757 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "a8f7b639", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Seminar 4" - ] - }, - { - "cell_type": "markdown", - "id": "7bb7a2e9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap of axiomatic definition of probability\n", - "\n", - "A probability space is the following tuple: $(\\Omega, \\cal{F}, \\mathbb{P})$." - ] - }, - { - "cell_type": "markdown", - "id": "concrete-petroleum", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "- **Sample space** $\\Omega$\n", - "- **Set of events** $\\cal{F}$\n", - "- **Probability measure** $\\mathbb{P}$" - ] - }, - { - "cell_type": "markdown", - "id": "collaborative-madison", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Set of events is $\\cal{F} \\subset 2^\\Omega$ ($\\sigma$-algebra), such that\n", - "1. $\\Omega \\in \\cal{F}$\n", - "2. If $A \\in \\cal{F}$, then $\\overline{A} \\in \\cal{F}$ (closed under complement operation)\n", - "3. If $A_1, A_2, \\ldots \\in \\cal{F}$, then $\\bigcup_{k=1}^\\infty A_k \\in \\cal{F}$ (closed under countable union operation)\n", - "\n", - "The pair $(\\Omega, \\cal{F})$ is called a measurable space. Set $A$ is called measurable if $A \\in \\mathcal{F}$.\n", - "\n", - "Probability measure is $\\mathbb{P}: \\cal{F} \\to \\mathbb{R}_+$, such that\n", - "1. $\\mathbb{P}(\\Omega) = 1$\n", - "2. If $A_1, A_2, \\ldots \\in \\cal{F}$ and $A_i \\cap A_j = \\varnothing$ for $i\\neq j$, then $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty A_k \\right) = \\sum_{k=1}^\\infty \\mathbb{P}(A_k)$ ($\\sigma$-additivity)" - ] - }, - { - "cell_type": "markdown", - "id": "reduced-february", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "Let\n", - "- $\\Omega = (0, 1]$\n", - "- $\\mathcal{F} = 2^{(0, 1]}$\n", - "- $\\mathbb{P}(A) = \\tfrac{k}{n}$, where $k$ is the number of points like $\\tfrac{i}{n}, i \\in \\{1, \\ldots, n\\}$ in $A$\n", - "\n", - "We can check that all the necessary conditions are satisfied:" - ] - }, - { - "cell_type": "markdown", - "id": "convinced-musical", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "1. $\\Omega = (0, 1] \\subset 2^{(0, 1]} = \\mathcal{F}$\n", - "2. If $A \\subset (0, 1] \\in \\mathcal{F}$, then $\\overline{A} \\subset (0, 1] \\in \\mathcal{F}$ as well\n", - "3. If $A_1, A_2, \\ldots \\subset (0, 1] \\in \\mathcal{F}$, then all their elements are in $(0, 1]$, and thus the union $\\bigcup_{k=1}^\\infty A_k \\subset (0, 1] \\in \\mathcal{F}$\n", - "4. $\\mathbb{P}(\\Omega) = \\mathbb{P}((0,1]) = \\tfrac{n}{n} = 1$\n", - "5. If $A_1$ and $A_2 \\in \\cal{F}$ and $A_1 \\cap A_2 = \\varnothing$, then $\\tfrac{k_1 + k_2}{n} = \\mathbb{P}\\left(A_1 \\cup A_2 \\right) = \\mathbb{P}(A_1) + \\mathbb{P}(A_2) = \\tfrac{k_1}{n} + \\tfrac{k_2}{n}$" - ] - }, - { - "cell_type": "markdown", - "id": "congressional-mercury", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "Let\n", - "- $\\Omega = (0, 1]$\n", - "- $\\mathcal{F}$ is the set of all half-intervals $(a, b]$ in $(0, 1]$\n", - "- $\\mathbb{P}((a, b]) = b - a$ (length of half-interval)" - ] - }, - { - "cell_type": "markdown", - "id": "current-height", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "In this case, $\\mathcal{F}$ is not a $\\sigma$-algebra, because union of half-intervals is not necessarily a half-interval." - ] - }, - { - "cell_type": "markdown", - "id": "expected-dynamics", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "We need to add something else to $\\mathcal{F}$. We can add all finite unions of half-intervals, then $\\mathcal{F}$ will be an algebra, but still not $\\sigma$-algebra. We can **not** build such $\\mathcal{F}$ by hand, but it exists according to the following theorem.\n", - "\n", - "**Theorem 1:** Let $\\mathcal{A}$ be some set of subsets of set $A$, then exists a minimal $\\sigma$-algebra $\\sigma(\\mathcal{A})$, which contains $\\mathcal{A}$. It means that this $\\sigma(\\mathcal{A})$ will be a part of any larger $\\sigma$-algebra, that contains $\\mathcal{A}$.\n", - "\n", - "**Theorem 2 (Caratheodory Theorem):** Let probability measure $\\mathbb{P}$ be defined on algebra $\\mathcal{A}$ and $\\sigma$-additive on it. Then $\\mathbb{P}$ can be extended to $\\sigma(\\mathcal{A})$ uniquely.\n", - "\n", - "This gives us the following result: The measure $\\mathbb{P}$, defined on half-intervals in $(0, 1]$ as $\\mathbb{P}((a, b]) = b - a$, can be uniquely extended to a minimal $\\sigma$-algebra containing such half-intervals. Then it will be a probability measure." - ] - }, - { - "cell_type": "markdown", - "id": "alpine-culture", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Lebesgue measure\n", - "\n", - "What we just defined is called **probabilistic Lebesgue measure** $\\lambda((a, b]) = \\mathbb{P}((a, b]) = b - a$. Next, we can define non-probabilistic measure.\n", - "\n", - "A mapping $\\mu: \\mathcal{F} \\to [0, +\\infty)$ is called a **measure** if it is additive and $\\sigma$-additive (we simply ignore the $\\mathbb{P}(\\Omega) = 1$ property).\n", - "\n", - "So we defined $\\lambda$ on $(0, 1]$. We can naturally extend it to $(n, n+1]$: the measure of set $A \\subset 2^{(n, n+1]}$ will be equal to measure of set $B \\subset 2^{(0, 1]}$ obtained by shifting the set.\n", - "\n", - "Finally, for a general set $A \\subset \\mathbb{R}$, define\n", - "$$\n", - "\\lambda(A) = \\sum\\limits_{n \\in \\mathbb{Z}} \\lambda\\left( A \\cap (n, n+1] \\right)\n", - "$$\n", - "\n", - "This is the **Lebesgue measure on real line**, what we usually call length." - ] - }, - { - "cell_type": "markdown", - "id": "trying-reconstruction", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Borel $\\sigma$-algebra\n", - "\n", - "Minimal $\\sigma$-algebra $\\mathcal{B}(A)$ that contains all open subsets of $A$ is called **Borel $\\sigma$-algebra**.\n", - "\n", - "**Lemma:** Borel $\\sigma$-algebra of subsets of $(0, 1]$ coincides with minimal $\\sigma$-algebra, containing all half-intervals.\n", - "\n", - "Since we extended Lebesgue measure to the whole real line, we can find measure of every set in $\\mathcal{B}(\\mathbb{R})$." - ] - }, - { - "cell_type": "markdown", - "id": "decreased-database", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Measurable mapping\n", - "\n", - "Consider\n", - "- Two measurable spaces $(X, \\mathcal{F}_X)$ and $(Y, \\mathcal{F}_Y)$\n", - "- A mapping $T: X \\to Y$\n", - "- A measurable set $A \\in \\mathcal{F}_X$\n", - "\n", - "**Full pre-image** of $A$ under T is then\n", - "$$\n", - "T^{-1}(A) = \\{ x \\in X | T(x) \\in A \\}\n", - "$$\n", - "\n", - "Full pre-image of $A$ under $T$ can also be measurable: $T^{-1}(A) \\in \\mathcal{F}_X$, but not necessarily. If for any measurable set $A$ its full pre-image under $T$ is measurable, we say that $T$ is a **measurable mapping**." - ] - }, - { - "cell_type": "markdown", - "id": "present-example", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random variables\n", - "\n", - "Consider probabiliy space $(\\Omega, \\mathcal{F}, \\mathbb{P})$. A **random variable** is a measurable function $X: \\Omega \\to \\mathbb{R}$ from $(\\Omega, \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$.\n", - "\n", - "It means that the pre-image of any set $A$ in $\\mathcal{B}(\\mathbb{R})$ belongs to $\\mathcal{F}$:\n", - "$$\n", - "\\forall A \\in \\mathcal{B}(\\mathbb{R}) \\Longrightarrow X^{-1}(A) \\in \\mathcal{F}\n", - "$$\n", - "\n", - "Think of event $B \\in \\mathcal{B}(\\mathbb{R})$ and its pre-image $A \\in \\mathcal{F}$. Naturally, the probability that random variable $X$ lies in set $B$ is the same as probability of event $A$:\n", - "$$\n", - "\\mathbb{P}(X \\in B) = \\mathbb{P}(X^{-1}(B)) = \\mathbb{P}(A)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "appropriate-bridal", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "Let\n", - "- $\\Omega = [0, 1]$\n", - "- $\\mathcal{F} = \\mathcal{B}([0, 1])$\n", - "- $X_1(\\omega) = \\omega$" - ] - }, - { - "cell_type": "markdown", - "id": "abandoned-concert", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "In order to check if $X_1$ will be a random variable, we need to verify that $X_1$ is a measurable function from $([0, 1], \\mathcal{B}([0, 1]))$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$." - ] - }, - { - "cell_type": "markdown", - "id": "curious-throat", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It will be such measurable function, because the pre-image of any set $[a, b] \\in \\mathcal{B}(\\mathbb{R})$ lies in $\\mathcal{B}([0, 1])$:\n", - "$$\n", - "X_1^{-1}([a, b]) = [a, b] \\cap [0, 1]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "stretch-motion", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4\n", - "\n", - "Let\n", - "- $\\Omega = [0, 1]$\n", - "- $\\mathcal{F} = \\{\\Omega, \\varnothing\\}$\n", - "- $X_1(\\omega) = \\omega$\n", - "\n", - "In order to check if $X_1$ will be a random variable, we need to verify that $X_1$ is a measurable function from $([0, 1], \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$." - ] - }, - { - "cell_type": "markdown", - "id": "practical-camcorder", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "It will **not** be such measurable function, because the pre-image of e.g. $[0, 1/2] \\in \\mathcal{B}(\\mathbb{R})$ does not lie in $\\mathcal{F}$:\n", - "$$\n", - "X_1^{-1}([0, 1/2]) = [0, 1/2] \\not\\in \\{[0, 1], \\varnothing\\}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "stretch-vehicle", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Independence of random variables\n", - "\n", - "A **minimal $\\sigma$-algebra generated by random variable $X$** is the minimal $\\sigma$-algebra containing pre-images of all borel sets:\n", - "$$\n", - "\\sigma(X) = \\sigma\\{X^{-1}(B), B \\in \\mathcal{B}(\\mathbb{R})\\} = \\{X^{-1}(B), B \\in \\mathcal{B}(\\mathbb{R})\\}\n", - "$$\n", - "\n", - "Random variables $X$ and $Y$ are called independent if their minimal generated $\\sigma$-algebras are independent. This means that any events $A \\in \\sigma(X)$ and $B \\in \\sigma(Y)$ should be independent:\n", - "$$\n", - "\\mathbb{P}(A \\cap B) = \\mathbb{P}(A) \\mathbb{P}(B)\n", - "$$\n", - "\n", - "Let's say $A$ is pre-image of some borel event $B_1$ and $B$ is the pre-image of a different borel event $B_2$. Then, $\\mathbb{P}(A) = \\mathbb{P}(X^{-1}(B_1)) = \\mathbb{P}(X \\in B_1)$ and similarly for $B_2$, so finally,\n", - "$$\n", - "\\mathbb{P}(X \\in B_1, X \\in B_2) = \\mathbb{P}(X \\in B_1) \\mathbb{P}(X \\in B_2)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "built-newton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Distribution of a random variable\n", - "\n", - "Consider probability sapce $(\\Omega, \\mathcal{F}, \\mathbb{P})$ and random variable $X: \\Omega \\to \\mathbb{R}$. We will call the image $\\mu$ of measure $\\mathbb{P}$ through the mapping $X$ **the distribution** (or distribution law) of $X$:\n", - "$$\n", - "\\mu(A) = \\mathbb{P}(X^{-1}(A))\n", - "$$\n", - "\n", - "We will write $X \\sim \\mu$." - ] - }, - { - "cell_type": "markdown", - "id": "elementary-hospital", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Three types of distributions\n", - "\n", - "**Lebesgue theorem:** Let $\\nu$ be Lenesgue measure on $\\mathbb{R}$ and $\\mu$ be any probabilistic measure, then $\\mu = \\mu_d + \\mu_s + \\mu_{ac}$, where\n", - "- $\\mu_d$ is **discrete measure**, i.e. it is concentrated on a countable set of points.\n", - "- $\\mu_s$ is **singular measure**, i.e. exists measurable set $S$ such that $\\nu(S) = 0$ and $\\mu_s(\\overline{S}) = 0$ and $\\forall x \\in \\mathbb{R} \\mu_s(\\{x\\}) = 0$.\n", - "- $\\mu_{ac}$ is **absolutely continuous measure**, i.e. from $\\nu(A) = 0$ follows $\\mu_{ac}(A) = 0$ for any measurable set $A$.\n", - " By **Radon-Nikodim theorem**, it is equivalent to the existence of a non-negative measurable function $f: \\mathbb{R} \\to \\mathbb{R}$ called **probability density function**, such that $\\mu_{ac}(A) = \\int_A f(x) dx$.\n", - " \n", - "Because the distributions are defined through the measure, any probability distribution may be viewed as a mixture of three base types: discrete, singular and continuous.\n", - "\n", - "Normally though, the distributions fall into just one category. Also, you never encounter singular distributions in practice." - ] - }, - { - "cell_type": "markdown", - "id": "fabulous-hamilton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 5\n", - "\n", - "Consider event $A \\in \\mathcal{F}$ and a random variable $X = \\mathbb{I}\\text{nd}_A$, an indicator:\n", - "$$\n", - "\\mathbb{I}\\text{nd}_A(x) = \\begin{cases}\n", - "1, x \\in A, \\\\\n", - "0, \\text{else}\n", - "\\end{cases}\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(X = 1) = \\mathbb{P}(A) = p\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(X = 0) = 1 - \\mathbb{P}(A) = 1 - p\n", - "$$\n", - "\n", - "We say that $X$ follows **Bernoulli distribution** with parameter $p$ and write $X \\sim Be(p)$.\n", - "\n", - "We will call $\\mathbb{P}_X(\\omega)$ a **probability mass function** (PMF)." - ] - }, - { - "cell_type": "markdown", - "id": "ignored-connection", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Bernoulli trial scheme\n", - "\n", - "Previously we have worked with independent events that were happening in one probability space. But sometimes we want to have multiple trials, where for every trial the probability space is known, but we are interested in the probability space covering all the trials at once. We can achieve it via direct product of probability spaces.\n", - "\n", - "If all probability spaces are the same and equal to:\n", - "- $\\Omega = \\{0, 1\\}$\n", - "- $\\mathcal{F} = \\{\\varnothing, 0, 1, \\Omega\\}$\n", - "- $\\mathbb{P}(1) = p$ and $\\mathbb{P}(0) = 1 - p$\n", - "\n", - "Then we call such experiment a **Bernoulli trial scheme**, and the probability space of it is:\n", - "- $\\Omega = \\{(i_1, \\ldots, i_n), i_j \\in \\{0, 1\\}\\}$\n", - "- $\\mathcal{F} = 2^\\Omega$\n", - "- $\\mathbb{P}(i_1, \\ldots, i_n) = p^{\\text{num} j \\text{ such that } i_j = 1} (1 - p)^{\\text{num} j \\text{ such that } i_j = 0}$" - ] - }, - { - "cell_type": "markdown", - "id": "statutory-league", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 6\n", - "\n", - "Consider $X_1, \\ldots, X_n \\sim Be(p)$ independent random variables. Then $Y = \\sum_{k=1}^n X_k$ follows **Binomial distribution** with parameters $n$ and $p$, $Y \\sim Bi(n, p)$. $\\mathbb{P}(Y = k) = ?$" - ] - }, - { - "cell_type": "markdown", - "id": "adaptive-clinton", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 6\n", - "\n", - "$$\n", - "\\mathbb{P}(Y = k) = \\begin{pmatrix}n\\\\k\\end{pmatrix} p^k (1-p)^{n-k}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "joint-donor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 7\n", - "\n", - "Consider $X$ and $Y$ independent $\\mathbb{Z}$-valued random variables. $\\mathbb{P}(X + Y = k) = ?$" - ] - }, - { - "cell_type": "markdown", - "id": "alive-chancellor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 7\n", - "\n", - "$$\n", - "\\mathbb{P}(X + Y = k) = \\sum_{m} \\mathbb{P}(X = m) \\mathbb{P}(Y = k - m)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "intense-college", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 8\n", - "\n", - "Let $X \\sim Bi(n, p)$ and $Y \\sim Bi(m, p)$ be independent. What is the distribution of $Z = X + Y$?" - ] - }, - { - "cell_type": "markdown", - "id": "temporal-member", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 8\n", - "\n", - "$$\n", - "\\mathbb{P}(X + Y = k) = \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} p^j (1-p)^{n-j} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} p^{k-j} (1-p)^{m-k+j} = p^{k} (1-p)^{n+m-k} \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} = \\begin{pmatrix}n+m\\\\k\\end{pmatrix} p^{k} (1-p)^{n+m-k}\n", - "$$\n", - "\n", - "$$\n", - "Z \\sim Bi(n+m, p)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "increasing-delaware", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Cumulative distribution function\n", - "\n", - "Note that distribution of a discrete distribution of a random variable $X$ is uniquely defined by its PMF $\\mathbb{P}(X = x_i)$. In general, we define the distribution using cumulative distribution function (CDF):\n", - "$$\n", - "F_X(x) = \\mathbb{P}(X < x)\n", - "$$\n", - "\n", - "It has the following properties:\n", - "- $F_X$ is non-decreasing\n", - "- $\\lim\\limits_{x\\to-\\infty}F_X(x) = 0$\n", - "- $\\lim\\limits_{x\\to+\\infty}F_X(x) = 1$\n", - "- $F_X$ if left continuous\n", - "\n", - "Interesting enough, the converse is also true. Any function that conforms to the properties above defines some probability distribution on $\\mathbb{R}$ and this relation is unique." - ] - }, - { - "cell_type": "markdown", - "id": "printable-haiti", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Probability density function\n", - "\n", - "- If $X$ has a discrete distribution, then $F_X$ has a countable number of jumps $p_i = \\mathbb{P}(X = x_i)$ and at $x = x_i$ it is continuous\n", - "- If $X$ has absolutely continuous distribution, then $F_X$ is differentiable a.e. and can be recovered from its derivative:\n", - " $$\n", - " F_X(x) = \\int\\limits_{-\\infty}^x f_X(t) dt\n", - " $$\n", - " \n", - " where $f_X(t)$ is the probability density function and $f_X(t) = F'_X(x)$ a.e." - ] - }, - { - "cell_type": "markdown", - "id": "vocational-chinese", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 9\n", - "\n", - "We say that random variable $X$ is distributed uniformly on $[a, b]$ and write $X \\sim U([a, b])$ if\n", - "$$\n", - "f_X(x) = \\begin{cases}\n", - "\\frac{1}{b-a}, a \\leqslant x \\leqslant b, \\\\\n", - "0, \\text{else}\n", - "\\end{cases}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "adjusted-acrylic", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 10\n", - "\n", - "Consider $X$ and $Y$ independent random variables with PDFs $f_X$ and $f_Y$ respectively. Then, their sum $Z = X + Y$ has absolutely continuous distribution with density\n", - "$$\n", - "f_Z(z) = \\int f_X(x) f_Y(z-x) dx\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "local-minnesota", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 11\n", - "\n", - "Let $X, Y \\sim U([0, 1])$ and $Z = X + Y$. Find $f_Z(z)$." - ] - }, - { - "cell_type": "markdown", - "id": "wireless-commerce", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 11\n", - "\n", - "$$\n", - "f_Z(z) = \\int\\limits_{0}^1 f_X(x) f_Y(z-x) dx = \\int\\limits_{0}^1 f_Y(z-x) dx = \\begin{cases}\n", - "z, & 0 \\leqslant z \\leqslant 1, \\\\\n", - "2 - z, & 1 \\leqslant z \\leqslant 2, \\\\\n", - "0, & \\text{else}\n", - "\\end{cases}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "auburn-speaking", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Functions of random variables\n", - "\n", - "Random variables transform like functions, i.e. if $Y = \\varphi(X)$, then $Y(\\omega) = \\varphi(X(\\omega))$." - ] - }, - { - "cell_type": "markdown", - "id": "identical-amazon", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 12\n", - "\n", - "Let $X$ be a random variable with CDF $F_X$ and PDF $f_X$. Find CDF and PDF of $Y = a X + b$." - ] - }, - { - "cell_type": "markdown", - "id": "detailed-bible", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 13\n", - "\n", - "If $a > 0$:\n", - "$$\n", - "F_Y(y) = \\mathbb{P}(Y < y) = \\mathbb{P}(a X + b < y) = \\mathbb{P}\\left(X < \\frac{y - b}{a}\\right)\n", - "$$\n", - "\n", - "$$\n", - "f_Y(y) = F'_Y(y) = \\frac{1}{|a|}f_X\\left(X < \\frac{y - b}{a}\\right)\n", - "$$\n", - "\n", - "In general for a smooth $\\varphi$, the density will be:\n", - "$$\n", - "f_Y(y) = \\sum\\limits_{\\varphi(x) = y} \\frac{f_X(x)}{|\\varphi'(x)|}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "alpine-motor", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 13\n", - "\n", - "Let $X$ be a **normally distributed** random variable with parameters $m$ and $\\sigma^2$:\n", - "$$\n", - "f_X(x) = \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} \\exp \\left( - \\frac{(x - m)^2}{2\\sigma^2} \\right)\n", - "$$\n", - "\n", - "Find PDF of $Y = X^2$." - ] - }, - { - "cell_type": "markdown", - "id": "narrow-seven", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 13" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).pdf b/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).pdf deleted file mode 100644 index 3875e57..0000000 Binary files a/Seminar_materials/Seminar04-05/Seminar 4-5 (Random variables).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).ipynb b/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).ipynb deleted file mode 100644 index 547c0fb..0000000 --- a/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).ipynb +++ /dev/null @@ -1,622 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "a8f7b639", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Seminar 5" - ] - }, - { - "cell_type": "markdown", - "id": "present-example", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap of random variables\n", - "\n", - "Consider probabiliy space $(\\Omega, \\mathcal{F}, \\mathbb{P})$. A **random variable** is a measurable function $X: \\Omega \\to \\mathbb{R}$ from $(\\Omega, \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$." - ] - }, - { - "cell_type": "markdown", - "id": "athletic-durham", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Measurable function $X: \\Omega \\to \\mathbb{R}$ from $(\\Omega, \\mathcal{F})$ to $(\\mathbb{R}, \\mathcal{B}(\\mathbb{R}))$. It means that the pre-image of any set $A$ in $\\mathcal{B}(\\mathbb{R})$ belongs to $\\mathcal{F}$:\n", - "$$\n", - "\\forall A \\in \\mathcal{B}(\\mathbb{R}) \\Longrightarrow X^{-1}(A) \\in \\mathcal{F}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "congressional-malaysia", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Recap of distributions\n", - "\n", - "We will call the image $\\mu$ of measure $\\mathbb{P}$ through the mapping $X$ **the distribution** of r.v. $X$ and write $X \\sim \\mu$:\n", - "$$\n", - "\\mu(A) = \\mathbb{P}(X^{-1}(A))\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "successful-associate", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Any probabilistic measure (hence any probability distribution) can be decomposed into sum of three types of measures:\n", - "- Discrete\n", - "- Singular\n", - "- Absolutely continuous\n", - "\n", - "Normally, the distributions fall into just one category and you never encounter singular distributions." - ] - }, - { - "cell_type": "markdown", - "id": "behind-startup", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Functions describing distributions\n", - "\n", - "- For any distribution we have **cumulative distribution function** (CDF) $F_X(x) = \\mathbb{P}(X < x)$\n", - "- For discrete distributions we have **probability mass function** (PMF) $\\mathbb{P}_X(x) = \\mathbb{P}(X = x)$\n", - "- For continuous distributions we have **probability density function** (PDF) $f_X(x) = F'_X(x)$" - ] - }, - { - "cell_type": "markdown", - "id": "auburn-speaking", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Functions of random variables\n", - "\n", - "Random variables transform like functions, i.e. if $Y = \\varphi(X)$, then $Y(\\omega) = \\varphi(X(\\omega))$.\n", - "\n", - "For a smooth $\\varphi$, the density will be:\n", - "$$\n", - "f_Y(y) = \\sum\\limits_{\\varphi(x) = y} \\frac{f_X(x)}{|\\varphi'(x)|}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "laden-divorce", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Mathematical expectation\n", - "\n", - "Mathematical expectation generalizes the concept of mean. Consider probability space $(\\Omega, \\mathcal{F}, \\mathbb{P})$ and random variable $X: \\Omega \\to \\mathbb{R}$. Then expected value of $X$ is\n", - "$$\n", - "\\mathbb{E}\\left[X\\right] = \\int_\\Omega X(\\omega) d\\mathbb{P}(\\omega) = \\int_{\\mathbb{R}} x d\\mu(x)\n", - "$$\n", - "\n", - "- If $X$ is discrete, then\n", - " $$\n", - " \\mathbb{E}\\left[X\\right] = \\sum_k x_k \\mathbb{P}(X = x_k)\n", - " $$\n", - "- If $X$ is continuous, then\n", - " $$\n", - " \\mathbb{E}\\left[X\\right] = \\int_{-\\infty}^{+\\infty} x f_X(x) dx\n", - " $$\n", - " \n", - "It may be the case that $\\mathbb{E}\\left[X\\right] = \\pm \\infty$ or even does not exist." - ] - }, - { - "cell_type": "markdown", - "id": "rational-operator", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "We roll a die and r.v. $X$ is the score of a roll. What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "returning-webcam", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "$$\n", - "\\mathbb{E}\\left[X\\right] = \\sum_{k=1}^6 k \\cdot \\mathbb{P}(X = k) = \\frac16 \\sum_{k=1}^6 k = \\frac72\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "basic-feature", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "We flip a non-symmetric coin and $X$ is the r.v. for heads, $X \\sim Be(p)$. What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "running-lemon", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "$$\n", - "\\mathbb{E}\\left[X\\right] = 0 \\cdot \\mathbb{P}(X = 0) + 1 \\cdot \\mathbb{P}(X = 1) = p\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "interesting-topic", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "Consider discrete r.v. $X$ with distribution $\\mathbb{P}(X = 2^n) = 2^{-n}$. What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "working-syria", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "$$\n", - "\\mathbb{E}\\left[X\\right] = \\sum_{n} 2^n 2^{-n} = \\infty\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dressed-bookmark", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4\n", - "\n", - "Consider discrete r.v. $X$ with distribution $\\mathbb{P}(X = 2^n) = \\mathbb{P}(X = - 2^n) = 2^{-n-1}$. What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "prospective-partnership", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "Expectation of r.v. $X$ exists if and only if $\\mathbb{E}\\left[|X|\\right] < \\infty$" - ] - }, - { - "cell_type": "markdown", - "id": "incredible-revolution", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 5\n", - "\n", - "Consider $X$ with **Poisson distribution** $X \\sim Pois(\\lambda)$:\n", - "$$\n", - "\\mathbb{P}(X = k) = \\frac{\\lambda^k}{k!} e^{-\\lambda}\n", - "$$\n", - "\n", - "What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "criminal-lighter", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 5\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{E}\\left[X\\right] & = \\sum_{k=0}^\\infty k \\frac{\\lambda^k}{k!} e^{-\\lambda} = e^{-\\lambda} \\sum_{k=0}^\\infty k \\frac{\\lambda^k}{k!} = e^{-\\lambda} \\sum_{k=0}^\\infty \\frac{\\lambda^k}{(k - 1)!} = \\\\\n", - "& = e^{-\\lambda} \\sum_{k=0}^\\infty \\frac{\\lambda^k}{(k - 1)!} = e^{-\\lambda} \\sum_{k=1}^\\infty \\frac{\\lambda^{k+1}}{k!} = \\lambda e^{-\\lambda} e^\\lambda = \\lambda\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "missing-jurisdiction", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Properties of expectation\n", - "\n", - "Consider r.v.s $X$ and $Y$ with finite expectations. Then,\n", - "1. For any constants $a$ and $b$ it holds $\\mathbb{E}\\left[aX + b\\right] = a \\mathbb{E}\\left[X\\right] + b$\n", - "2. $\\mathbb{E}\\left[X + Y\\right] = \\mathbb{E}\\left[X\\right] + \\mathbb{E}\\left[Y\\right]$\n", - "3. If $X \\leqslant Y$ a.s., then $\\mathbb{E}\\left[X\\right] \\leqslant \\mathbb{E}\\left[Y\\right]$\n", - "4. If $X \\perp Y$, then $\\mathbb{E}\\left[XY\\right] = \\mathbb{E}\\left[X\\right] \\mathbb{E}\\left[Y\\right]$" - ] - }, - { - "cell_type": "markdown", - "id": "blond-gibraltar", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 6\n", - "\n", - "Consider $X$ with binomial distribution $X \\sim Bi(n, p)$. What is $\\mathbb{E}\\left[X\\right]$?" - ] - }, - { - "cell_type": "markdown", - "id": "worst-mention", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 6\n", - "\n", - "- We know that $X = \\sum_{k=1}^n X_k$, where $X_k \\sim Be(p)$\n", - "- We know that $\\mathbb{E}\\left[X_k\\right] = p$\n", - "- Then, $\\mathbb{E}\\left[X\\right] = \\sum_{k=1}^n \\mathbb{E}\\left[X_k\\right] = np$" - ] - }, - { - "cell_type": "markdown", - "id": "occupational-campbell", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Expectation of a function of a random variable\n", - "\n", - "Consider $Y = \\varphi(X)$, then its expectation is\n", - "$$\n", - "\\mathbb{E}\\left[Y\\right] = \\int_\\Omega \\varphi(X(\\omega)) d \\mathbb{P}_X(\\omega) = \\int_{-\\infty}^\\infty \\varphi(x) d\\mu(x)\n", - "$$\n", - "\n", - "If additionally the following integral exists\n", - "$$\n", - "\\int_{-\\infty}^\\infty |\\varphi(x)| d F_X(x) < \\infty\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "\\mathbb{E}\\left[Y\\right] = \\int_{-\\infty}^\\infty \\varphi(x) f_X(x) d x\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "caroline-scoop", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Variance\n", - "\n", - "We call **variance** the following quantity of a r.v. $X$ with finite expectation:\n", - "$$\n", - "\\mathbb{V}\\text{ar}(X) = \\mathbb{E}\\left[\\left(X - \\mathbb{E}[X]\\right)^2\\right]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "governing-ethiopia", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 7\n", - "\n", - "We flip a non-symmetric coin and $X$ is the r.v. for heads, $X \\sim Be(p)$. What is $\\mathbb{V}\\text{ar}\\left(X\\right)$?" - ] - }, - { - "cell_type": "markdown", - "id": "oriented-nirvana", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 7\n", - "\n", - "1. We know the formula\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(X\\right) = \\mathbb{E}\\left[\\left(X - \\mathbb{E}\\left[X\\right]\\right)^2\\right]\n", - " $$\n", - "2. We know $\\mathbb{E}\\left[X\\right]$\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(X\\right) = \\mathbb{E}\\left[\\left(X - p\\right)^2\\right] = \\mathbb{E}\\left[X^2 - 2 p X + p^2\\right]\n", - " $$\n", - "3. We know that expectation is linear\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(X\\right) = \\mathbb{E}\\left[X^2\\right] - 2 p \\mathbb{E}\\left[X\\right] + p^2 = \\mathbb{E}\\left[X^2\\right] - p^2\n", - " $$\n", - "4. For $Y = X^2$ we can compute\n", - " $$\n", - " \\mathbb{E}\\left[Y\\right] = 0 \\cdot \\mathbb{P}(Y = 0) + 1 \\cdot \\mathbb{P}(Y = 1) = \\mathbb{P}(Y = 1) = \\mathbb{P}(X^2 = 1) = \\mathbb{P}(X = 1) = p\n", - " $$\n", - "5. Finally,\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(X\\right) = p - p^2 = p (1 - p)\n", - " $$" - ] - }, - { - "cell_type": "markdown", - "id": "israeli-instruction", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Properties of variance\n", - "\n", - "1. $\\mathbb{V}\\text{ar}\\left(X\\right) \\geqslant 0$ and $\\mathbb{V}\\text{ar}\\left(X\\right) = 0$ if and only if $X = const$ a.s.\n", - "2. If holds\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(X\\right) = \\mathbb{E}\\left[X^2\\right] - \\left(\\mathbb{E}\\left[X\\right]\\right)^2\n", - " $$\n", - "3. It holds\n", - " $$\n", - " \\mathbb{V}\\text{ar}\\left(aX + b\\right) = b^2 \\mathbb{V}\\text{ar}\\left(X\\right)\n", - " $$\n", - "4. If $X \\perp Y$, it holds\n", - "$$\n", - "\\mathbb{V}\\text{ar}\\left(X + Y\\right) = \\mathbb{V}\\text{ar}\\left(X\\right) + \\mathbb{V}\\text{ar}\\left(Y\\right)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "casual-happiness", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 8\n", - "\n", - "Consider $X$ with binomial distribution $X \\sim Bi(n, p)$. What is $\\mathbb{V}\\text{ar}\\left(X\\right)$?" - ] - }, - { - "cell_type": "markdown", - "id": "caroline-execution", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 8\n", - "\n", - "- We know that $X = \\sum_{k=1}^n X_k$, where $X_k \\sim Be(p)$\n", - "- We know that $\\mathbb{V}\\text{ar}\\left(X_k\\right) = p(1-p)$\n", - "- Then, $\\mathbb{V}\\text{ar}\\left(X\\right) = \\mathbb{V}\\text{ar}\\left(\\sum_{k=1}^n X_k\\right) = \\sum_{k=1}^n \\mathbb{V}\\text{ar}\\left(X_k\\right) = np(1-p)$" - ] - }, - { - "cell_type": "markdown", - "id": "demanding-immigration", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Moments of distribution\n", - "\n", - "$\\mathbb{E}\\left[X^k\\right]$ is called $k$-th moment of r.v. $X$.\n", - "\n", - "We say that $k$-th moment is finite if $\\mathbb{E}\\left[X^k\\right] < \\infty$.\n", - "\n", - "If $k$-th moment is finite, then all moments $m < k$ are finite as well." - ] - }, - { - "cell_type": "markdown", - "id": "unlimited-narrative", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Jensen's inequality\n", - "\n", - "Consider r.v. $X$ with $\\mathbb{E}[X] < \\infty$ and convex function $g(\\cdot)$, then\n", - "$$\n", - "\\mathbb{E}\\left[g(X)\\right] \\geqslant g\\left(\\mathbb{E}\\left[X\\right]\\right)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "entitled-athletics", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 9\n", - "\n", - "Prove Jensen's inequality for special case of $g(x) = x^2$" - ] - }, - { - "cell_type": "markdown", - "id": "finite-attraction", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Cauchy-Schwarz inequality\n", - "\n", - "Consider r.v. $X$ with $\\mathbb{E}\\left[X^2\\right] < \\infty$, then\n", - "$$\n", - "|\\mathbb{E}\\left[XY\\right]| \\leqslant \\sqrt{\\mathbb{E}\\left[X^2\\right]\\mathbb{E}\\left[Y^2\\right]}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "active-diamond", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Covariance\n", - "\n", - "**Covariance** of two random variables $X$ and $Y$ is defined as\n", - "$$\n", - "\\operatorname{cov}\\left(X, Y\\right) = \\mathbb{E}\\left[\\left(X - \\mathbb{E}\\left[X\\right]\\right)\\left(Y - \\mathbb{E}\\left[Y\\right]\\right)\\right] = \\mathbb{E}\\left[XY\\right] - \\mathbb{E}\\left[X\\right]\\mathbb{E}\\left[Y\\right]\n", - "$$\n", - "\n", - "From Cauchy-Schwarz inequality,\n", - "$$\n", - "\\operatorname{cov}\\left(X, Y\\right) \\leqslant \\sqrt{\\mathbb{V}\\text{ar}\\left(X\\right)\\mathbb{V}\\text{ar}\\left(Y\\right)}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "prostate-promise", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Correlation\n", - "\n", - "If $X \\perp Y$, $\\operatorname{cov}\\left(X, Y\\right) = 0$. The converse is not true. Regardless, covariance is often used to measure the dependency between random variables. It is not handy to use, so instead a **correlation coefficient** is proposed:\n", - "$$\n", - "r_{XY} = \\frac{\\operatorname{cov}\\left(X, Y\\right)}{\\sqrt{\\mathbb{V}\\text{ar}\\left(X\\right)\\mathbb{V}\\text{ar}\\left(Y\\right)}}\n", - "$$\n", - "\n", - "Note that $-1 \\leqslant r_{XY} \\leqslant 1$." - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).pdf b/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).pdf deleted file mode 100644 index 8cb9e27..0000000 Binary files a/Seminar_materials/Seminar06/Seminar 6 (Expectation and Variance).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar09/Seminar 9 (Random vector).ipynb b/Seminar_materials/Seminar09/Seminar 9 (Random vector).ipynb deleted file mode 100644 index 935448d..0000000 --- a/Seminar_materials/Seminar09/Seminar 9 (Random vector).ipynb +++ /dev/null @@ -1,503 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "69835e6e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Moment-generating function" - ] - }, - { - "cell_type": "markdown", - "id": "9a915803", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Moment-generating function: definition\n", - "\n", - "**Moment-generating function** of r.v. $X$ is\n", - "$$\n", - "M_X(t) = \\mathbb{E}\\left[e^{tX}\\right]\n", - "$$\n", - "\n", - "It does not always exist. If it exists and is finite:\n", - "- It uniquely defines distribution of $X$\n", - "- $M_X(t) > 0, \\forall t$ and $M_X(0) = 1$\n", - "- $M_{aX+b}(t) = e^{bt} M_X(at)$\n", - "- For all $k$ exists a finite moment of $X$ and is defined as $\\mathbb{E}[X^k] = M^{(k)}_X(0)$ meaning $k$-th derivative\n", - "\n", - "The purpose of MGF is to replace computation of expectation with differentiation." - ] - }, - { - "cell_type": "markdown", - "id": "d769cc68", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1: Bernoulli MGF\n", - "\n", - "Consider $X \\sim Be(p)$. What is $M_X(t)$? Find expectation and variance using MGF." - ] - }, - { - "cell_type": "markdown", - "id": "4533f0b3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "MGF:\n", - "$$\n", - "M_X(t) = \\mathbb{E}\\left[e^{tX}\\right] = e^{t \\cdot 0} \\cdot \\mathbb{P}(X = 0) + e^{t \\cdot 1} \\cdot \\mathbb{P}(X = 1) = q + pe^t\n", - "$$\n", - "\n", - "First and second derivatives are $pe^t$, so\n", - "$$\n", - "\\mathbb{E}X = M'_X(0) = pe^0 = p = M''_X(0) = \\mathbb{E}\\left[X^2\\right]\n", - "$$\n", - "$$\n", - "\\mathbb{V}\\text{ar}(X) = M''_X(0) - \\left(M'_X(0)\\right)^2 = p - p^2 = p(1-p)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "2be679cc", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2: Poisson MGF\n", - "\n", - "Consider $X \\sim Pois(\\lambda)$. What is $M_X(t)$? Find expectation and variance using MGF." - ] - }, - { - "cell_type": "markdown", - "id": "d5f9da4b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "MGF:\n", - "$$\n", - "M_X(t) = \\mathbb{E}\\left[e^{tX}\\right] = \\sum\\limits_{k=-\\infty}^\\infty e^{tk} \\frac{\\lambda^k}{k!} e^{-\\lambda} = e^{-\\lambda} \\sum\\limits_{k=-\\infty}^\\infty \\frac{1}{k!} \\left( \\lambda e^{t}\\right)^k = \\exp \\left( \\lambda \\left( e^t - 1 \\right) \\right)\n", - "$$\n", - "\n", - "First derivative:\n", - "$$\n", - "M'_X(t) = \\lambda e^t \\exp \\left( \\lambda \\left( e^t - 1 \\right) \\right)\n", - "$$\n", - "\n", - "Expectation $M'_X(0) = \\lambda$. Second derivative:\n", - "$$\n", - "M''_X(0) = \\lambda e^t \\exp \\left( \\lambda \\left( e^t - 1 \\right) \\right) + \\lambda e^t \\exp \\lambda e^t \\left( \\lambda \\left( e^t - 1 \\right) \\right)\n", - "$$\n", - "\n", - "Second moment $M''_X(0) = \\lambda + \\lambda^2$. Variance $\\mathbb{V}\\text{ar}(X) = \\lambda + \\lambda^2 - \\lambda^2 = \\lambda$." - ] - }, - { - "cell_type": "markdown", - "id": "bc530156", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3: Gaussian MGF\n", - "\n", - "Consider $X \\sim \\mathcal{N}(\\mu, \\sigma^2)$. What is $M_X(t)$? Find expectation and variance using MGF." - ] - }, - { - "cell_type": "markdown", - "id": "78ce7a2c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "First let's find for $Y \\sim \\mathcal{N}(0, 1)$, then apply properties.\n", - "$$\n", - "\\begin{aligned}\n", - "M_Y(t) & = \\mathbb{E}\\left[e^{tY}\\right] = \\frac{1}{\\sqrt{2\\pi}} \\int\\limits_{-\\infty}^\\infty e^{tx} e^{-x^2 / 2} dx = \\frac{1}{\\sqrt{2\\pi}} \\int\\limits_{-\\infty}^\\infty \\exp\\left( -\\frac{x^2 - 2tx}{2}\\right) dx = \\\\\n", - "& = \\frac{1}{\\sqrt{2\\pi}} \\int\\limits_{-\\infty}^\\infty \\exp\\left( -\\frac{(x - t)^2 - t^2}{2}\\right) dx = \\\\\n", - "& = \\exp\\left( \\frac{t^2}{2} \\right) \\frac{1}{\\sqrt{2\\pi}} \\int\\limits_{-\\infty}^\\infty \\exp\\left( -\\frac{(x - t)^2}{2}\\right) dx = \\exp\\left( \\frac{t^2}{2} \\right)\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "09571b25", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3 (continued)\n", - "\n", - "From properties, $M_X(t) = e^{\\mu t} M_Y(\\sigma t) = \\exp \\left( \\mu t + \\frac{t^2 \\sigma^2}{2} \\right)$. First derivative:\n", - "$$\n", - "M'_X(t) = \\left( \\mu + t \\sigma^2 \\right) \\exp \\left( \\mu t + \\frac{t^2 \\sigma^2}{2} \\right)\n", - "$$\n", - "\n", - "Second derivative:\n", - "$$\n", - "M''_X(t) = \\sigma^2 \\exp \\left( \\mu t + \\frac{t^2 \\sigma^2}{2} \\right) + \\left( \\mu + t \\sigma^2 \\right)^2 \\exp \\left( \\mu t + \\frac{t^2 \\sigma^2}{2} \\right)\n", - "$$\n", - "\n", - "Expectation: $M'_X(0) = \\mu$, variance $M''_X(0) - \\left( M'_X(0) \\right)^2 = \\sigma^2$." - ] - }, - { - "cell_type": "markdown", - "id": "fdf80980", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Random vector" - ] - }, - { - "cell_type": "markdown", - "id": "5464a7fa", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: definition\n", - "Consider probability space $(\\Omega, \\mathcal{F}, \\mathbb{P})$. Then, a **random vector** is a borel function\n", - "$$\n", - "\\mathbf{X}: \\Omega \\to \\mathbb{R}^n,\n", - "$$\n", - "where $\\mathbf{X} = (X_1, \\ldots, X_n)^\\top$. Every component $X_i$ of the vector is a random variable. The converse is also true: for any r.v.s $X_1, \\ldots, X_n$ a vector $(X_1, \\ldots, X_n)^\\top$ is a random vector." - ] - }, - { - "cell_type": "markdown", - "id": "8febda80", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: distribution\n", - "\n", - "The distribution of a random vector $\\mathbf{X} = (X_1, \\ldots, X_n)^\\top$ can be described via **multivariate (joint) cumulative distribution function**:\n", - "$$\n", - "F_{\\mathbf{X}}(\\mathbf{x}) = \\mathbb{P}(X_1 < x_1, X_2 < x_2, \\ldots, X_n < x_n)\n", - "$$\n", - "\n", - "Properties of multivariate CDF:\n", - "- $\\lim_{x_i \\to -\\infty} F_{\\mathbf{X}}(\\mathbf{x}) = 0$ but $\\lim_{x_1, \\ldots, x_n \\to \\infty} F_{\\mathbf{X}}(\\mathbf{x}) = 1$\n", - "- $\\lim_{x_i \\to \\infty} F_{\\mathbf{X}}(\\mathbf{x}) = $ the function $F$ of everything except $x_i$\n", - "- $F_{\\mathbf{X}}(\\mathbf{x})$ is non-decreasing and left-continuous in every component\n", - "- Supermodulatiry: $F_{\\mathbf{X}}(x_1, \\ldots, x_i, \\ldots, x_n) - F_{\\mathbf{X}}(x_1, \\ldots, x_i - \\varepsilon, \\ldots, x_n) \\geqslant 0$" - ] - }, - { - "cell_type": "markdown", - "id": "3bfe0fe2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: distribution\n", - "\n", - "If $X$ has continuous distribution, then exists **multivariate (joint) probability density function**, i.e. non-negative function $f_{\\mathbf{X}}(\\cdot)$ such that\n", - "$$\n", - " \\mathbb{P}(\\mathbf{X} \\in B) = \\int_B f_{\\mathbf{X}}(x_1, \\ldots, x_n) dx_1 \\ldots dx_n\n", - "$$\n", - "\n", - "PDF can also be found from CDF:\n", - "$$\n", - " f_{\\mathbf{X}}(\\mathbf{x}) = \\frac{\\partial^n F_{\\mathbf{X}}(\\mathbf{x})}{\\partial x_1 \\ldots \\partial x_n}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5bb2e786", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: independence\n", - "\n", - "If all r.v.s $X_i$ are independent, then\n", - "$$\n", - "\\begin{cases}\n", - "F_{\\mathbf{X}}(\\mathbf{x}) & = \\prod\\limits_{i=1}^n F_{X_i}(x_i), \\\\\n", - "f_{\\mathbf{X}}(\\mathbf{x}) & = \\prod\\limits_{i=1}^n f_{X_i}(x_i)\n", - "\\end{cases}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "49f0c419", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: moments\n", - "\n", - "**Mathematical expectation** of a random vector is a vector of mathematical expectations of its components:\n", - "$$\n", - "\\mathbb{E}\\left[\\mathbf{X}\\right] = (\\mathbb{E}X_1, \\ldots, \\mathbb{E}X_n)^\\top\n", - "$$\n", - "\n", - "Second moments of a random vector are described with **covariance matrix** $\\mathbb{V}\\text{ar}(\\mathbf{X}) = \\Sigma$, where\n", - "$$\n", - "\\Sigma_{ij} = \\operatorname{cov}(X_i, X_j)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fc4059d8", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "$$\n", - "\\Sigma_{ij} = \\operatorname{cov}(X_i, X_j) = \\mathbb{E} \\left[ (X_i - \\mathbb{E} X_i) (X_j - \\mathbb{E} X_j) \\right]\n", - "$$\n", - "\n", - "In particular, the diagonal elements are variances: $\\Sigma_{ii} = \\mathbb{V}\\text{ar}(X_i)$." - ] - }, - { - "cell_type": "markdown", - "id": "4c74f30b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: covariance matrix\n", - "\n", - "Matrix notation for covariance matrix is $\\mathbb{V}\\text{ar}(\\mathbf{X}) = \\mathbb{E}\\left[(\\mathbf{X} - \\mathbb{E}[\\mathbf{X}]) (\\mathbf{X} - \\mathbb{E}[\\mathbf{X}])^\\top\\right]$.\n", - "\n", - "Properties of convariance matrix:\n", - "- Symmetry $\\Sigma^\\top = \\Sigma$\n", - "- Non-negative semi-definite: $a^\\top \\Sigma a \\geqslant 0, \\forall a$" - ] - }, - { - "cell_type": "markdown", - "id": "b6cd49a9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Random vector: marginal and conditional distributions\n", - "\n", - "**Marginal distribution** is the distribution of a subset of a random vector. For example, consider r.v. $\\mathbf{X} \\in \\mathbb{R}^n$ and let's view it as two vectors, $\\mathbf{Y} \\in \\mathbb{R}^k$ and $\\mathbf{Z} \\in \\mathbb{R}^{n-k}$, stacked: $\\mathbf{X} = (\\mathbf{Y}^\\top, \\mathbf{Z}^\\top)^\\top$. The marginal distribution of $\\mathbf{Z}$ then will be:\n", - "$$\n", - "f_{\\mathbf{Z}}(\\mathbf{z}) = \\int_{\\mathbb{R}^k} f_{\\mathbf{X}}(\\mathbf{y}, \\mathbf{z}) d \\mathbf{y}\n", - "$$\n", - "\n", - "In words, we take distribution of $\\mathbf{X}$ and **integrate out** everything not realted to $\\mathbf{Z}$.\n", - "\n", - "We may also define **conditional distribution**:\n", - "$$\n", - "f_{\\mathbf{Y}|\\mathbf{Z}=\\mathbf{z}}(\\mathbf{y}) = \\frac{f_{\\mathbf{X}}(\\mathbf{y}, \\mathbf{z})}{f_{\\mathbf{Z}}(\\mathbf{z})}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "cc6d7afe", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4: joint, marginal and conditional distributions for discrete case\n", - "\n", - "Let $X$ be the indicator of the sampled individual being a current smoker, and let $Y$ be the indicator of his developing lung cancer at some point in his life. Suppose the joint PMF is as follows:\n", - "\n", - "||$Y=1$|$Y=0$|\n", - "|--|--|--|\n", - "|$X=1$|$\\frac{5}{100}$|$\\frac{20}{100}$|\n", - "|$X=0$|$\\frac{3}{100}$|$\\frac{72}{100}$|\n", - "\n", - "Find the marginal and consitional distributions." - ] - }, - { - "cell_type": "markdown", - "id": "aaf1ccef", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "||$Y=1$|$Y=0$|\n", - "|--|--|--|\n", - "|$X=1$|$\\frac{5}{100}$|$\\frac{20}{100}$|\n", - "|$X=0$|$\\frac{3}{100}$|$\\frac{72}{100}$|\n", - "\n", - "$$\n", - "\\mathbb{P}(X = x) = \\sum_y \\mathbb{P}(X = x, Y = y)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "6eb91023", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "||$Y=1$|$Y=0$|$\\text{Sum}$|\n", - "|--|--|--|--|\n", - "|$X=1$|$\\frac{5}{100}$|$\\frac{20}{100}$|$\\frac{25}{100}$|\n", - "|$X=0$|$\\frac{3}{100}$|$\\frac{72}{100}$|$\\frac{75}{100}$|\n", - "|$\\text{Sum}$|$\\frac{8}{100}$|$\\frac{92}{100}$|$\\frac{100}{100}$|" - ] - }, - { - "cell_type": "markdown", - "id": "1bf7694e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "||$Y=1$|$Y=0$|\n", - "|--|--|--|\n", - "|$X=1$|$\\frac{5}{100}$|$\\frac{20}{100}$|\n", - "|$X=0$|$\\frac{3}{100}$|$\\frac{72}{100}$|\n", - "\n", - "$$\n", - "\\mathbb{P}(Y = y | X = x) = \\frac{\\mathbb{P}(X = x, Y = y)}{\\mathbb{P}(X = x)}\n", - "$$\n", - "\n", - "Example: if the person is a smoker ($X = 1$), then $\\mathbb{P}(Y = 1 | X = 1) = \\frac{\\mathbb{P}(X = 1, Y = 1)}{\\mathbb{P}(X = 1)} = \\frac{5/100}{25/100} = 0.2$." - ] - }, - { - "cell_type": "markdown", - "id": "e044a510", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 5 (unit disc)\n", - "\n", - "Consider a random point on unit disc with random coordinates $(X, Y)$. What is the joint, marginal and conditional PDF for the coordinates?" - ] - }, - { - "cell_type": "markdown", - "id": "5f87daba", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 5\n", - "\n", - "The joint is\n", - "$$\n", - "f_{X, Y}(x, y) = \\begin{cases}\n", - "\\frac1\\pi, \\text{ if } x^2 + y^2 \\leqslant 1, \\\\\n", - "0, \\text{ else}\n", - "\\end{cases}\n", - "$$\n", - "\n", - "The marginal for $X$ is:\n", - "$$\n", - "f_X(x) = \\int\\limits_{-\\infty}^\\infty f_{X, Y}(x, y) dy = \\int\\limits_{-\\sqrt{1 - x^2}}^{\\sqrt{1-x^2}} \\frac{1}{\\pi} dy = \\frac{2}{\\pi} \\sqrt{1 - x^2}\n", - "$$\n", - "\n", - "The conditional for $Y$ is:\n", - "$$\n", - "f_{Y|X=x}(x) = \\frac{f_{X, Y}(x, y)}{f_{X}(x)} = \\frac{\\frac{1}{\\pi}}{\\frac{2}{\\pi}\\sqrt{1 - x^2}} = \\frac{1}{2\\sqrt{1 - x^2}}\n", - "$$" - ] - } - ], - "metadata": { - "celltoolbar": "Слайд-шоу", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar09/Seminar 9 (Random vector).pdf b/Seminar_materials/Seminar09/Seminar 9 (Random vector).pdf deleted file mode 100644 index aac0a04..0000000 Binary files a/Seminar_materials/Seminar09/Seminar 9 (Random vector).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar10/Seminar 10 (Transformations).ipynb b/Seminar_materials/Seminar10/Seminar 10 (Transformations).ipynb deleted file mode 100644 index 75620ee..0000000 --- a/Seminar_materials/Seminar10/Seminar 10 (Transformations).ipynb +++ /dev/null @@ -1,606 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "6f9a4edb", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Transformations" - ] - }, - { - "cell_type": "markdown", - "id": "b64f0689", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Examples of transformations\n", - "\n", - "- Linear transformations of random variables and vectors $Y = aX + b$\n", - "- Non-linear invertible transformations of random variables $Y = g(X)$\n", - "- Sums $Y = X_1 + X_2$" - ] - }, - { - "cell_type": "markdown", - "id": "c0aba036", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Transformations previously\n", - "\n", - "We have a technique for computing the expectation of transformed random variable. What is its name?" - ] - }, - { - "cell_type": "markdown", - "id": "b02823f4", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "LOTUS:\n", - "$$\n", - "\\mathbb{E}[g(X)] = \\sum_{x} g(x) \\mathbb{P}(X = x)\n", - "$$\n", - "It works with continuous r.v.s:\n", - "$$\n", - "\\mathbb{E}[g(X)] = \\int g(x) f_X(x) dx\n", - "$$\n", - "And it works in multiple dimensions:\n", - "$$\n", - "\\mathbb{E}[g(X, Y)] = \\sum_{x} \\sum_{y} g(x, y) \\mathbb{P}(X = x, Y = y)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5b8ec38b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Transformations now\n", - "\n", - "Now we want not just the expected value, but the whole distribution (CDF, PMF, PDF). The approach depends on whether the distribution is discrete or continuous.\n", - "\n", - "## Discrete case\n", - "\n", - "The formula:\n", - "$$\n", - "\\mathbb{P}(g(X) = y) = \\sum\\limits_{x \\text{ such that } g(x) = y} \\mathbb{P}(X = x)\n", - "$$\n", - "\n", - "If $g(\\cdot)$ is one-to-one, it simplifies to:\n", - "$$\n", - "\\mathbb{P}(g(X) = y) = \\mathbb{P}(X = g^{-1}(y))\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "300d0052", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "Let $X \\sim Bin(n, p)$. Find the PDF of $Y = \\exp(X)$." - ] - }, - { - "cell_type": "markdown", - "id": "37d0ef6a", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "So $g(x) = \\exp(x)$, it's one-to-one and the inverse is $g^{-1}(x) = \\log x$.\n", - "$$\n", - "\\mathbb{P}(Y = y) = \\mathbb{P}(X = g^{-1}(y)) = \\mathbb{P}(X = \\log y)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f1a5036d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Continuous case\n", - "\n", - "In the continuous case, when additionally $g(\\cdot)$ is one-to-one, continuous and strictly increasing, we have the following relation for CDF:\n", - "$$\n", - "F_{g(X)}(y) = \\mathbb{P}(g(X) \\leqslant y) = \\mathbb{P}(X \\leqslant g^{-1}(y)) = F_X(g^{-1}(y))\n", - "$$\n", - "\n", - "To get the PDF, we need to differentiate this relation at every point with the chain rule:\n", - "$$\n", - "f_{g(X)}(g(x)) d \\left( g(x) \\right) = f_X(x) dx\n", - "$$\n", - "\n", - "To account for the case when $g(\\cdot)$ is strictly decreasing, we add the modulus\n", - "$$\n", - "f_{g(X)}(g(x)) = f_X(x) \\left| \\frac{d g(x)}{dx} \\right|^{-1}\n", - "$$\n", - "\n", - "This is called 1D change of variables formula. Similarly to sicrete case, we can extend it to non one-to-one $g(\\cdot)$ using the sum over $x$ such that $g(x) = y$." - ] - }, - { - "cell_type": "markdown", - "id": "1e348fcf", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "Let $X \\sim Exp(1)$. Find the PDF of $Y = \\exp(- X)$." - ] - }, - { - "cell_type": "markdown", - "id": "37ae1360", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "So $g(x) = \\exp(- x)$, it is one-to-one, and $g^{-1}(y) = - \\log y$. Let's find\n", - "$$\n", - "\\frac{dg(x)}{dx} = - \\exp(- x)\n", - "$$\n", - "\n", - "So,\n", - "$$\n", - "\\begin{aligned}\n", - "f_Y(y) & = f_X(x) \\left| \\frac{d g(x)}{dx} \\right|^{-1} = f_X(- \\log y) \\exp (x) = \\\\\n", - "& = f_X(- \\log y) \\exp (- \\log y) = \\frac1y f_X(- \\log y)\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5b8d9aaa", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "Let $X \\sim \\mathcal{N}(0, 1)$. Find the PDF of $Y = X^2$. This distribution is called chi-square distribution." - ] - }, - { - "cell_type": "markdown", - "id": "22365b9b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "So, $g(x) = x^2$. It is not one-to-one, so we need the sum:\n", - "$$\n", - "\\begin{aligned}\n", - "f_Y(y) & = \\sum_{x = \\{-\\sqrt{y}, \\sqrt{y}\\}} f_X(x) \\left| \\frac{d g(x)}{dx} \\right|^{-1} = \\sum_{x = \\{-\\sqrt{y}, \\sqrt{y}\\}} f_X(x) 2 x = \\\\& = f_X(\\sqrt{y}) \\frac{1}{2 \\sqrt{y}} + f_X(- \\sqrt{y}) \\frac{1}{2 \\sqrt{y}} = \\\\\n", - "& = 2 f_X(\\sqrt{y}) \\frac{1}{2 \\sqrt{y}}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "2efaa28e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4\n", - "\n", - "Let $X$ be a random variable with PDF $f_X$. Find PDF of $Y = a X + b$." - ] - }, - { - "cell_type": "markdown", - "id": "b2a1da9b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "So, $g(x) = ax+b$, it is one-to-one, and the inverse is $g^{-1}(y) = \\frac1a (y - b)$. We need to calculate\n", - "$$\n", - "\\frac{dg(x)}{dx} = \\frac{d(ax + b)}{dx} = a\n", - "$$\n", - "\n", - "$$\n", - "f_Y(y) = f_X(x) \\left| \\frac{d g(x)}{dx} \\right|^{-1} = f_X\\left(\\frac{y - b}{a}\\right) \\frac{1}{|a|}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "1d29d8da", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Multivariate transformations\n", - "\n", - "Consider $n$-dimensional random vector $X \\in \\mathbb{R}^n$ with continuous distribution with PDF $f_X$. Let $g: A_0 \\to B_0$ be invertive one-to-one function from open subset $A_0$ containing support of $X$ to an open subset $B_0$ containing the range of $g(\\cdot)$. Denote $Y = g(X)$ and $y = g(x)$. Suppose that all partial derivatives $\\frac{\\partial y_i}{\\partial x_j}$ exist and are continuous. Then, we can form the Jacobian matrix:\n", - "$$\n", - "\\frac{\\partial y}{\\partial x} = \\left(\\begin{array}{cccc}\n", - "\\frac{\\partial y_1}{\\partial x_1} & \\frac{\\partial y_1}{\\partial x_2} & \\ldots & \\frac{\\partial y_1}{\\partial x_n} \\\\\n", - "\\vdots & & \\ddots & \\vdots \\\\\n", - "\\frac{\\partial y_n}{\\partial x_1} & \\frac{\\partial y_n}{\\partial x_2} & \\ldots & \\frac{\\partial y_n}{\\partial x_n}\n", - "\\end{array}\\right)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "febb4184", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Assume that this matrix is non-degenerate. Then, the PDF of $Y$ is:\n", - "$$\n", - "f_Y(y) = f_X(g^{-1}(y)) \\left|\\det \\frac{\\partial y}{\\partial x}\\right|^{-1}\n", - "$$\n", - "\n", - "If the function is not one-to-one, we add sum." - ] - }, - { - "cell_type": "markdown", - "id": "aa1ba0b8", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 5\n", - "\n", - "Consider $n$-dimensional random vector $X \\in \\mathbb{R}^n$ with continuous distribution, a non-degenerate matrix $A \\in \\mathbb{R}^{m \\times n}$ and a vector $b \\in \\mathbb{R}^m$, then define random vector $Y = AX + b$. What is the expected value, the covariance matrix and the PDF of $Y$?" - ] - }, - { - "cell_type": "markdown", - "id": "efca0cf2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 5\n", - "\n", - "Its expected value will be $\\mathbb{E}[Y] = A \\mathbb{E} [X] + b$ and its covariance matrix will be:\n", - "$$\n", - "\\Sigma_Y = \\mathbb{E}\\left[(AX - A \\mathbb{E}[X]) (AX - A \\mathbb{E}[X])^\\top\\right] = A \\mathbb{E}\\left[(X - \\mathbb{E}[X]) (X - \\mathbb{E}[X])^\\top\\right] A^\\top = A \\Sigma_X A^\\top\n", - "$$\n", - "\n", - "So,\n", - "- $g(x) = Ax + b$\n", - "- $\\frac{\\partial y}{\\partial x} = A$\n", - "- $g^{-1}(y) = A^{-1} (y - b)$\n", - "\n", - "Therefore,\n", - "$$\n", - "f_Y(y) = f_X(g^{-1}(y)) \\left|\\det \\frac{\\partial y}{\\partial x}\\right|^{-1} = f_X(A^{-1}(y - b)) \\frac{1}{|\\det A|} \n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8f5e55a6", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 6\n", - "\n", - "Consider $n$ independent standard normal r.v.s $X_1, \\ldots, X_n \\sim \\mathcal{N}(0, 1)$ and vector $X = (X_1, \\ldots, X_n)^\\top$. We know that\n", - "- $\\mathbb{E}[X] = 0$\n", - "- $\\Sigma_X = I$\n", - "- $f_X(x) = (2 \\pi)^{- n/2} \\exp(- \\frac12 x^\\top x)$\n", - "\n", - "Consider a non-degenerate matrix $A \\in \\mathbb{R}^{n\\times n}$ and $Y = AX + m$. Find its expectation, covariance matrix and distribution." - ] - }, - { - "cell_type": "markdown", - "id": "24b90512", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 6\n", - "\n", - "From the previous example, $\\mathbb{E}[Y] = m$ and $\\Sigma_Y = AA^\\top$\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "f_X(x) & = f_X(A^{-1}(y - m)) \\frac{1}{|\\det A|} = \\\\\n", - "& = \\frac{1}{(2 \\pi)^{n/2} |\\det A|} \\exp \\left( - \\frac{(y - m)^\\top A^{-\\top} A^{-1} (y - m)}{2} \\right) = \\\\\n", - "& = \\frac{1}{(2 \\pi)^{n/2} \\sqrt{\\det \\Sigma_Y}} \\exp \\left( - \\frac{(y - m)^\\top \\Sigma_Y^{-1} (y - m)}{2} \\right)\n", - "\\end{aligned}\n", - "$$\n", - "\n", - "What we just did, is we obtained a new random normal vector with controllable parameters from a standard normal random vector. This is a very useful property of a random normal vectors, but also demonstrates the power of linear transforms." - ] - }, - { - "cell_type": "markdown", - "id": "5c3cb2d1", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 7\n", - "\n", - "Let random vector $(X, Y)$ have PDF $f_{X, Y}(x, y)$. Find the density of $Z = X + Y$." - ] - }, - { - "cell_type": "markdown", - "id": "a99217cb", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 7\n", - "\n", - "In order to find this density, consider transform\n", - "$$\n", - "\\begin{pmatrix}Z\\\\Y\\end{pmatrix} = A \\begin{pmatrix}X\\\\Y\\end{pmatrix}\n", - "$$\n", - "\n", - "So, matrix $A$ is...?" - ] - }, - { - "cell_type": "markdown", - "id": "800ad1a5", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "$$\n", - "A = \\begin{pmatrix}1&1\\\\0&1\\end{pmatrix}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3d8a4781", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Then,\n", - "$$\n", - "f_{Z,Y}(z,y) = f_{X,Y}(A^{-1}(x \\; y)^\\top, y) \\left|\\det A\\right|^{-1} = f_{X,Y}(z-y,y)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "20094347", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Finally,\n", - "$$\n", - "f_Z(z) = \\int f_{Z,Y}(z,y) dy = \\int f_{X,Y}(z-y,y) dy\n", - "$$\n", - "\n", - "If $X \\perp Y$,\n", - "$$\n", - "f_Z(z) = \\int f_{X}(z-y) f_Y(y) dy\n", - "$$\n", - "\n", - "This is the convolution rule that we studied on Seminar 4." - ] - }, - { - "cell_type": "markdown", - "id": "af673e63", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Convolution rule\n", - "\n", - "Consider independent r.v.s $X$ and $Y$. Then, their sum $Z = X + Y$ is distributed:\n", - "- If they are discrete,\n", - " $$\n", - " \\mathbb{P}(Z = n) = \\sum_{k=-\\infty}^\\infty \\mathbb{P}(X = k) \\mathbb{P}(Y = n-k)\n", - " $$\n", - "- If they are continuous,\n", - " $$\n", - " f_Z(z) = \\int_{-\\infty}^\\infty f_X(z-y) f_Y(y) dy\n", - " $$" - ] - }, - { - "cell_type": "markdown", - "id": "1ba91eff", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 8\n", - "\n", - "Let $X \\sim Bi(n, p)$ and $Y \\sim Bi(m, p)$ be independent. What is the distribution of $Z = X + Y$?" - ] - }, - { - "cell_type": "markdown", - "id": "ef82a7ba", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 8\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{P}(X + Y = k) & = \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} p^j (1-p)^{n-j} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} p^{k-j} (1-p)^{m-k+j} = \\\\\n", - "& = p^{k} (1-p)^{n+m-k} \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} = \\\\\n", - "& =\\begin{pmatrix}n+m\\\\k\\end{pmatrix} p^{k} (1-p)^{n+m-k}\n", - "\\end{aligned}\n", - "$$\n", - "\n", - "$$\n", - "Z \\sim Bi(n+m, p)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "7997e355", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 9\n", - "\n", - "Let $X, Y \\sim Exp(1)$ be independent. Find the PDF of $Z = \\frac{X}{X+Y}$." - ] - }, - { - "cell_type": "markdown", - "id": "d85532bf", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 9\n", - "\n", - "This one will be a non-linear transform. Consider transform $(X, Y) \\to (Z, U)$, where $U = X + Y$. The inverse transform is $X = UZ, Y = U - UZ$. Jacobian of the inverse transform is\n", - "$$\n", - "\\frac{\\partial (x, y)}{\\partial (z, u)} = \\begin{pmatrix}u&z\\\\-u&1-z\\end{pmatrix}\n", - "$$\n", - "\n", - "The joint density is\n", - "$$\n", - " f_{Z, U}(z, u) = f_{X, Y}(g^{-1}(z, u)) \\left|\\det \\frac{\\partial (x, y)}{\\partial (z, u)}\\right| = f_{X, Y}(uz, u-uz) u = ue^u, u > 0, 0 < z \\leqslant 1\n", - "$$\n", - "\n", - "The joint density does not depend on $z$, it means that marginal density of $Z$ is Uniform with support $[0, 1]$." - ] - }, - { - "cell_type": "markdown", - "id": "05ea168e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems\n", - "\n", - "1. Compute the moment-generating function of $Geom(p)$. Use it to find expectation and variance.\n", - "2. Let $X$ and $Y$ be i.i.d. $Geom(p)$, and $N = X + Y$. Find the joint PMF of $X, Y, N$. Find the joint PMF of $X$ and $N$. Find the conditional PMF of $X$ given $N = n$\n", - "3. Let $U \\sim U[0, \\tfrac{\\pi}{2}]$. Find the PDF of $\\sin(U)$.\n", - "4. Let $X$ and $Y$ be i.i.d. $Exp(\\lambda)$, and $T = \\log(X/Y)$. Find the CDF and PDF of $T$." - ] - } - ], - "metadata": { - "celltoolbar": "Слайд-шоу", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar10/Seminar 10 (Transformations).pdf b/Seminar_materials/Seminar10/Seminar 10 (Transformations).pdf deleted file mode 100644 index 36836f8..0000000 Binary files a/Seminar_materials/Seminar10/Seminar 10 (Transformations).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).ipynb b/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).ipynb deleted file mode 100644 index 96f3402..0000000 --- a/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).ipynb +++ /dev/null @@ -1,582 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "6f9a4edb", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "25de506c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 1\n", - "\n", - "Compute the moment-generating function of $Geom(p)$. Use it to find expectation and variance." - ] - }, - { - "cell_type": "markdown", - "id": "3e1e710d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "MGF:\n", - "$$\n", - "M_X(t) = \\mathbb{E}\\left[e^{tX}\\right] = \\sum\\limits_{k=0}^\\infty e^{tk} q^k p = p \\sum\\limits_{k=0}^\\infty\\left( e^{t} q \\right)^k = \\frac{p}{1 - e^t q}\n", - "$$\n", - "\n", - "First derivative:\n", - "$$\n", - "M'_X(t) = \\frac{p q e^t}{(1 - e^t q)^2}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "03ef75ae", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Expectation $M'_X(0) = \\frac{q}{p}$. Second derivative:\n", - "$$\n", - "M''_X(0) = p q e^t \\frac{1 + q e^t}{(1 - e^t q)^3}\n", - "$$\n", - "\n", - "Second moment $M''_X(0) = \\frac{q(1+q)}{p^2}$. Variance $\\mathbb{V}\\text{ar}(X) = \\frac{q^2+q}{p^2} - \\frac{q^2}{p^2} = \\frac{q}{p^2}$." - ] - }, - { - "cell_type": "markdown", - "id": "436606ff", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 2\n", - "\n", - "Let $X$ and $Y$ be i.i.d. $Geom(p)$, and $N = X + Y$. Find the joint PMF of $X, Y, N$. Find the joint PMF of $X$ and $N$. Find the conditional PMF of $X$ given $N = n$." - ] - }, - { - "cell_type": "markdown", - "id": "8bd33e84", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{P}(X = x, Y = y, N = n) & = \\mathbb{P}(X = x, Y = y) \\mathbb{I}\\text{nd}(n = x + y) = \\\\\n", - "& = \\mathbb{P}(X = x)\\mathbb{P}(Y = y) \\mathbb{I}\\text{nd}(n = x + y) = \\\\\n", - "& = q^{x+y} p^2 \\mathbb{I}\\text{nd}(n = x + y) = \\\\\n", - "& = q^{n} p^2 \\mathbb{I}\\text{nd}(n = x + y)\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "56574f7f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 3\n", - "\n", - "Let $U \\sim U[0, \\tfrac{\\pi}{2}]$. Find the PDF of $\\sin(U)$." - ] - }, - { - "cell_type": "markdown", - "id": "7f7899d5", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "So $g(x) = \\sin(- x)$, it is not one-to-one in general, but one-to-one on $[0, \\frac{\\pi}{2}]$, and $g^{-1}(y) = - \\arcsin y$. Let's find\n", - "$$\n", - "\\frac{dg(x)}{dx} = \\cos x\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "44ee3149", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "So,\n", - "$$\n", - "\\begin{aligned}\n", - "f_Y(y) & = f_X(x) \\left| \\frac{d g(x)}{dx} \\right|^{-1} = f_X(\\arcsin y) \\frac{1}{\\cos \\arcsin y} = \\\\\n", - "& = f_X(\\arcsin y) \\frac{1}{\\sqrt{1 - x^2}}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3620fde4", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 4\n", - "\n", - "Let $X$ and $Y$ be i.i.d. $Exp(\\lambda)$, and $T = \\log(X/Y)$. Find the CDF and PDF of $T$." - ] - }, - { - "cell_type": "markdown", - "id": "3594ab4b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4\n", - "\n", - "Consider transform $(X, Y) \\to (Z, Y)$, where $Z = X/Y$. The inverse transform is $X = YZ, Y = Y$. Jacobian of the inverse transform is\n", - "$$\n", - "\\frac{\\partial (x, y)}{\\partial (z, y)} = \\begin{pmatrix}y&z\\\\0&1\\end{pmatrix}\n", - "$$\n", - "\n", - "The joint density is\n", - "$$\n", - "f_{Z, Y}(z, y) = f_{X, Y}(g^{-1}(z, y)) \\left|\\det \\frac{\\partial (x, y)}{\\partial (z, y)}\\right| = f_{X, Y}(yz, y) y = y \\lambda e^{- \\lambda yz} \\lambda e^{- \\lambda y} = y \\lambda^2 e^{- \\lambda y (1 + z)}, y > 0\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a14e0b95", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Let's find the marginal distribution of $Z$:\n", - "$$\n", - "f_Z(z) = \\frac{\\lambda^2}{\\lambda^2 (1 + z)^2} \\int_0^\\infty y (1 + z) e^{- \\lambda y (1 + z)} d ( y ( 1 + z ) ) = \\frac{1}{(1 + z)^2} \\int_0^\\infty u e^{-u} du = \\frac{1}{(1 + z)^2}\n", - "$$\n", - "\n", - "Let's find the log-transform $T$. So $g(x) = \\log(x)$, it is one-to-one, and $g^{-1}(y) = \\exp y$. Let's find\n", - "$$\n", - "\\frac{dg(x)}{dx} = \\frac{1}{x}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d23b2188", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "So,\n", - "$$\n", - "\\begin{aligned}\n", - "f_T(t) & = f_Z(z) \\left| \\frac{d g(z)}{dz} \\right|^{-1} = f_Z(\\exp t) \\exp t = \\\\\n", - "& = \\frac{\\exp t}{(1 + \\exp t)^2}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "35cd90a0", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Beta and Gamma" - ] - }, - { - "cell_type": "markdown", - "id": "9790546c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Beta distribution\n", - "\n", - "The Beta distribution is a continuous distribution on the interval $(0, 1)$. It is a generalization of the $U[0,1]$ distribution, allowing the PDF to be non-constant. Let $X \\sim Beta(a, b)$ with $a > 0, b > 0$, then\n", - "$$\n", - "f_X(x) = \\frac{1}{\\beta(a, b)} x^{a-1} (1 - x)^{b-1}, 0 < x < 1\n", - "$$\n", - "\n", - "$\\beta(a, b)$ is a normalizing constant. We will discuss what it is exactly later." - ] - }, - { - "cell_type": "markdown", - "id": "ffe599e2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Beta distribution\n", - "\n", - "Why need this extension? For example for Bayesian inference.\n", - "\n", - "Bayesian inference is used to update the parameters $\\theta$ of distribution $X$ after observing some data $X$ and also equipped with preliminary beliefs on the values of these parameters expressed **as a distibution**. We will cover it in statistics course in great detail. Bayesian inference relies on bayes theorem:\n", - "$$\n", - "\\mathbb{P}(\\theta|X) = \\frac{\\mathbb{P}(X|\\theta)\\mathbb{P}(\\theta)}{\\int \\mathbb{P}(X|\\theta) \\mathbb{P}(\\theta) d\\theta}\n", - "$$\n", - "\n", - "Here, $\\mathbb{P}(X|\\theta)$ is the likelihood of the data (probability to observe it with current parameters), $\\mathbb{P}(\\theta)$ is the prior distribution on parameters (our preliminary beliefs), and $\\mathbb{P}(\\theta|X)$ is the posterior distribution on parameters (updated beliefs).\n", - "\n", - "In order to compute the integral in the denominator, you need your prior and likelihood to be **conjugate**. If your data is counts, the likelihood will be Binomial. If you do not have any beliefs, you may assume Uniform prior. However, Uniform distribution is not conjugate with Binomial, so the integral can not be computed. Beta distribution is in fact conjugate with Binomial." - ] - }, - { - "cell_type": "markdown", - "id": "39815f27", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Beta distribution\n", - "\n", - "Here, $\\mathbb{P}(X|\\theta)$ is the likelihood of the data (probability to observe it with current parameters), $\\mathbb{P}(\\theta)$ is the prior distribution on parameters (our preliminary beliefs), and $\\mathbb{P}(\\theta|X)$ is the posterior distribution on parameters (updated beliefs).\n", - "\n", - "In order to compute the integral in the denominator, you need your prior and likelihood to be **conjugate**. If your data is counts, the likelihood will be Binomial. If you do not have any beliefs, you may assume Uniform prior. Beta distribution is in fact conjugate with Binomial." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "d901b44d", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import scipy.stats as sts\n", - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "4c0faa72", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xx = np.linspace(0,1,100)\n", - "fig, axes = plt.subplots(2,2,figsize=(5,5), sharex=True, sharey=True)\n", - "for (a, b), ax in zip([(0.5, 0.5), (1, 1), (2, 8), (5, 5)], axes.flatten()):\n", - " ax.plot(xx, sts.beta(a, b).pdf(xx))\n", - " ax.set_title(f\"Beta({a}, {b})\")\n", - "fig.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "id": "44756d94", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Beta distribution\n", - "\n", - "By definition,\n", - "$$\n", - "\\beta(a, b) = \\int_0^1 x^{a-1} (1 - x)^{b-1} dx\n", - "$$\n", - "\n", - "We can compute it directly, but there is a useful relation (read story proof in the textbook) called Bayes billiards:\n", - "$$\n", - "\\int_0^1 \\begin{pmatrix}n\\\\k\\end{pmatrix} x^{a-1} (1 - x)^{b-1} dx = \\frac{1}{n+1}\n", - "$$\n", - "\n", - "We can compute $\\beta(a, b)$ using this relation." - ] - }, - { - "cell_type": "markdown", - "id": "86084e0f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Gamma distribution\n", - "\n", - "The Gamma distribution is a continuous distribution on the positive real line. It is a generalization of the Exponential distribution. In order to write down the PDF, we will need the **gamma function**:\n", - "$$\n", - "\\Gamma(a) = \\int_0^\\infty x^{a-1} e^{-x} dx, a > 0\n", - "$$\n", - "\n", - "Properties:\n", - "1. $\\Gamma(a+1) = a\\Gamma(a)$\n", - "2. $\\Gamma(n) = (n-1)!, n \\in \\mathbb{N}_{++}$" - ] - }, - { - "cell_type": "markdown", - "id": "d9a6e00f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Gamma distribution\n", - "\n", - "Let $X \\sim Gamma(a, 1)$ with $a > 0$, then\n", - "$$\n", - "f_X(x) = \\frac{1}{\\Gamma(a)} x^{a-1} e^{-x}, x > 0\n", - "$$\n", - "\n", - "The distribution of $Y = \\frac{1}{\\lambda} X \\sim Gamma(a, \\lambda)$. By the transform formula,\n", - "$$\n", - "f_Y(y) = \\frac{1}{\\Gamma(a)} \\lambda^a y^{a-1} e^{-\\lambda y}, y > 0\n", - "$$\n", - "\n", - "Note that for $a = 1$ we have $Gamma(1, \\lambda) \\equiv Exp(\\lambda)$." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "fcdcec6d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xx = np.linspace(0,20,100)\n", - "fig, axes = plt.subplots(2,2,figsize=(5,5), sharex=True, sharey=True)\n", - "for (a, b), ax in zip([(3, 1), (3, 0.5), (10, 1), (5, 0.5)], axes.flatten()):\n", - " ax.plot(xx, sts.gamma(a).pdf(xx * b) * b)\n", - " ax.set_title(f\"Gamma({a}, {b})\")\n", - "fig.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "id": "a1924a25", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Gamma distribution\n", - "\n", - "Let's find the mean, variance, and other moments of the Gamma distribution. Let's start with $X \\sim Gamma(a, 1)$. We will do it without taking a single integral.\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{E}[X] & = \\int_0^\\infty x \\frac{1}{\\Gamma(a)} x^{a-1} e^{-x} dx = \\frac{1}{\\Gamma(a)} \\int_0^\\infty x x^{a+1-1} e^{-x} dx = \\\\\n", - "& = \\frac{\\Gamma(a+1)}{\\Gamma(a)} = \\frac{a\\Gamma(a)}{\\Gamma(a)} = a\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "762889b8", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Gamma distribution\n", - "\n", - "LOTUS gives us the second moment:\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{E}[X^2] & = \\int_0^\\infty x^2 \\frac{1}{\\Gamma(a)} x^{a-1} e^{-x} dx = \\frac{1}{\\Gamma(a)} \\int_0^\\infty x x^{a+2-1} e^{-x} dx = \\\\\n", - "& = \\frac{\\Gamma(a+2)}{\\Gamma(a)} = \\frac{a(a+1)\\Gamma(a)}{\\Gamma(a)} = a (a+1)\n", - "\\end{aligned}\n", - "$$\n", - "\n", - "Then, the variance is $\\mathbb{V}\\text{ar}(X) = \\mathbb{E}\\left[X^2\\right] - \\left(\\mathbb{E}[X] \\right)^2 = a$. " - ] - }, - { - "cell_type": "markdown", - "id": "edd60693", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Gamma distribution\n", - "\n", - "We can now transform to $Y = X/\\lambda \\sim Gamma(a, \\lambda)$, to obtain:\n", - "- $\\mathbb{E}[Y] = \\frac{a}{\\lambda}$\n", - "- $\\mathbb{V}\\text{ar}(Y) = \\frac{a}{\\lambda^2}$\n", - "\n", - "The Gamma distribution is conjugate with Poisson distribution." - ] - }, - { - "cell_type": "markdown", - "id": "6797e982", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Beta-Gamma connection\n", - "\n", - "$$\n", - "\\beta(a, b) = \\frac{\\Gamma(a) \\Gamma(b)}{\\Gamma(a+b)}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "449c4970", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "443277f6", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Homework problems\n", - "\n", - "1. Find the MGF function of $\\Gamma(n, \\lambda)$.\n", - "2. While running errands, you need to go to the bank, then to the post office. Let $X \\sim Gamma(a, \\lambda)$ be your waiting time in line at the bank, and let $Y \\sim Gamma(b, \\lambda)$ be your waiting time in line at the post office (with the same $\\lambda$ for both). Assume $X$ and $Y$ are independent. What is the joint distribution of $T = X + Y$ (your total wait at the bank and post office) and $W = X/(X+Y)$ (the fraction of your waiting time spent at the bank)? In case of trouble, refer to the textbook, this problem is solved there.\n", - "3. Use the result of previous problem to find the expectation and variance of Beta distribution. In case of trouble, refer to the textbook, this problem is solved there." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b41d73fb", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Слайд-шоу", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).pdf b/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).pdf deleted file mode 100644 index 0833ad8..0000000 Binary files a/Seminar_materials/Seminar11/Seminar 11 (Beta and Gamma).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).ipynb b/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).ipynb deleted file mode 100644 index 00bd598..0000000 --- a/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).ipynb +++ /dev/null @@ -1,563 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "19d9a552", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "32b13142", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 1\n", - "\n", - "Find the MGF function of $X \\sim \\Gamma(n, \\lambda)$." - ] - }, - { - "cell_type": "markdown", - "id": "96b637bd", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Soltuion 1\n", - "\n", - "MGF of $X$:\n", - "$$\n", - "\\begin{aligned}\n", - "M_X(t) & = \\mathbb{E}\\left[e^{tX}\\right] = \\int\\limits_{-\\infty}^\\infty e^{tx} \\frac{1}{\\Gamma(n)} \\lambda^n x^{n-1} e^{-\\lambda x} dx = \\\\\n", - "& = \\frac{1}{\\Gamma(n)} \\frac{\\lambda^n}{(\\lambda - t)^n} \\int\\limits_{-\\infty}^\\infty \\left((\\lambda - t)x\\right)^{n-1} e^{-(\\lambda-t)x} d \\left( (\\lambda - t) x \\right) = \\\\\n", - "& = \\frac{1}{\\Gamma(n)} \\frac{\\lambda^n}{(\\lambda - t)^n} \\int\\limits_{-\\infty}^\\infty u^{n-1} e^{-u} d \\left( u \\right) = \\\\\n", - "& = \\frac{\\lambda^n}{(\\lambda - t)^n}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "964f5b16", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 2\n", - "\n", - "While running errands, you need to go to the bank, then to the post office. Let $X \\sim Gamma(a, \\lambda)$ be your waiting time in line at the bank, and let $Y \\sim Gamma(b, \\lambda)$ be your waiting time in line at the post office (with the same $\\lambda$ for both). Assume $X$ and $Y$ are independent. What is the joint distribution of $T = X + Y$ (your total wait at the bank and post office) and $W = X/(X+Y)$ (the fraction of your waiting time spent at the bank)?" - ] - }, - { - "cell_type": "markdown", - "id": "233ade75", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "Consider transform $(X, Y) \\to (T, W)$, where $T = X + Y$ and $W = \\frac{X}{X+Y}$. The inverse transform is $X = TW, Y = T(1 - W)$. The Jacobian of the **direct** transform is:\n", - "$$\n", - "\\left| \\det \\frac{\\partial (x, y)}{\\partial (t, w)} \\right| = \\left| \\det \\begin{pmatrix}w&t\\\\1-w&-t\\end{pmatrix} \\right| = t\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "\\begin{aligned}\n", - "f_{T,W}(t, w) & = f_{X,Y}(tw, t(1-w)) \\left| \\det \\frac{\\partial (x, y)}{\\partial (t, w)} \\right| = \\\\\n", - "& = f_X(tw)f_Y\\left(t(1-w)\\right) t = \\\\\n", - "& = t \\frac{1}{\\Gamma(a)} \\lambda^a (tw)^{a-1} e^{-a tw} \\frac{1}{\\Gamma(b)} \\lambda^b (t(1-w))^{b-1} e^{-b t(1-w)} = \\\\\n", - "& = \\frac{1}{\\Gamma(a)\\Gamma(b)} w^{a-1} (1-w)^{b-1} (\\lambda t)^{a+b} e^{-\\lambda t} \\frac1t = \\\\\n", - "& = \\left( \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} w^{a-1} (1-w)^{b-1} \\right) \\left( \\frac{1}{\\Gamma(a+b)} \\lambda^{a+b} t^{a+b-1} e^{-\\lambda t} \\right)\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8906e87d", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$$\n", - "f_{T,W}(t, w) = \\left( \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} w^{a-1} (1-w)^{b-1} \\right) \\left( \\frac{1}{\\Gamma(a+b)} \\lambda^{a+b} t^{a+b-1} e^{-\\lambda t} \\right)\n", - "$$\n", - "\n", - "First, it tells us that $f_{T,W}(t,w) = f_T(t)f_W(w)$, so they are independent (total time is independent of the fraction at the bank). Second, we have expression for $f_T(t)$:\n", - "$$\n", - "f_T(t) = \\frac{1}{\\Gamma(a+b)} \\lambda^{a+b} t^{a+b-1} e^{-\\lambda t}\n", - "$$\n", - "\n", - "In which we recognize $T \\sim Gamma(a+b, \\lambda)$. We also have expression for $f_W(w)$:\n", - "$$\n", - "f_W(w) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} w^{a-1} (1-w)^{b-1}\n", - "$$\n", - "\n", - "In which we recognize $W \\sim Beta(a, b)$. This gives us expression for beta function:\n", - "$$\n", - "\\beta(a, b) = \\frac{\\Gamma(a)\\Gamma(b)}{\\Gamma(a + b)}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c639e62e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 3\n", - "\n", - "Use the result of previous problem to find the expectation and variance of Beta distribution." - ] - }, - { - "cell_type": "markdown", - "id": "d54229c3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "Result of previous problem: for $X \\sim Gamma(a, \\lambda)$ and $Y \\sim Gamma(b, \\lambda)$, we have $T = X + Y \\sim Gamma(a+b, \\lambda)$ and $W = \\frac{X}{X+Y} \\sim Beta(a, b)$ independent.\n", - "\n", - "Now,\n", - "$$\n", - "\\mathbb{E}\\left[TW\\right] = \\mathbb{E}\\left[T\\right]\\mathbb{E}\\left[W\\right]\n", - "$$\n", - "$$\n", - "\\mathbb{E}\\left[(X+Y) \\frac{X}{X+Y}\\right] = \\mathbb{E}\\left[X+Y\\right]\\mathbb{E}\\left[W\\right]\n", - "$$\n", - "$$\n", - "\\mathbb{E}\\left[W\\right] = \\frac{\\mathbb{E}\\left[X\\right]}{\\mathbb{E}\\left[X+Y\\right]} = \\frac{a/\\lambda}{a/\\lambda + b/\\lambda} = \\frac{a}{a+b}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "24b1ce1d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Conditional expectation" - ] - }, - { - "cell_type": "markdown", - "id": "f979236d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Conditional expectation: definition\n", - "\n", - "We know conditional probability. Consider r.v.s $X$ (discrete) and $Z$ (discrete with alphabet $E$), then for event $X = x$\n", - "$$\n", - "\\mathbb{P}(X = x | Z = z) = \\frac{\\mathbb{P}(X = x, Z = z)}{\\mathbb{P}(Z = z)}\n", - "$$\n", - "\n", - "A function $x \\to \\mathbb{P}(X = x | Z = z)$ is the conditional law of $X$ given $Z = z$. \n", - "\n", - "But what if we had not one event $Z = z$, but many events $A_i = \\{Z = z_i\\}$? We can still do it, by plugging a set of events $\\mathcal{A} = \\{A_1, \\ldots, A_n\\}$ into function $h(\\cdot)$.\n", - "\n", - "What if want to account for all events with their probabilities? We can still use our function $h(\\cdot)$ by plugging the random variable $Z$ into it! $h(Z) = \\mathbb{E}[X|Z]$ then will be a random variable." - ] - }, - { - "cell_type": "markdown", - "id": "558fcd04", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Properties\n", - "- $\\mathbb{E}[\\alpha X_1 + \\beta X_2|Z] = \\alpha\\mathbb{E}[X_1|Z] + \\beta \\mathbb{E}[X_2|Z]$\n", - "- If $X \\geqslant 0$ a.s., then $\\mathbb{E}[X|Z] \\geqslant 0$\n", - "- $\\mathbb{E}\\left[\\mathbb{E}[X|Z]\\right] = \\mathbb{E}[X]$\n", - "- For any function $h(\\cdot)$ we have $\\mathbb{E}[Xh(Z)|Z] = h(Z) \\mathbb{E}[X|Z]$ a.s.\n", - "- If $X$ and $Z$ are independent, then $\\mathbb{E}[X|Z] = \\mathbb{E}[X]$" - ] - }, - { - "cell_type": "markdown", - "id": "83aba7e9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "A stick of length 1 is broken at point $X$ chosen uniformly at random. Given that $X = x$, we choose another\n", - "breakpoint $Y$ uniformly at the interval $[0,x]$. Find $\\mathbb{E}[Y|X]$ and its mean." - ] - }, - { - "cell_type": "markdown", - "id": "edc23fd3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "We have $X \\sim U[0, 1]$ and $Y|X=x \\sim U[0, x]$.\n", - "\n", - "The expected value of $U[0, x]$ distribution is $\\mathbb{E}[Y|X=x] = \\tfrac{x}{2}$.\n", - "\n", - "To get $\\mathbb{E}[Y|X]$ we take this expected value and plug in our random variable, so\n", - "$$\n", - "\\mathbb{E}[Y|X] = \\frac{X}{2}\n", - "$$\n", - "\n", - "To find the expectation $\\mathbb{E}\\left[\\mathbb{E}[Y|X]\\right]$, we use the property:\n", - "$$\n", - "\\mathbb{E}\\left[\\mathbb{E}[Y|X]\\right] = \\mathbb{E}[Y] = \\mathbb{E}\\left[\\frac{X}{2}\\right] = \\frac12 \\mathbb{E}[X] = \\frac14\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0a46d7d9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "Let $Z \\sim \\mathcal{N}(0, 1)$ and $Y = Z^2$. Find $\\mathbb{E}[Y|Z]$ and $\\mathbb{E}[Z|Y]$." - ] - }, - { - "cell_type": "markdown", - "id": "1e6c7fc5", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "We have $Y = h(Z) = Z^2$. Therefore\n", - "$$\n", - "\\mathbb{E}[Y|Z] = \\mathbb{E}[h(Z)|Z] = h(Z) = Z^2\n", - "$$\n", - "\n", - "To get the converse $\\mathbb{E}[Z|Y]$, let's first start with\n", - "$$\n", - "\\mathbb{E}[Z|Y = y] = \\sqrt{y} \\mathbb{P}(Z = \\sqrt{y} | Y = y) + (- \\sqrt{y}) \\mathbb{P}(Z = - \\sqrt{y} | Y = y) = \\sqrt{y} p - \\sqrt{y} p = 0\n", - "$$\n", - "\n", - "By plugging in r.v. $Y$ we still get 0, so $\\mathbb{E}[Z|Y] = 0$." - ] - }, - { - "cell_type": "markdown", - "id": "ed7ebc0e", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "Let $X_1, \\ldots, X_n$ be i.i.d. r.v.s and $S_n = X_1 + \\ldots + X_n$. Find $\\mathbb{E}[X_1|S_n]$." - ] - }, - { - "cell_type": "markdown", - "id": "b58c9bfa", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "By symmetry,\n", - "$$\n", - "\\mathbb{E}[X_1|S_n] = \\mathbb{E}[X_2|S_n] = \\ldots = \\mathbb{E}[X_n|S_n]\n", - "$$\n", - "\n", - "By linearity,\n", - "$$\n", - "\\mathbb{E}[X_1|S_n] + \\mathbb{E}[X_2|S_n] + \\ldots + \\mathbb{E}[X_n|S_n] = \\mathbb{E}[S_n|S_n] = S_n\n", - "$$\n", - "\n", - "So,\n", - "$$\n", - "\\mathbb{E}[X_1|S_n] = \\frac{1}{n} S_n = \\overline{X}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a7368f5f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 4\n", - "\n", - "Regression uses the following to make a prediction: $\\hat{Y} = \\mathbb{E}[Y|X]$. Linear regression assumes $\\mathbb{E}[Y|X] = a + bX$.\n", - "\n", - "1. Show that an equivalent way to express this is to write $Y = a + bX + \\varepsilon$ with $\\mathbb{E}[\\varepsilon|X] = 0$.\n", - "2. Solve for the constants $a$ and $b$" - ] - }, - { - "cell_type": "markdown", - "id": "9ab5b998", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4.1\n", - "\n", - "1. Let $Y = a + bX + \\varepsilon$, then\n", - "$$\n", - "\\mathbb{E}[Y|X] = \\mathbb{E}[a + bX + \\varepsilon|X] = a + bX + \\mathbb{E}[\\varepsilon|X] = a + bX\n", - "$$\n", - "2. Let $\\mathbb{E}[Y|X] = a + bX$ and define $\\varepsilon = Y - (a + bX)$, then $Y = a + bX + \\varepsilon$ and\n", - "$$\n", - "\\mathbb{E}[\\varepsilon|X] = \\mathbb{E}[Y - (a + bX)|X] = \\mathbb{E}[Y|X] - \\mathbb{E}[a + bX|X] = a + bX - (a + bX) = 0\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3de32786", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 4.2\n", - "\n", - "1. Expectation of $Y$\n", - " $$\n", - " \\mathbb{E}[Y] = \\mathbb{E}\\left[\\mathbb{E}[Y|X]\\right] = \\mathbb{E}[a + bX] = a + b\\mathbb{E}[X]\n", - " $$\n", - "\n", - "2. $\\varepsilon$ has zero mean\n", - " $$\n", - " \\mathbb{E}[\\varepsilon] = \\mathbb{E}\\left[\\mathbb{E}[\\varepsilon|X]\\right] = \\mathbb{E}[0] = 0\n", - " $$\n", - "\n", - "3. $X$ and $\\varepsilon$ uncorrelated\n", - " $$\n", - " \\mathbb{E}[\\varepsilon X] = \\mathbb{E}\\left[\\mathbb{E}[\\varepsilon X|X]\\right] = \\mathbb{E} X \\left[\\mathbb{E}[\\varepsilon|X]\\right] = \\mathbb{E}[X \\cdot 0] = 0\n", - " $$\n", - "\n", - "Now, take $Y = a + bX + \\varepsilon$ and take covariance with $X$ at both sides: \n", - "$$\n", - "\\operatorname{cov}(X,Y) = \\operatorname{cov}(X,a) + \\operatorname{cov}(X,bX) + \\operatorname{cov}(X,\\varepsilon) = b \\mathbb{V}\\text{ar}(X)\n", - "$$\n", - "\n", - "Therefore,\n", - "$$\n", - "b = \\frac{\\operatorname{cov}(X,Y)}{\\mathbb{V}\\text{ar}(X)}\n", - "$$\n", - "$$\n", - "a = \\mathbb{E}[Y] - \\frac{\\operatorname{cov}(X,Y)}{\\mathbb{V}\\text{ar}(X)} \\mathbb{E}[X]\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d8f112d4", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 5\n", - "\n", - "One of two identical-looking coins is picked from a hat randomly, where one coin has probability $p_1$ of success and the other has probability $p_2$ of success. Let $X$ be the number of successes after flipping the chosen coin $n$ times. Find the mean of $X$." - ] - }, - { - "cell_type": "markdown", - "id": "36c321c1", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 5\n", - "\n", - "Denote $Y \\sim Be(1/2)$ the r.v. that we chose coin 1, $X_1 \\sim Bi(n, p_1)$ and $X_2 \\sim Bi(n, p_2)$ the number of successes for trials with different coins. Then\n", - "$$\n", - "X = Y X_1 + (1 - Y) X_2\n", - "$$\n", - "\n", - "Use the tower rule:\n", - "$$\n", - "\\mathbb{E}[X] = \\mathbb{E}\\left[\\mathbb{E}[X|Y]\\right]\n", - "$$\n", - "\n", - "Now we need to find\n", - "$$\n", - "\\mathbb{E}[X|Y = y] = y np_1 + (1 - y) np_2\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "\\mathbb{E}[X|Y] = Y np_1 + (1 - Y) np_2\n", - "$$\n", - "\n", - "Finally,\n", - "$$\n", - "\\mathbb{E}[X] = \\mathbb{E}\\left[Y np_1 + (1 - Y) np_2\\right] = \\frac{n}{2} (p_1 + p_2)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "812beebf", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 6\n", - "\n", - "Let $N \\sim Pois(\\lambda_1)$ be the number of movies released in 2022. Suppose that for every movie independently the number of tickets sold in Dolgoprudnyy is $X_i \\sim Pois(\\lambda_2)$. Find the mean of the total number of movie tickets sold in Dolgoprudnyy in 2022." - ] - }, - { - "cell_type": "markdown", - "id": "e6fd2258", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 6\n", - "\n", - "Denote $S_N = X_1 + \\ldots + X_N$. We need to find $\\mathbb{E}[S_N]$. Use tower rule:\n", - "$$\n", - "\\mathbb{E}[S_N] = \\mathbb{E}\\left[\\mathbb{E}[S_N|N]\\right]\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[S_N|N = n] = \\mathbb{E}[X_1 + \\ldots + X_N|N = n] = \\mathbb{E}[X_1 + \\ldots + X_n] = n \\mathbb{E}[X_1] = n \\lambda_2\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[S_N|N] = N \\lambda_2\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[S_N] = \\mathbb{E}\\left[N \\lambda_2\\right] = \\lambda_1 \\lambda_2\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dbfabb16", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "498aed6c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Homework problems\n", - "\n", - "1. Emails arrive one at a time in an inbox. Let $T_n$ be the time at which the $n$-th email arrives (measured on a continuous scale from some starting point in time). Suppose that the waiting times between emails are i.i.d. $Exp(\\lambda)$, i.e., $T_1, T_2 - T_1, T_3 − T_2, \\ldots \\sim Exp(\\lambda)$. Each email is non-spam with probability $p$, and spam with probability $q = 1 − p$ (independently of the other emails and of the waiting times). Let $X$ be the time at which the first non-spam email arrives (so $X$ is a continuous r.v.\n", - " - Find the mean of $X$.\n", - " - Find the MGF of $X$. What famous distribution does this imply that X has?\n", - " \n", - " Hint for both parts: Let $N$ be the number of emails until the first non-spam (including that one), and write $X$ as a sum of $N$ terms, then condition on $N$.\n", - " \n", - "2. Customers arrive at a store according to a Poisson process of rate $\\lambda$ customers per hour. Each makes a purchase with probability $p$, independently. Given that a customer makes a purchase, the amount spent has mean $\\mu$ (in dollars) and variance $\\sigma^2$.\n", - "\n", - " - Find the mean of how much a random customer spends (note that the customer may not make a purchase).\n", - " - Find the mean of the revenue the store obtains in an 8-hour time interval, using previous subproblem." - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).pdf b/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).pdf deleted file mode 100644 index 95eef69..0000000 Binary files a/Seminar_materials/Seminar12/Seminar 12 (Conditional Expectation).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).html b/Seminar_materials/Seminar13/Seminar 13 (Inequalities).html deleted file mode 100644 index 5487395..0000000 --- a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).html +++ /dev/null @@ -1,14831 +0,0 @@ - - - - - -Seminar 13 (Inequalities) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).ipynb b/Seminar_materials/Seminar13/Seminar 13 (Inequalities).ipynb deleted file mode 100644 index ccc969d..0000000 --- a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).ipynb +++ /dev/null @@ -1,353 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "dbfabb16", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "498aed6c", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 1\n", - "\n", - "Emails arrive one at a time in an inbox. Let $T_n$ be the time at which the $n$-th email arrives (measured on a continuous scale from some starting point in time). Suppose that the waiting times between emails are i.i.d. $Exp(\\lambda)$, i.e., $T_1, T_2 - T_1, T_3 − T_2, \\ldots \\sim Exp(\\lambda)$. Each email is non-spam with probability $p$, and spam with probability $q = 1 − p$ (independently of the other emails and of the waiting times). Let $X$ be the time at which the first non-spam email arrives (so $X$ is a continuous r.v.)\n", - "- Find the mean of $X$.\n", - "- Find the MGF of $X$. What famous distribution does this imply that X has?\n", - "\n", - "Hint for both parts: Let $N$ be the number of emails until the first non-spam (including that one), and write $X$ as a sum of $N$ terms, then condition on $N$." - ] - }, - { - "cell_type": "markdown", - "id": "2480b4b4", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.1\n", - "\n", - "Let $N$ be the number of emails until the first non-spam, including it. Then, $N-1 \\sim Geom(p)$.\n", - "\n", - "Let's introduce random variables $X_k = T_k - T_{k-1}$. Then, $X = X_1 + X_2 + \\ldots + X_N$. Next,\n", - "$$\n", - "\\mathbb{E}[X] = \\mathbb{E}\\left[\\mathbb{E}[X|N]\\right]\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[X|N=n] = \\mathbb{E}[\\sum_{k=1}^n X_k|N=n] = \\sum_{k=1}^n\\mathbb{E}[X_k] = \\sum_{k=1}^n \\frac{1}{\\lambda}\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[X] = \\mathbb{E}\\left[\\mathbb{E}[X|N]\\right] = \\mathbb{E}[N \\frac{1}{\\lambda}] = \\frac{1}{p \\lambda}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a7cc5a29", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1.2\n", - "\n", - "Let $N$ be the number of emails until the first non-spam, including it. Then, $N-1 \\sim Geom(p)$.\n", - "\n", - "Let's introduce random variables $X_k = T_k - T_{k-1}$. Then, $X = X_1 + X_2 + \\ldots + X_N$. Next,\n", - "$$\n", - "M_X(t) = \\mathbb{E}\\left[e^{tX}\\right] = \\mathbb{E}\\left[\\mathbb{E}\\left[e^{tX}|N\\right]\\right]\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}\\left[e^{tX}|N=n\\right] = \\mathbb{E}\\left[e^{t(X_1+X_2+\\ldots+X_n)}|N\\right] = \\prod_{k=1}^n\\mathbb{E}\\left[e^{tX_1}\\right] = M_1(t)^n = \\left( \\frac{\\lambda}{\\lambda - t} \\right)^n\n", - "$$\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "M_X(t) & = \\mathbb{E}\\left[\\mathbb{E}\\left[e^{tX}|N\\right]\\right] = \\mathbb{E}\\left[M_(t)^N\\right] = \\\\\n", - "& = \\sum_{n=1}^\\infty pq^{n-1} M_1(t)^n = \\frac{p}{q} \\sum_{n=1}^\\infty \\left( q M_1(t)\\right)^n = \\frac{p}{q} \\frac{q M_1(t)}{1 - q M_1(t)} = \\frac{p\\lambda}{p\\lambda - t}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "7c959848", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 2\n", - "\n", - "Customers arrive at a store according to a Poisson process of rate $\\lambda$ customers per hour. Each makes a purchase with probability $p$, independently. Given that a customer makes a purchase, the amount spent has mean $\\mu$ (in dollars) and variance $\\sigma^2$.\n", - "\n", - "- Find the mean of how much a random customer spends (note that the customer may not make a purchase).\n", - "- Find the mean of the revenue the store obtains in an 8-hour time interval, using previous subproblem." - ] - }, - { - "cell_type": "markdown", - "id": "6d59b4b9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2.1\n", - "\n", - "Denote $P \\sim Be(p)$ the successful purchase, $S|P$ the price of purchase and $Z = PS$ the total spednings of a customer. Then,\n", - "$$\n", - "\\mathbb{E}[Z] = \\mathbb{E}\\left[\\mathbb{E}[Z|P]\\right]\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[Z|P=p] = p S\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[Z] = \\mathbb{E}\\left[\\mathbb{E}[Z|P]\\right] = \\mathbb{E}[PS] = \\mathbb{E}[P]\\mathbb[S] = p\\mu\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "66696e3f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2.2\n", - "\n", - "Denote $Y \\sim Pois(8 \\lambda)$ the number of customers that arrive to the store in 8-hour time interval and $R = YZ$ the revenue of the store. Then,\n", - "$$\n", - "\\mathbb{E}[R] = \\mathbb{E}\\left[\\mathbb{E}[R|Y]\\right]\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[R|Y = y] = yp\\mu\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[R] = \\mathbb{E}\\left[\\mathbb{E}[R|Y]\\right] = \\mathbb{E}[Y p \\mu] = 8 \\lambda p \\mu\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5cfc1589", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Inequalities" - ] - }, - { - "cell_type": "markdown", - "id": "4a6eb617", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Inequalities\n", - "\n", - "|Name|Conditions|Formula|Uses|\n", - "|:---:|:---:|:---:|:---:|\n", - "|Cauchy-Schwarz|\\begin{eqnarray}\\mathbb{E}[|X|]<\\infty, \\mathbb{E}[|Y|]<\\infty\\end{eqnarray}|\\begin{eqnarray}|\\mathbb{E}[XY]|\\leqslant\\sqrt{\\mathbb{E}[X]\\mathbb{E}[Y]}\\end{eqnarray}|Covariance|\n", - "|Jensen|\\begin{eqnarray}\\mathbb{E}[|X|]<\\infty, x>0, g - \\text{convex}\\end{eqnarray}|\\begin{eqnarray}g(\\mathbb{E}[X])\\leqslant\\mathbb{E}[g(X)]\\end{eqnarray}|Proofs|\n", - "|Markov|\\begin{eqnarray}\\mathbb{E}[|X|^p]<\\infty, p>0, x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(|X| \\geqslant x) \\leqslant \\frac{\\mathbb{E}[|X|^p]}{x^p}\\end{eqnarray}|Tails|\n", - "|Chebyshev|\\begin{eqnarray}\\mathbb{V}\\text{ar}(X)<\\infty, x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(|X - \\mathbb{E}[X]| \\geqslant x) \\leqslant \\frac{\\mathbb{V}\\text{ar}(X)}{x^2}\\end{eqnarray}|Tails|\n", - "|Chernoff|\\begin{eqnarray}\\mathbb{E}[e^{tX}]<\\infty,t>0,x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(X \\geqslant x) \\leqslant \\frac{\\mathbb{E}[e^{tX}]}{e^{tx}}\\end{eqnarray}|Tails|" - ] - }, - { - "cell_type": "markdown", - "id": "554886b3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "Let $Z \\sim \\mathcal{N}(0, 1)$. Find $\\mathbb{P}(|Z| > 3)$." - ] - }, - { - "cell_type": "markdown", - "id": "98dae5da", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "Three-sigma rule:\n", - "$$\n", - "\\mathbb{P}(|Z| > 3) \\approx 0.003\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "043ffae9", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Markov:\n", - "$$\n", - "\\mathbb{P}(|Z| > 3) \\leqslant \\frac{\\mathbb{E}[Z]}{3} = \\frac{1}{3}\\sqrt{\\frac{2}{\\pi}} \\approx 0.27\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "04d48ef8", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Chebyshev:\n", - "$$\n", - "\\mathbb{P}(|Z| > 3) \\leqslant \\frac{\\mathbb{V}\\text{ar}(X)}{3^2} = \\frac19 \\approx 0.11\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fad57c3f", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Chernoff:\n", - "$$\n", - "\\mathbb{P}(|Z| > 3) = 2 \\mathbb{P}(Z > 3) \\leqslant 2 e^{-3t} \\mathbb{E}[e^{tZ}] = 2 e^{-3t} e^{t^2/2} \\to 0.022\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "e80c99a2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 2\n", - "\n", - "For i.i.d. r.v.s $X_1,\\ldots,X_n$ with mean $\\mu$ and variance $\\sigma^2$, give a value of $n$ that will ensure that there is at least a 99\\% chance that the sample mean will be within 2 standard deviations of the true mean $\\mu$." - ] - }, - { - "cell_type": "markdown", - "id": "9a539ef2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2\n", - "\n", - "$$\n", - "\\mathbb{P}(|\\overline{X_n} - \\mu| > 2\\sigma) \\leqslant 0.01\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(|\\overline{X_n} - \\mu| > 2\\sigma) \\leqslant \\frac{\\mathbb{V}\\text{ar}(\\overline{X_n})}{(2\\sigma)^2} = \\frac{\\sigma^2/n}{4\\sigma^2} = \\frac{1}{4n}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8b5f954d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 3\n", - "\n", - "In a national survey, a random sample of people are chosen and asked whether they support a certain policy. Assume that everyone in the population is equally likely to be surveyed at each step, and that the sampling is with replacement (sampling without replacement is typically more realistic, but with replacement will be a good approximation if the sample size is small compared to the population size). Let $n$ be the sample size, and let $\\hat{p} and $p$ be the proportion of people who support the policy in the sample and in the entire population, respectively. Show that for every $c > 0$,\n", - "$$\n", - "\\mathbb{P}(|\\hat{p} - p| > c\\sigma) \\leqslant \\frac{1}{4nc^2}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8fa5b773", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "Write Bernoulli, use Chebyshev" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).pdf b/Seminar_materials/Seminar13/Seminar 13 (Inequalities).pdf deleted file mode 100644 index 6eb62af..0000000 Binary files a/Seminar_materials/Seminar13/Seminar 13 (Inequalities).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).ipynb b/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).ipynb deleted file mode 100644 index eb1d8d0..0000000 --- a/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).ipynb +++ /dev/null @@ -1,505 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "2255baed", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Inequalities recap" - ] - }, - { - "cell_type": "markdown", - "id": "b19842ed", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Inequalities recap\n", - "\n", - "|Name|Conditions|Formula|Uses|\n", - "|:---:|:---:|:---:|:---:|\n", - "|Cauchy-Schwarz|\\begin{eqnarray}\\mathbb{E}[|X|]<\\infty, \\mathbb{E}[|Y|]<\\infty\\end{eqnarray}|\\begin{eqnarray}|\\mathbb{E}[XY]|\\leqslant\\sqrt{\\mathbb{E}[X]\\mathbb{E}[Y]}\\end{eqnarray}|Covariance|\n", - "|Jensen|\\begin{eqnarray}\\mathbb{E}[|X|]<\\infty, x>0, g - \\text{convex}\\end{eqnarray}|\\begin{eqnarray}g(\\mathbb{E}[X])\\leqslant\\mathbb{E}[g(X)]\\end{eqnarray}|Proofs|\n", - "|Markov|\\begin{eqnarray}\\mathbb{E}[|X|^p]<\\infty, p>0, x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(|X| \\geqslant x) \\leqslant \\frac{\\mathbb{E}[|X|^p]}{x^p}\\end{eqnarray}|Tails|\n", - "|Chebyshev|\\begin{eqnarray}\\mathbb{V}\\text{ar}(X)<\\infty, x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(|X - \\mathbb{E}[X]| \\geqslant x) \\leqslant \\frac{\\mathbb{V}\\text{ar}(X)}{x^2}\\end{eqnarray}|Tails|\n", - "|Chernoff|\\begin{eqnarray}\\mathbb{E}[e^{tX}]<\\infty,t>0,x>0\\end{eqnarray}|\\begin{eqnarray}\\mathbb{P}(X \\geqslant x) \\leqslant \\frac{\\mathbb{E}[e^{tX}]}{e^{tx}}\\end{eqnarray}|Tails|" - ] - }, - { - "cell_type": "markdown", - "id": "5e171c83", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Homework problems" - ] - }, - { - "cell_type": "markdown", - "id": "8b5f954d", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Problem 1\n", - "\n", - "In a national survey, a random sample of people are chosen and asked whether they support a certain policy. Assume that everyone in the population is equally likely to be surveyed at each step, and that the sampling is with replacement (sampling without replacement is typically more realistic, but with replacement will be a good approximation if the sample size is small compared to the population size). Let $n$ be the sample size, and let $\\hat{p}$ and $p$ be the proportion of people who support the policy in the sample and in the entire population, respectively. Show that for every $c > 0$,\n", - "$$\n", - "\\mathbb{P}(|\\hat{p} - p| > c\\sigma) \\leqslant \\frac{1}{4nc^2}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8fa5b773", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "Let $X \\sim Bin(n, p)$ describe the number of people, who support the policy. Then,\n", - "$$\n", - "\\hat{p} = \\frac{X}{n}\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "\\mathbb{E}[\\hat{p}] = \\frac{1}{n}\\mathbb{E}[X] = \\frac{1}{n}np = p\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{V}\\text{ar}(\\hat{p}) = \\frac{1}{n^2}\\mathbb{V}\\text{ar}(X) = \\frac{p(1-p)}{n}\n", - "$$\n", - "\n", - "Then we use Chebyshev inequality\n", - "$$\n", - "\\mathbb{P}(|\\hat{p} - \\mathbb{E}[\\hat{p}]| > c) \\leqslant \\frac{\\mathbb{V}\\text{ar}(\\hat{p})}{c^2}\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(|\\hat{p} - p| > c) \\leqslant \\frac{p(1-p)}{nc^2} \\leqslant \\frac{1}{4nc^2}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fe77da7f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Convergence of random variables" - ] - }, - { - "cell_type": "markdown", - "id": "57401c7b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Convergence of random variables\n", - "\n", - "Consider infinite series of r.v.s $X_1, X_2, \\ldots$\n", - "\n", - "1. $X_n$ converges to $X$ **in probability** ($X_n \\xrightarrow{P} X$) if $\\forall \\varepsilon > 0$\n", - " $$\n", - " \\mathbb{P}(|X_n - X| > \\varepsilon) \\to 0\n", - " $$\n", - "2. $X_n$ converges to $X$ **almost surely** ($X_n \\xrightarrow{\\text{a.s.}} X$) if\n", - " $$\n", - " \\mathbb{P}(X_n \\to X) = 1\n", - " $$\n", - "3. $X_n$ converges to $X$ **mean-square** ($X_n \\xrightarrow{\\text{m.s.}} X$) if\n", - " $$\n", - " \\mathbb{E}\\left[(X_n - X)^2\\right] \\to 0\n", - " $$\n", - "4. $X_n$ converges to $X$ **in distribution** ($X_n \\xrightarrow{d} X$) if for any bounded continuous function $\\varphi$\n", - " $$\n", - " \\mathbb{E}[\\varphi(X_n)] \\to \\mathbb{E}[\\varphi(X)]\n", - " $$" - ] - }, - { - "cell_type": "markdown", - "id": "958619c9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Convergence in probability, detailed\n", - "\n", - "- $X_n \\xrightarrow{d} X$ is equivalent to $F_{X_n}(x) \\to F_X(x)$\n", - "- If r.v. takes only integer values, then $X_n \\xrightarrow{d} X$ is equivalent to $\\mathbb{P}(X_n = k) \\to \\mathbb{P}(X = k)$\n", - "- $X_n \\xrightarrow{d} X$ is equivalent to convergence of characteristic functions, PGFs, MGFs" - ] - }, - { - "cell_type": "markdown", - "id": "b8b18466", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 1\n", - "\n", - "Let $X_n \\sim Bin(n, p_n)$ and $np_n \\to \\lambda, n \\to \\infty$. Show that $X_n \\xrightarrow{d} X \\sim Pois(\\lambda)$." - ] - }, - { - "cell_type": "markdown", - "id": "af91ee58", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 1\n", - "\n", - "We need to show $\\mathbb{P}(X_n = k) \\to \\mathbb{P}(X = k)$.\n", - "\n", - "$$\n", - "\\begin{aligned}\n", - "\\mathbb{P}(X_n = k) & = \\begin{pmatrix}n\\\\k\\end{pmatrix} p^k (1 - p)^{n-k} = \\frac{n(n-1)\\ldots (n-k+1)}{k!} \\left( \\frac{\\lambda}{n} \\right)^k \\left( 1 - \\frac{\\lambda}{n} \\right)^n \\left( 1- \\frac{\\lambda}{n} \\right)^{-k} = \\\\\n", - "& = \\left[ \\frac{\\lambda^k}{k!} \\underbrace{\\left(1- \\frac{\\lambda}{n} \\right)^n}_{\\to e^{-\\lambda}} \\right] \\underbrace{\\left( 1 - \\frac{\\lambda}{n} \\right)^{-k}}_{\\to 1} \\underbrace{\\frac{n(n-1)\\ldots (n-k+1)}{n^k}}_{\\to 1} \\to \\frac{\\lambda^k}{k!} e^{-\\lambda} = \\\\\n", - "& = \\mathbb{P}(X = k)\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "ca3e36dc", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Relations between types of convergence\n", - "\n", - "1. $X_n \\xrightarrow{P} X \\Rightarrow X_n \\xrightarrow{d} X$\n", - "2. $X_n \\xrightarrow{\\text{a.s.}} X \\Rightarrow X_n \\xrightarrow{P} X$\n", - "3. $X_n \\xrightarrow{\\text{m.s.}} X \\Rightarrow X_n \\xrightarrow{P} X$\n", - "4. If $\\{X_n\\}$ is monotonic a.s. ($X_{n+1} \\geqslant X_n$ a.s.) $X_n \\xrightarrow{P} X \\Rightarrow X_n \\xrightarrow{\\text{m.s.}} X$\n", - "5. If $X_n$ is uniformly bounded ($|X_n| < a$ a.s.) $X_n \\xrightarrow{P} X \\Rightarrow X_n \\xrightarrow{\\text{m.s.}} X$\n", - "5. $X_n \\xrightarrow{d} C \\Rightarrow X_n \\xrightarrow{P} C$\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "3899d533", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Limit theorems" - ] - }, - { - "cell_type": "markdown", - "id": "05ed877f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Limit theorems\n", - "\n", - "We will discuss the two most famous theorems in probability:\n", - "- the law of large numbers (LLN)\n", - "- the central limit theorem (CLT)\n", - "\n", - "Both tell us what happens to the **sample mean** $\\overline{X_n} = \\frac1n \\sum_{i=1}^n X_i$ as we obtain more and more data $n \\to \\infty$.\n", - "\n", - "Limit theorems let us make approximations which are likely to work well when we have a large number of data points." - ] - }, - { - "cell_type": "markdown", - "id": "c837a36f", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Law of large numbers\n", - "\n", - "Let $X_1, X_2, \\ldots, X_n$ be i.i.d. r.v.s with $\\mathbb{E}[X_i] = m$ and $\\mathbb{V}\\text{ar}(X) = \\sigma^2$. Then,\n", - "$$\n", - "\\mathbb{E}\\left[ \\left( \\frac1n \\sum_{i=1}^n X_i - m \\right)^2 \\right] \\to 0\n", - "$$\n", - "\n", - "So, LLN says that\n", - "$$\n", - "\\frac1n \\sum_{i=1}^n X_i \\xrightarrow{\\text{m.s.}} m\n", - "$$\n", - "\n", - "We know that m.s. convergence implies $P$-convergence, so\n", - "$$\n", - "\\frac1n \\sum_{i=1}^n X_i \\xrightarrow{P} m\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f88bd73b", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Law of large numbers\n", - "\n", - "1. (Chebyshev form) The i.i.d. part can be relaxed to $\\operatorname{cov}(X_i, X_j) \\leqslant 0$\n", - "2. (Khinchin form) The existence of variance can be relaxed, but then we only have convergence in probability\n", - "3. Both parts can not be relaxed at the same time\n", - "4. Existence of expectation is essential" - ] - }, - { - "cell_type": "markdown", - "id": "5b3078a3", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Strong law of large numbers\n", - "\n", - "Let $X_1, X_2, \\ldots, X_n$ be i.i.d. r.v.s with $\\mathbb{E}[X_i] = m$. Then,\n", - "$$\n", - "\\frac1n \\sum_{i=1}^n X_i \\xrightarrow{\\text{a.s.}} m\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "239593c2", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 2\n", - "\n", - "Consider you have $K_1$ money, that you want to multiply. You have two possibilities to do that:\n", - "- to put the money into the bank that guarantees $b \\cdot 100\\%$ yearly interest\n", - "- to invest into stocks that will earn you $X \\cdot 100\\%$ yearly interest, where $X$ is an r.v. with expected value $m_X > b > 0$\n", - "\n", - "Denote the fraction of money put into the bank as $u$ and the fraction of money invested into stocks $v$, such that $0 \\leqslant u + v \\leqslant 1$. This way, in a year, you will have\n", - "$$\n", - "K_2 = K_1 (1 + bu + Xv)\n", - "$$\n", - "\n", - "Obviously, the strategy maximizing the expected income is to set $u = 0, v = 1$. Show that \n", - "- $\\mathbb{E}[K_t] \\to \\infty$\n", - "- If $\\mathbb{E}[\\log (1 + X)] < 0$, then $\\mathbb{E}[K_t] \\xrightarrow{\\text{a.s.}} 0$" - ] - }, - { - "cell_type": "markdown", - "id": "125d6736", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2.1\n", - "\n", - "$$\n", - "\\mathbb{E}[K_{t+1}] = \\mathbb{E}[K_t (1 + X_t)] = \\mathbb{E}[K_1 \\prod_{i=1}^t (1 + X_i)] = K_1 (1 + m_x)^t \\to \\infty\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d6e959c1", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 2.2\n", - "\n", - "Consider change of variables\n", - "$$\n", - "K_{t+1} = K_1 e^{tY_t}\n", - "$$\n", - "where\n", - "$$\n", - "Y_t = \\frac1t \\sum_{i=1}^t \\log(1+ X_i)\n", - "$$\n", - "\n", - "Consider SLLN for $\\log(1+ X_i)$, then\n", - "$$\n", - "\\frac1t \\sum_{i=1}^t \\log(1+ X_i) \\xrightarrow{\\text{a.s.}} \\mathbb{E}[\\log(1+ X)] = - a < 0\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "K_{t+1} = K_1 e^{-at} \\xrightarrow{\\text{a.s.}} 0\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f79080c9", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Central limit theorem\n", - "\n", - "Let $X_1, X_2, \\ldots, X_n$ be i.i.d. r.v.s, $\\mathbb{E}[X] = \\mu$, $\\mathbb{V}\\text{ar}(X) = \\sigma^2$. Then,\n", - "$$\n", - "Z_n = \\frac{\\sum_{i=1}^n X_i - \\mu}{\\sqrt{n \\sigma^2}} \\xrightarrow{d} \\mathcal{N}(0, 1)\n", - "$$\n", - "\n", - "If additionally $X_i$ are continuous, then\n", - "$$\n", - "f_{Z_n}(x) \\to \\frac{1}{\\sqrt{2\\pi}} e^{-x^2/2}\n", - "$$\n", - "\n", - "It works for random vector as well. Let $\\mathbf{X_1}, \\mathbf{X_2}, \\ldots, \\mathbf{X_n}$ be i.i.d. with $\\mathbb{E}[\\mathbf{X}] = \\mathbf{m}$ and covariance matrix $\\Sigma$. Then,\n", - "$$\n", - "\\frac{\\sum_{i=1}^n \\mathbf{X_i} - \\mathbf{m}}{\\sqrt{n}} \\sim \\mathcal{N}(0, \\Sigma)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "79a0f686", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Example 3\n", - "\n", - "В выборах участвовали два кандидата T и C. T набрал NT = 520000 го- лосов, а C — NC = 480000. Оказалось, что аппарат считающий бюллетени, был настроен неправильно, и случайно менял каждый голос на противоположный с вероятностью p = 0.45. Найти вероятность того, что число голосов за T оказалось не меньше N T , если изначально за T и C было отдано поровну голосов: N0T = N0C = 500000.\n", - "\n", - "Two parties $L$ and $D$ participate in election. $L$ gets $N_L = 520000$ votes, $D$ gets $N_D = 480000$ votes. Turns out that the voting machine was broken and randomly changed a vote with probability $p = 0.45$. Find probability that votes for $L$ were at least $N_L$ if the actual votes were $N_{0L} = N_{0D} = 500000$." - ] - }, - { - "cell_type": "markdown", - "id": "1a4cb1e7", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "Consider r.v. $X_i \\sim Be(p)$ - indicator of error $D \\to L$, and $Y_i \\sim Be(p)$ - indicator of error $L \\to D$. Then, the votes for $L$ are\n", - "$$\n", - "Z = \\sum_{i=1}^{N_{0L}} X_i + \\sum_{j=1}^{N_{OD}} (1 - Y_j)\n", - "$$\n", - "\n", - "By CLT,\n", - "$$\n", - "\\frac{Z - \\mathbb{E}[Z]}{\\sqrt{N_{OD}\\mathbb{V}\\text{ar}(X_i)}} \\sim \\mathcal{N}(0, 1)\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{E}[Z] = N_{0L} p + N_{OD} (1-p) = N_{OD}\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{V}\\text{ar}(X_i) = p (1 - p)\n", - "$$\n", - "\n", - "Then,\n", - "$$\n", - "\\mathbb{P}(Z \\geqslant N_L) = \\mathbb{P}\\left(\\frac{Z - N_{OD}}{\\sqrt{2 N_{OD} p (1 - p)}} \\geqslant \\frac{N_L - N_{OD}}{\\sqrt{2 N_{OD} p (1 - p)}}\\right) \\approx \\mathbb{P}(V \\geqslant a)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8be46233", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Solution 3\n", - "\n", - "$$\n", - "\\mathbb{P}(Z \\geqslant N_L) = \\mathbb{P}\\left(\\frac{Z - N_{OD}}{2 N_{OD} p (1 - p)} \\geqslant \\frac{N_L - N_{OD}}{2 N_{OD} p (1 - p)}\\right) \\approx \\mathbb{P}(V \\geqslant a)\n", - "$$\n", - "where $V \\sim \\mathcal{N}(0, 1)$ and\n", - "$$\n", - "a = \\frac{N_L - N_{OD}}{2 N_{OD} p (1 - p)} \\approx 40\n", - "$$\n", - "\n", - "$$\n", - "\\mathbb{P}(Z \\geqslant N_L) \\approx 10^{-350}\n", - "$$" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).pdf b/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).pdf deleted file mode 100644 index 209ce5b..0000000 Binary files a/Seminar_materials/Seminar14/Seminar 14 (Limit Theorems).pdf and /dev/null differ diff --git a/Seminar_materials/Seminar14/convergence_relations.png b/Seminar_materials/Seminar14/convergence_relations.png deleted file mode 100644 index 9afdb50..0000000 Binary files a/Seminar_materials/Seminar14/convergence_relations.png and /dev/null differ diff --git a/Seminar_materials/seminar_01/Seminar 1 (Introduction).html b/Seminar_materials/seminar_01/Seminar 1 (Introduction).html new file mode 100644 index 0000000..9718aa9 --- /dev/null +++ b/Seminar_materials/seminar_01/Seminar 1 (Introduction).html @@ -0,0 +1,7982 @@ + + + + + +Seminar 1 (Introduction) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/Seminar_materials/seminar_01/Seminar 1 (Introduction).ipynb b/Seminar_materials/seminar_01/Seminar 1 (Introduction).ipynb new file mode 100755 index 0000000..e745412 --- /dev/null +++ b/Seminar_materials/seminar_01/Seminar 1 (Introduction).ipynb @@ -0,0 +1,625 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "c622c935-0b83-4b18-a608-25e27ab27c7d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "skip" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2a8aaab5-a8da-466d-9fce-9df3e0879985", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "skip" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "from scipy.special import factorial" + ] + }, + { + "cell_type": "markdown", + "id": "ed2cd65f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "# Seminar 1" + ] + }, + { + "cell_type": "markdown", + "id": "3fba3091-9c11-4435-bb22-a755fd5f982d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Seminar outlook\n", + "\n", + "- I introduce myself\n", + "- You introduce yourselves\n", + "- Administrative announcements\n", + "- Counting rules and naive definition of probability" + ] + }, + { + "cell_type": "markdown", + "id": "632282a7", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Let's get to know each other\n", + "\n", + "- My name is Nikolai Stulov\n", + "- I myself got my BSc from MIPT\n", + "- Got my MSc from HSE and Skoltech\n", + "- 6 years of experience as Data Scientist and ML researcher\n", + "- 4th time teaching Probability at MSAI\n", + "\n", + "I will be happy to hear short introductions from you! (but it's OK if you don't want to)" + ] + }, + { + "cell_type": "markdown", + "id": "34821b99-a06f-4c27-869c-8ab26fe622a9", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Course outlook\n", + "\n", + "- Lectures will be distributed several days in advance (perhaps Monday), it's best to watch the lecture before the webinar\n", + "- The webinars are mostly delivered in Jupyter notebooks, notebooks will be distributed via GitHub\n", + "- You can get a maximum of 10 points for the course. Graded activities: homework, project, exam.\n", + "- Homework will be weekly with 2 weeks time to solve. Each homework includes regular and bonus problems. Homeworks are distributed in Telegram, collected with Google Forms.\n", + "- Fully solved regular problems in all homeworks will give you 7 points for the course. Bonus problems will give you additional 2 points for the course. If AI assistants are used, it must be explicitly stated and prompt must be provided.\n", + "- A project is a take-home literature review + coding assignment. Project will give you additional 2 points for the course, but is not compulsory for anyone.\n", + "- Exam is not compulsory if you get more than 3 points with homeworks. If you get 3 or less, you must take exam. Exam can give you a maximum of 3 points." + ] + }, + { + "cell_type": "markdown", + "id": "5756efe3", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Counting rules" + ] + }, + { + "cell_type": "markdown", + "id": "19acb677", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 1 (entrance exam)\n", + "\n", + "Russian car plate consists of three letters and three digits. Any digits are permitted, but the only permitted letters are the ones that have English-lookalikes. How many car plates are possible in one region?" + ] + }, + { + "cell_type": "markdown", + "id": "6320db58", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 1\n", + "\n", + "How many letters are there?" + ] + }, + { + "cell_type": "markdown", + "id": "74e8cc12-3ed6-4b9c-a089-8dcadd36de71", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "A, B, C, E, H, K, M, O, P, T, X, Y - total 12 letters. We choose 3 digits from them. Do we sample with or without replacement?" + ] + }, + { + "cell_type": "markdown", + "id": "7dc90a61-e216-4dd5-8d8d-cc13625cc2c2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Using sampling with replacement, because there are no restrictions on repetitions of letters:\n", + "- We choose three of ten digits: $10^3$\n", + "- We choose three of twelve letters: $12^3$" + ] + }, + { + "cell_type": "markdown", + "id": "2ac7b04d-7978-4789-a32c-1cea83bf2de8", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Since the choice of the digits and the letters is independent, the total number of plates is therefore $10^3 \\cdot 12^3 = 1728000$." + ] + }, + { + "cell_type": "markdown", + "id": "8913f59a", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 2 (entrance exam)\n", + "How many 7-digit phone numbers are possible, assuming that the first digit can’t be a 0 or a 1?" + ] + }, + { + "cell_type": "markdown", + "id": "993204d7-65d3-41c5-b4a9-1a6080bfa6d8", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 2\n", + "\n", + "We independently choose each digit. Do we sample with or without replacement?" + ] + }, + { + "cell_type": "markdown", + "id": "2ec2c737-871d-47eb-aacf-de76a7b657d2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Using sampling with replacement, because there are no restrictions on repetitions of numbers:\n", + "- We choose the first digit from reduced set of 8 digits: $8$\n", + "- We choose the rest 6 digits: $10^6$" + ] + }, + { + "cell_type": "markdown", + "id": "4ac289e8-0676-4b2c-a179-b978d4a46c2b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "The total number of phone numbers is therefore $8 \\cdot 10^6$." + ] + }, + { + "cell_type": "markdown", + "id": "a5d89ade-8a67-4e29-8c3f-1ec458012277", + "metadata": {}, + "source": [ + "$$\n", + "n \\cdot (n - 1) \\cdot \\ldots \\cdot (n - k + 1)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "124fbdd2-9a29-4287-8dcc-059a5e4d48d7", + "metadata": {}, + "source": [ + "$$\n", + "n = k \\Rightarrow n \\cdot (n - 1) \\cdot \\ldots \\cdot (n - n + 1) = n!\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "182aa1e5", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 3\n", + "How many paths are there from the point (0,0) to the point (110,111) in the plane such that each step either consists of going one unit up or one unit to the right?" + ] + }, + { + "cell_type": "markdown", + "id": "dd2bccb8-3184-4e4f-9e5a-4a3a9133b386", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 3\n", + "\n", + "We will encode a path as a sequence of letters $U$ (for up step) and $R$ (for right step), like $URURURU\\ldots UURUR$. How many $R$s and $U$s will be in the complete sequence?" + ] + }, + { + "cell_type": "markdown", + "id": "02d1f71d-41de-4dd3-8c31-0d6f19ca4618", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "The sequence must consist of 110 $R$s and 111 $U$s, because we need to get from 0 to 110 horizontally by only moving right and from 0 to 111 vertically by only moving up." + ] + }, + { + "cell_type": "markdown", + "id": "c5bbb80d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Let's use the factorial rule: the number of shuffles of this $UR$ sequence is $(110+111)! = 221!$. Is it correct?" + ] + }, + { + "cell_type": "markdown", + "id": "09d469d4", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "It is not correct, because we do not care about individual permutations of $R$s and $U$s, but we counted these permutations as different. We need to **adjust for overcounting**.\n", + "\n", + "We need to get rid of permutations that we counted multiple times. In order to do that, we divide by the number of such permutations, and this gives the correct answer:\n", + "\n", + "$$\\frac{221!}{110!111!}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e41ddb89-18e4-425b-844e-23387545ab73", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/33/j0cl7y453td68qb96j7bqcj4cf41kc/T/ipykernel_87094/3000228604.py:1: RuntimeWarning: overflow encountered in double_scalars\n", + " factorial(221) / (factorial(110) * factorial(111))\n", + "/var/folders/33/j0cl7y453td68qb96j7bqcj4cf41kc/T/ipykernel_87094/3000228604.py:1: RuntimeWarning: invalid value encountered in double_scalars\n", + " factorial(221) / (factorial(110) * factorial(111))\n" + ] + }, + { + "data": { + "text/plain": [ + "nan" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "factorial(221) / (factorial(110) * factorial(111))" + ] + }, + { + "cell_type": "markdown", + "id": "08b20e9f-8dee-4851-82e6-64c9b096aaca", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "source": [ + "Why didn't we overcount previously?" + ] + }, + { + "cell_type": "markdown", + "id": "8cbac97c-655d-4734-8d12-ce15c34c96ee", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Because we didn't use the number of shuffles formula $n!$, that assumes that object are distinguishable." + ] + }, + { + "cell_type": "markdown", + "id": "bfae1a78", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Naive definition" + ] + }, + { + "cell_type": "markdown", + "id": "16b79717-51aa-43e6-801f-5e0ac1386c57", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 4 (entrance exam)\n", + "\n", + "A child is playing with cubes with letters A, A, C, E, H, I, K, M, M, S, T, T. What is the probability that a random ordering of the cubes in one line will form the word MATHEMATICS?" + ] + }, + { + "cell_type": "markdown", + "id": "b814bb58-6a28-4c5d-9460-93899980d443", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 4\n", + "\n", + "A, A, C, E, H, I, K, M, M, S, T, T - total 12 letters.\n", + "\n", + "Let's count the number of favorable cases: 2 ways to get an M, 2 ways to get an A, 2 ways to get a T, one way to get H and E, one left way to get an M, etc all ones. Multiplying, we get $2 \\cdot 2 \\cdot 2 \\cdot 1 \\cdot 1 \\cdot 1 \\cdot ... = 2^3$.\n", + "\n", + "Let's count the total number of cases: it is $12!$. Does this mean our answer is\n", + "$$\n", + "\\frac{2^3}{12!}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "db2fcd4c-2cd5-447c-9ccb-2ccab725c23e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "No, it does not. We overcounted the total number of cases, because we counted twice the cases that differe in the positions of the same letters. We must get rid of the overcounting:\n", + "$$\n", + "\\frac{2^3}{\\frac{12!}{2!2!2!}} = \\frac{2^6}{12!}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e069ccd9-03f9-44d4-b561-5e4d04cfdf58", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1.3361124472235584e-07" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "2 ** 6 / factorial(12)" + ] + }, + { + "cell_type": "markdown", + "id": "fc86e8db", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 5 (entrance exam)\n", + "A city with 6 districts has 6 robberies in a particular week. Assume the robberies are located randomly, with all possibilities for which robbery occurred where equally likely. What is the probability that some district had more than 1 robbery?" + ] + }, + { + "cell_type": "markdown", + "id": "c0d028d6-e602-4346-8e41-f185bdf75d62", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{neg}{all} = \\frac{all - fav}{all} = 1 - \\frac{fav}{all}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "cf105e4e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 5\n", + "\n", + "We will compute the probability of the complement.\n", + "\n", + "- All cases: There are $6^6$ possible configurations for which robbery occurred where.\n", + "- Favorable cases: There are $6!$ configurations where each district had exactly 1 of the 6.\n", + "\n", + "So the probability of the complement of the desired event is $6!/6^6$.\n", + "\n", + "Finally, the probability of some district having more than 1 robbery is $1 - 6!/6^6$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5dc1948a", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.9845679012345679" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "1 - factorial(6) / (6 ** 6)" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Seminar_materials/seminar_01/Seminar 1 (Introduction).pdf b/Seminar_materials/seminar_01/Seminar 1 (Introduction).pdf new file mode 100644 index 0000000..2321531 Binary files /dev/null and b/Seminar_materials/seminar_01/Seminar 1 (Introduction).pdf differ diff --git a/Seminar_materials/seminar_01/Seminar 1 (Introduction).slides.html b/Seminar_materials/seminar_01/Seminar 1 (Introduction).slides.html new file mode 100644 index 0000000..44b6ec6 --- /dev/null +++ b/Seminar_materials/seminar_01/Seminar 1 (Introduction).slides.html @@ -0,0 +1,7959 @@ + + + + + + + +Seminar 1 (Introduction) slides + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + + diff --git a/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).html b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).html new file mode 100644 index 0000000..fb00cba --- /dev/null +++ b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).html @@ -0,0 +1,8124 @@ + + + + + +Seminar 2 (Definition of probability) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).ipynb b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).ipynb new file mode 100755 index 0000000..ffeb7f5 --- /dev/null +++ b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).ipynb @@ -0,0 +1,564 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "1cac9fc4", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Seminar 2" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "605f0b9f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "skip" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/33/j0cl7y453td68qb96j7bqcj4cf41kc/T/ipykernel_40555/3212562443.py:8: DeprecationWarning: `set_matplotlib_formats` is deprecated since IPython 7.23, directly use `matplotlib_inline.backend_inline.set_matplotlib_formats()`\n", + " dp.set_matplotlib_formats(\"retina\")\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import IPython.display as dp\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "dp.set_matplotlib_formats(\"retina\")\n", + "sns.set(style=\"whitegrid\", font_scale=1.5)\n", + "sns.despine()\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "id": "41f5d8ec-69f9-44ef-8e70-8b1b1d0766b3", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Last time\n", + "\n", + "- Product rule for sampling with replacement when order matters\n", + "- Factorial rule for sampling without replacement when order matters\n", + "- Naive definition of probability\n", + "- Finding the probability of complement" + ] + }, + { + "cell_type": "markdown", + "id": "3b6cbe26-1a99-4df7-b756-20e0691b352c", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## This time\n", + "\n", + "- Binomial coefficient for sampling without replacement when order doesn't matter\n", + "- \"Stars and bars\" for sampling with replacement where the order doesn't matter\n", + "- Axiomatic definition of probability" + ] + }, + { + "cell_type": "markdown", + "id": "f525ffce-cfaa-4907-830a-64a1c1003bca", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Binomial coefficient\n", + "\n", + "A binomial coefficient counts the number of subsets of a certain size for a set, such as the number of ways to choose a committee of size $k$ from a set of $n$ people. Sets and subsets are by definition unordered, e.g., $\\{3, 1, 4\\} = \\{4, 1, 3\\}$, so we are counting the number of ways to choose $k$ objects out of $n$, without replacement and without distinguishing between the different orders in which they could be chosen.\n", + "\n", + "For any nonnegative integers $k$ and $n$, the binomial coefficient $\\begin{pmatrix}n\\\\k\\end{pmatrix}$, read as \"$n$ choose $k$\", is the number of subsets of size $k$ for a set of size $n$. For $ k \\leqslant n$,\n", + "\n", + "$$\n", + "\\begin{pmatrix}n\\\\k\\end{pmatrix}=\\frac{n!}{k!(n-k)!}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3d2bbfbb-4ef7-4b69-a252-e2dc50da8d25", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 1\n", + "\n", + "How many paths are there from the point (0,0) to the point (110,111) in the plane such that each step either consists of going one unit up or one unit to the right?" + ] + }, + { + "cell_type": "markdown", + "id": "f1477908-73e1-4159-96da-c25df7a1d14f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 1\n", + "\n", + "Reminder: We will encode a path as a sequence of letters $U$ (for up step) and $R$ (for right step), like $URURURU\\ldots UURUR$. The sequence must consist of 110 $R$s and 111 $U$s.\n", + "\n", + "Note that to fully describe the sequence we actually only need to specify where the $R$s are located. This falls under binomial coefficient definition. So there are $\\begin{pmatrix}110+111\\\\110\\end{pmatrix}$ possible paths." + ] + }, + { + "cell_type": "markdown", + "id": "83c515e1-5aa2-4481-9a96-01584d1d8a6b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 2\n", + "\n", + "How many ways are there to split a dozen people into 3 teams, where each team has 4 people?" + ] + }, + { + "cell_type": "markdown", + "id": "5906936b-1bd5-42d0-b649-883bc1e524d2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 2\n", + "\n", + "Let's randomly pick the first team, then randomly pick the second and claim the remaining people the third team.\n", + "\n", + "This gives us $\\begin{pmatrix}12\\\\4\\end{pmatrix}\\cdot\\begin{pmatrix}8\\\\4\\end{pmatrix}$ possibilities. Is it correct?" + ] + }, + { + "cell_type": "markdown", + "id": "5bd8b72a-1a0b-42c1-beb6-b22a31483786", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "It is not correct, because we overcounted due the fact that we do not actually care which team is the first, second or third. So we need to divide the expression by $3!$. The final answer is:\n", + "\n", + "$$\n", + "\\frac{1}{3!} \\cdot \\begin{pmatrix}12\\\\4\\end{pmatrix}\\cdot\\begin{pmatrix}8\\\\4\\end{pmatrix} = \\frac{1}{3!} \\cdot \\frac{12!}{4!8!} \\cdot \\frac{8!}{4!4!} = \\frac{12!}{4! 4! 4! 3!}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "15802ff5-f369-46a9-9f9c-bde643c64509", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "If we cared which team is which, we would obtain $\\frac{12!}{4! 4! 4!}$, which is called a **multinomial coefficient**. The only difference is that we choose more than one subset from one total." + ] + }, + { + "cell_type": "markdown", + "id": "d81bceef-797d-4df7-9921-73ef99d818ca", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 3\n", + "\n", + "How many ways are there to put 10 balls into 3 boxes?" + ] + }, + { + "cell_type": "markdown", + "id": "cc8d44d4-6de0-44bf-8a6c-85457b6f53b3", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 3\n", + "\n", + "Let's visualize the balls as o and borders of boxes as |:\n", + "$$\n", + "|oooo|oooo|oo|\n", + "$$\n", + "\n", + "How many balls do we have? How many borders do we have? How many total objects do we have?" + ] + }, + { + "cell_type": "markdown", + "id": "46451a2b-d3b0-4352-82b0-78a0b38e7888", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "We have:\n", + "- 10 balls\n", + "- 3 + 1 borders. Note however, that 2 borders are fixed to be leftmost and rightmost. So the free borders are actually 3 - 1.\n", + "- 10 + 3 - 1 objects total\n", + "\n", + "Then, we need to choose the positions of the borders:\n", + "$$\n", + "\\begin{pmatrix}10 + 3 - 1\\\\3 - 1\\end{pmatrix} = \\begin{pmatrix}n + k - 1\\\\k - 1\\end{pmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3b8f1f70", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Recap of counting\n", + "\n", + "Sampling $k$ objects from $n$ choices:\n", + "\n", + "|With replacement|Order matters|Formula|\n", + "|:-:|:-:|:-:|\n", + "|Yes|Yes|\\begin{eqnarray}n^k\\end{eqnarray}|\n", + "|Yes|No|\\begin{eqnarray}\\begin{pmatrix}n+k-1\\\\k-1\\end{pmatrix}\\end{eqnarray}|\n", + "|No|Yes|\\begin{eqnarray}n!\\end{eqnarray}|\n", + "|No|No|\\begin{eqnarray}\\begin{pmatrix}n\\\\k\\end{pmatrix}\\end{eqnarray}|" + ] + }, + { + "cell_type": "markdown", + "id": "63428a7f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 4\n", + "\n", + "There are 100 passengers lined up to board an airplane with 100 seats (with each seat assigned to one of the passengers). The first passenger in line crazily decides to sit in a randomly chosen seat (with all seats equally likely). Each subsequent passenger takes their assigned seat if available, and otherwise sits in a random available seat. What is the probability that the last passenger in line gets to sit in their assigned seat?" + ] + }, + { + "cell_type": "markdown", + "id": "3af73656-548a-470b-90c0-31cadf930ad8", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Solution 4\n", + "\n", + "Denote $i$-th passenger true seat as $i$, regardless of its position in the plane.\n", + "\n", + "Notice that there is always only one seat occupied incorrectly. Then consider a passenger $j$. He could sit in any other available seat, but he decided to sit into seat $1$. If he sits into seat $1$, it means that his place $j$ is taken.\n", + "\n", + "|pax\\seat|1|2|3|4|5|\n", + "|:-:|:-:|:-:|:-:|:-:|:-:|\n", + "||||1|||\n", + "|||2|1|||\n", + "|||2|1|3||\n", + "|||2|1|3|4|\n", + "||5|2|1|3|4|" + ] + }, + { + "cell_type": "markdown", + "id": "60e030d1-652a-484b-9064-b59e21c2d7db", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "|pax\\seat|1|2|3|4|5|\n", + "|:-:|:-:|:-:|:-:|:-:|:-:|\n", + "||||1|||\n", + "|||2|1|||\n", + "|||2|1|3||\n", + "||4|2|1|3||\n", + "||4|2|1|3|5|" + ] + }, + { + "cell_type": "markdown", + "id": "0897805d-5aea-49f1-b0dd-30b9e32fe163", + "metadata": {}, + "source": [ + "|pax\\seat|1|2|3|4|5|\n", + "|:-:|:-:|:-:|:-:|:-:|:-:|\n", + "||||1|||\n", + "|||2|1|||\n", + "|||2|1||3|\n", + "|||2|1|4|3|\n", + "||5|2|1|4|3|\n", + "\n", + "|pax\\seat|1|2|3|4|5|\n", + "|:-:|:-:|:-:|:-:|:-:|:-:|\n", + "||||1|||\n", + "|||2|1|||\n", + "||3|2|1|||\n", + "||3|2|1|4||\n", + "||3|2|1|4|5|" + ] + }, + { + "cell_type": "markdown", + "id": "e4fb44a0-9e40-4a05-a02d-51c94b20eb2f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "source": [ + "By sitting into seat $1$, he removes the source of permutation, because now all seats are occupied correctly. After that, all the passengers that enter the plane will be able to sit in their true seats. It is important that it always happens and can happen with any passenger $j$.\n", + "\n", + "Generally, the last $100$-th passenger may observe two cases:\n", + "- The premutation was removed, then he has the option to sit into his true $100$-th seat\n", + "- The permutation was not removed, then he is the one to remove the permutation and take seat $1$.\n", + "\n", + "We can now reduce the problem to just two seats: $1$-st and $100$-th. One of the passengers seating on these seats is the last $100$-th passenger, the other is any other passenger $j$." + ] + }, + { + "cell_type": "markdown", + "id": "0113aef1", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "source": [ + "Since $j<100$, it means that both $1$-st and $100$-th seats were empty when he or she boarded the plane! And the probabilities to sit in any of them is equal.\n", + "\n", + "If $j$ sat in $1$ then the last passenger ended up sitting in $100$ and the resulting configuration of passengers sitting in the 100 seats is the same as if $j$ had sat in $100$ except for the fact that the passengers in $1$ and $100$ are swapped. Therefore these two configurations occur with the same probability and exactly one of them has the last passenger in his or her seat $100$.\n", + "\n", + "This implies that all the final configurations of passengers can be paired such that the two configurations in any pair occur with the same probability and exactly one has the last passenger in his or her seat.\n", + "\n", + "This implies that the probability that the last passenger is in her seat is $0.5$." + ] + }, + { + "cell_type": "markdown", + "id": "ef85e62a", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Non-naive definition" + ] + }, + { + "cell_type": "markdown", + "id": "74356ca3", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Definition\n", + "\n", + "A probability space consists of a sample space $S$ and a probability function $P$ which takes an event $A \\subseteq S$ as input and returns $P(A)$, a real number between $0$ and $1$, as output. The function $P$ must satisfy the following axioms:\n", + "- $P(\\varnothing) = 0, P(S) = 1$\n", + "- If $A_1, A_2, \\ldots$ are disjoint ($A_i \\cap A_j = \\varnothing, i \\neq j$) events, then\n", + " $$\n", + " P\\left(\\bigcup\\limits_{j=1}^\\infty A_j\\right) = \\sum\\limits_{j=1}^\\infty P(A_j)\n", + " $$" + ] + }, + { + "cell_type": "markdown", + "id": "7c482edb", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Properties\n", + "\n", + "1. $P(A^c) = 1 − P(A)$\n", + "2. If $A \\subseteq B$, then $P(A) \\leqslant P(B)$\n", + "3. $P (A \\cup B) = P (A) + P (B) − P (A \\cap B)$" + ] + }, + { + "cell_type": "markdown", + "id": "764dbfee", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "### Problem 5\n", + "\n", + "Consider set $S$ of all (how many?) subsets of set $M = \\{1, \\ldots, N\\}$. We take two sets randomly and independently two sets $A, B \\in S$. Find the probability that $A \\cap B = \\varnothing$." + ] + }, + { + "cell_type": "markdown", + "id": "eb8e0e1b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution 5\n", + "\n", + "Take any element $e \\in M$ from the original set.\n", + "\n", + "- $\\mathbb{P}(e \\in A) = p_1 = \\tfrac12$, by construction of $A$\n", + "- $\\mathbb{P}(e \\in B) = p_2 = \\tfrac12$, by construction of $B$\n", + "- $\\mathbb{P}(e \\in A \\cap B) = p_{12} = p_1 \\cdot p_2 = \\tfrac14$\n", + "- $\\mathbb{P}(e \\notin A \\cap B) = 1 - \\mathbb{P}(e \\in A \\cap B) = 1 - p_{12} = \\tfrac34$\n", + "\n", + "Repeat for every $e \\in M$ to obtain:\n", + "$$\n", + "\\mathbb{P}(A \\cap B = \\varnothing) = \\left( \\frac34 \\right)^N\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "acd1a62f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Inclusion-exclusion formula\n", + "\n", + "$$P (A \\cup B) = P (A) + P (B) − P (A \\cap B)$$" + ] + }, + { + "cell_type": "markdown", + "id": "7624cc8b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "$$P\\left(\\bigcup\\limits_{i=1}^n A_i\\right) = \\sum_i P(A_i) − \\sum_{i < j} P(A_i \\cap A_j) + \\sum_{i < j < k}P(A_i \\cap A_j \\cap A_k)−\\ldots+(−1)^{n+1} P(A_1 \\cap\\ldots \\cap A_n)$$" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).pdf b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).pdf new file mode 100644 index 0000000..622473d Binary files /dev/null and b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).pdf differ diff --git a/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).slides.html b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).slides.html new file mode 100644 index 0000000..9eef529 --- /dev/null +++ b/Seminar_materials/seminar_02/Seminar 2 (Definition of probability).slides.html @@ -0,0 +1,8095 @@ + + + + + + + +Seminar 2 (Definition of probability) slides + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ + + diff --git a/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).html b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).html new file mode 100644 index 0000000..dcf7ff3 --- /dev/null +++ b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).html @@ -0,0 +1,7992 @@ + + + + + +Seminar 3 (Conditional probability) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/Seminar_materials/Seminar03/Seminar 3 (Conditional probability).ipynb b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).ipynb old mode 100644 new mode 100755 similarity index 77% rename from Seminar_materials/Seminar03/Seminar 3 (Conditional probability).ipynb rename to Seminar_materials/seminar_03/Seminar 3 (Conditional probability).ipynb index f151b9c..42497ac --- a/Seminar_materials/Seminar03/Seminar 3 (Conditional probability).ipynb +++ b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).ipynb @@ -4,9 +4,11 @@ "cell_type": "markdown", "id": "a8f7b639", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "# Seminar 3" @@ -16,9 +18,11 @@ "cell_type": "markdown", "id": "adopted-electricity", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Conditional probability in classic probability\n", @@ -38,9 +42,11 @@ "cell_type": "markdown", "id": "deadly-wildlife", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 1\n", @@ -54,9 +60,11 @@ "cell_type": "markdown", "id": "incorrect-margin", "metadata": { + "editable": true, "slideshow": { "slide_type": "fragment" - } + }, + "tags": [] }, "source": [ "- Sum of results is more than 6 is event $B$ (we condition on it). \n", @@ -67,9 +75,11 @@ "cell_type": "markdown", "id": "operating-rochester", "metadata": { + "editable": true, "slideshow": { "slide_type": "fragment" - } + }, + "tags": [] }, "source": [ "$$\n", @@ -81,84 +91,89 @@ "cell_type": "markdown", "id": "7bb7a2e9", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ - "## Recap of axiomatic definition of probability\n", + "## Recap of non-naive definition\n", "\n", - "A probability space is the following tuple: $(\\Omega, \\cal{F}, \\mathbb{P})$." + "A probability space consists of ..." ] }, { "cell_type": "markdown", "id": "needed-speaker", "metadata": { + "editable": true, "slideshow": { "slide_type": "fragment" - } + }, + "tags": [] }, "source": [ "- **Sample space** $\\Omega$\n", - "- **Set of events** $\\cal{F}$\n", - "- **Probability measure** $\\mathbb{P}$" + "- **Probability function** $\\mathbb{P}$" ] }, { "cell_type": "markdown", "id": "innovative-german", "metadata": { + "editable": true, "slideshow": { - "slide_type": "subslide" - } + "slide_type": "slide" + }, + "tags": [] }, "source": [ - "Set of events is $\\cal{F} \\subset 2^\\Omega$, such that\n", - "1. $\\Omega \\in \\cal{F}$\n", - "2. If $A \\in \\cal{F}$, then $\\overline{A} \\in \\cal{F}$ (closed under complement operation)\n", - "3. If $A_1, A_2, \\ldots \\in \\cal{F}$, then $\\bigcup_{k=1}^\\infty A_k \\in \\cal{F}$ (closed under countable union operation)\n", + "Probability function $P$ is such that it takes an event $A \\subseteq S$ as input and returns $P(A)$, a real number between $0$ and $1$, as output.\n", "\n", - "Probability measure is $\\mathbb{P}: \\cal{F} \\to \\mathbb{R}_+$, such that\n", - "1. $\\mathbb{P}(\\Omega) = 1$\n", - "2. If $A_1, A_2, \\ldots \\in \\cal{F}$ and $A_i \\cap A_j = \\varnothing$ for $i\\neq j$, then $\\mathbb{P}\\left(\\bigcup_{k=0}^\\infty A_k \\right) = \\sum_{k=1}^\\infty \\mathbb{P}(A_k)$ ($\\sigma$-additivity)" + "The function $P$ must satisfy the following axioms:\n", + "- $P(\\varnothing) = 0, P(S) = 1$\n", + "- If $A_1, A_2, \\ldots$ are disjoint ($A_i \\cap A_j = \\varnothing, i \\neq j$) events, then\n", + " $$\n", + " P\\left(\\bigcup\\limits_{j=1}^\\infty A_j\\right) = \\sum\\limits_{j=1}^\\infty P(A_j)\n", + " $$" ] }, { "cell_type": "markdown", "id": "directed-taiwan", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ - "## Conditional probability in axiomatic probability\n", + "## Conditional probability\n", "\n", - "In axiomatic probability, we will use the same formula as before, and say it's a definition.\n", + "In non-naive probability, we will use the same formula as before, and say it's a definition.\n", "\n", - "We are working with probability space $(\\Omega, \\cal{F}, \\mathbb{P})$, and we are given event $B \\in \\cal{F}$ such that $\\mathbb{P}(B) > 0$. Then the probability of any event $A \\in \\cal{F}$ conditioned on event $B$ is by definition:\n", + "We are working with probability space $(\\Omega, \\mathbb{P})$, and we are given event $B$ such that $\\mathbb{P}(B) > 0$. Then the probability of any event $A$ conditioned on event $B$ is by definition:\n", "$$\n", "\\mathbb{P}(A|B) = \\frac{\\mathbb{P}(A \\cap B)}{\\mathbb{P}(B)}\n", "$$\n", "\n", - "Let's say our sample space is now $B$. We can prove that:\n", - "- $\\cal{F}_B = \\{A \\cap B : A \\in \\cal{F}\\}$ is a $\\sigma$-algebra for $B$\n", - "- $\\mathbb{P}_B = \\mathbb{P}(A|B)$ is a porbability measure\n", - "\n", - "This means that $(B, \\cal{F}_B, \\mathbb{P}_B)$ is a porbability space and it is called **conditional probability space** given $B$." + "Let's say our sample space is now $B$. We can prove that $\\mathbb{P}_B = \\mathbb{P}(A|B)$ is a proper probability function, i.e. it satisfies the axioms. This means that conditional probability is a probability, $(B, \\mathbb{P}_B)$ is a probability space and it is called **conditional probability space** given $B$." ] }, { "cell_type": "markdown", "id": "preceding-dictionary", "metadata": { + "editable": true, "slideshow": { - "slide_type": "subslide" - } + "slide_type": "slide" + }, + "tags": [] }, "source": [ - "## Conditional probability in axiomatic probability\n", + "## Conditional probability\n", "\n", "- If $A \\subset B$, then\n", " $$\n", @@ -170,13 +185,58 @@ " $$" ] }, + { + "cell_type": "markdown", + "id": "a4e02c43-e18a-45c9-8ac8-5d4efa811df0", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Problem\n", + "\n", + "We throw die 10 times, and it is known that at least one result was 6. What is the probability that there was more than one result 6?" + ] + }, + { + "cell_type": "markdown", + "id": "3b10d007-43fe-41ca-8529-1b83d3115c6d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution\n", + "\n", + "Denote $A$ the event that there was at least one 6, $B$ the event that there was more than one 6.\n", + "$$\n", + "\\mathbb{P}(B|A) = \\frac{\\mathbb{P}(B \\cap A)}{\\mathbb{P}(A)} = \\frac{\\mathbb{P}(B)}{\\mathbb{P}(A)} = \\frac{1 - \\mathbb{P}(\\overline{B})}{1 - \\mathbb{P}(\\overline{A})}\n", + "$$\n", + "\n", + "$$\n", + "\\mathbb{P}(\\overline{B}) = (1 - \\frac16)^{10} + \\begin{pmatrix}10\\\\9\\end{pmatrix} (1 - \\frac16)^{9}\n", + "$$\n", + "\n", + "$$\n", + "\\mathbb{P}(\\overline{A}) = (1 - \\frac16)^{10}\n", + "$$" + ] + }, { "cell_type": "markdown", "id": "radio-marsh", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Probability of intersection of events\n", @@ -196,9 +256,11 @@ "cell_type": "markdown", "id": "fluid-albert", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Law of total probability\n", @@ -217,9 +279,11 @@ "cell_type": "markdown", "id": "successful-biodiversity", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 2\n", @@ -231,9 +295,11 @@ "cell_type": "markdown", "id": "reported-pastor", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", @@ -250,9 +316,11 @@ "cell_type": "markdown", "id": "exceptional-jungle", "metadata": { + "editable": true, "slideshow": { "slide_type": "fragment" - } + }, + "tags": [] }, "source": [ "Then, $\\mathbb{P}(B_1) = 0.99$ and $\\mathbb{P}(B_2) = 0.01$. Next, let's compute the probabilities $\\mathbb{P}(A|B_1)$ and $\\mathbb{P}(A|B_2)$." @@ -262,9 +330,11 @@ "cell_type": "markdown", "id": "built-budapest", "metadata": { + "editable": true, "slideshow": { "slide_type": "fragment" - } + }, + "tags": [] }, "source": [ "For a fair coin $\\mathbb{P}(A|B_1) = 0.5^7$, and for double-headed coin $\\mathbb{P}(A|B_2) = 1$.\n", @@ -279,9 +349,11 @@ "cell_type": "markdown", "id": "capital-celebration", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Bayes rule\n", @@ -302,9 +374,11 @@ "cell_type": "markdown", "id": "biological-tanzania", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 3\n", @@ -316,9 +390,11 @@ "cell_type": "markdown", "id": "treated-honor", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", @@ -333,9 +409,11 @@ "cell_type": "markdown", "id": "opposed-deficit", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 4\n", @@ -347,9 +425,11 @@ "cell_type": "markdown", "id": "romantic-county", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", @@ -375,9 +455,11 @@ "cell_type": "markdown", "id": "leading-waste", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 5\n", @@ -389,36 +471,37 @@ "cell_type": "markdown", "id": "south-relay", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", "\n", - "Let's find the probability of finding a car if the contestant does not switch his choice.\n", - "\n", - "Let's label\n", - "- the door that the contestant originally picked as door 1\n", - "- the door that Monty opens as door 2\n", - "- the probabilities of a car being behind a certain door $k$ as $C_k$\n", - "- the probability of Monty opening a certain door $k$ as $M_k$\n", + "Denote $A$ the event that the prize is behing the chosen door, $B$ the event that the choice was changed. Let's find the probability of winning when the choice is changed:\n", + "$$\n", + "\\mathbb{P}(\\text{win} | B) = \\mathbb{P}(\\text{win} | B, A) \\cdot \\mathbb{P}(A) + \\mathbb{P}(\\text{win} | B, \\overline{A}) \\cdot \\mathbb{P}(\\overline{A}) = 0 \\cdot \\frac13 + 1 \\cdot \\frac23 = \\frac23\n", + "$$\n", "\n", - "Then,\n", + "Let's find the probability of winning when the choice is not changed:\n", "$$\n", - "\\mathbb{P}(C_1|M_2) = \\frac{\\mathbb{P}(M_2|C_1)\\mathbb{P}(C_1)}{\\mathbb{P}(M_2)} = \\frac{\\tfrac12 \\times \\tfrac13}{\\frac12} = \\frac13\n", + "\\mathbb{P}(\\text{win} | \\overline{B}) = \\mathbb{P}(\\text{win} | \\overline{B}, A) \\cdot \\mathbb{P}(A) + \\mathbb{P}(\\text{win} | \\overline{B}, \\overline{A}) \\cdot \\mathbb{P}(\\overline{A}) = 1 \\cdot \\frac13 + 0 \\cdot \\frac23 = \\frac13\n", "$$\n", "\n", - "This means that the contestant should switch his choice." + "The contestant should thus switch." ] }, { "cell_type": "markdown", "id": "composed-footwear", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Independence of events\n", @@ -443,9 +526,11 @@ "cell_type": "markdown", "id": "forty-aviation", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Properties of independence\n", @@ -463,9 +548,11 @@ "cell_type": "markdown", "id": "authentic-nirvana", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Pairwise and mutual independence\n", @@ -487,9 +574,11 @@ "cell_type": "markdown", "id": "equipped-conservation", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 6\n", @@ -506,9 +595,11 @@ "cell_type": "markdown", "id": "departmental-lunch", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", @@ -523,9 +614,11 @@ "cell_type": "markdown", "id": "compressed-store", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Problem 7\n", @@ -537,9 +630,11 @@ "cell_type": "markdown", "id": "imposed-tourism", "metadata": { + "editable": true, "slideshow": { "slide_type": "slide" - } + }, + "tags": [] }, "source": [ "## Solution\n", @@ -571,7 +666,7 @@ "metadata": { "celltoolbar": "Slideshow", "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -585,7 +680,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.12.0" } }, "nbformat": 4, diff --git a/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).pdf b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).pdf new file mode 100644 index 0000000..70d96f1 Binary files /dev/null and b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).pdf differ diff --git a/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).slides.html b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).slides.html new file mode 100644 index 0000000..edbc5a3 --- /dev/null +++ b/Seminar_materials/seminar_03/Seminar 3 (Conditional probability).slides.html @@ -0,0 +1,8002 @@ + + + + + + + +Seminar 3 (Conditional probability) slides + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + diff --git a/Seminar_materials/seminar_04/Seminar 4 (Random variables).html b/Seminar_materials/seminar_04/Seminar 4 (Random variables).html new file mode 100644 index 0000000..d13d96a --- /dev/null +++ b/Seminar_materials/seminar_04/Seminar 4 (Random variables).html @@ -0,0 +1,7881 @@ + + + + + +Seminar 4 (Random variables) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ + diff --git a/Seminar_materials/seminar_04/Seminar 4 (Random variables).ipynb b/Seminar_materials/seminar_04/Seminar 4 (Random variables).ipynb new file mode 100755 index 0000000..d4e4b5f --- /dev/null +++ b/Seminar_materials/seminar_04/Seminar 4 (Random variables).ipynb @@ -0,0 +1,538 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a8f7b639", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "# Seminar 4" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "bb285517-7029-4885-b5bc-bba2b530f86d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "skip" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/33/j0cl7y453td68qb96j7bqcj4cf41kc/T/ipykernel_31083/3109700056.py:10: DeprecationWarning: `set_matplotlib_formats` is deprecated since IPython 7.23, directly use `matplotlib_inline.backend_inline.set_matplotlib_formats()`\n", + " dp.set_matplotlib_formats(\"retina\")\n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "import scipy.stats as sts\n", + "\n", + "import IPython.display as dp\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "dp.set_matplotlib_formats(\"retina\")\n", + "sns.set(style=\"whitegrid\", font_scale=1.5)\n", + "sns.despine()\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "id": "present-example", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Random variables\n", + "\n", + "A **random variable** is a function from sample space to the real numbers $X: S \\to \\mathbb{R}$.\n", + "\n", + "It means that for every outcome $\\omega \\in S$ there is a real number $X(\\omega)$.\n", + "\n", + "The function needs to be measureable, but this topic is slightly beyond the scope of our course. Normal functions that you encounter in maths are all measureable." + ] + }, + { + "cell_type": "markdown", + "id": "built-newton", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Distribution of a random variable\n", + "\n", + "Consider random variable $X: S \\to \\mathbb{R}$. The values it can attain are therefore real numbers. We introduce **the distribution** (or distribution law) $\\mathcal{L}$ of random variable $X$. Distribution takes values of the random variable and outputs their probabilities. It is not the same as probability function $P$, because probability function works with events from sample space and distribution works with values of random variables. We will write $X \\sim \\mathcal{L}$." + ] + }, + { + "cell_type": "markdown", + "id": "elementary-hospital", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Two types of distributions\n", + "\n", + "A probability distribution can be **discrete** or **continuous**.\n", + "\n", + "Discrete random variables can only take countably many values (like integers), continuous random variables can take uncountably many values (like reals).\n", + "\n", + "There is also a third type of distributions, which you never encounter in practice; it's possible for a distribution to be a mix of several types, which you also do not normally encounter." + ] + }, + { + "cell_type": "markdown", + "id": "fabulous-hamilton", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 1\n", + "\n", + "Consider event $A$ and a random variable $X = \\mathbb{I}\\text{nd}_A$, an indicator:\n", + "$$\n", + "\\mathbb{I}\\text{nd}_A(x) = \\begin{cases}\n", + "1, x \\in A, \\\\\n", + "0, \\text{else}\n", + "\\end{cases}\n", + "$$\n", + "\n", + "$$\n", + "\\mathbb{P}(X = 1) = \\mathbb{P}(A) = p\n", + "$$\n", + "\n", + "$$\n", + "\\mathbb{P}(X = 0) = 1 - \\mathbb{P}(A) = 1 - p\n", + "$$\n", + "\n", + "We say that $X$ follows **Bernoulli distribution** with parameter $p$ and write $X \\sim Be(p)$.\n", + "\n", + "We will call $p_X(x) = \\mathbb{P}_X(X=x)$ a **probability mass function** (PMF)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f21c428d-30d6-42d7-bc1c-9f2ab0fc9f28", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABGIAAAOGCAYAAACnQTaFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAB7CAAAewgFu0HU+AACgsUlEQVR4nOzde5hWZbk/8HsYZjifBAEVDEVEURFQwdSfJzxE7hRJwNBMd7p1U0aldkSj1LHSUjttbKeZRZQEsss8pqSmhOQJ8TAJiSAggiMwAw7MDPP7w4s31rwDzOldA8Pnc11edj/v+6x1g0u2893reZ686urq6gAAAAAg51o1dwMAAAAAewpBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApEQQAwAAAJASQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApad3cDQAA7G7Wr18fzz33XCxdujQ2bNgQbdq0iU6dOkWfPn2if//+0atXr+ZusUX5whe+EA8//HBERFx22WVx9dVXN3NHu4dbb701pk6dGhERp512Wvz0pz9t5o4AiIjIq66urm7uJgCgqb399tsxcuTIBs1t3bp1FBQURLt27aJbt26x7777xpFHHhnHHntsDBkyJAoKCup8rVNPPTWWL19e62c33nhjnHfeeQ3qsTbz5s2Liy66qNbP7rnnnhgxYsR25+6oz6aws/vvLj744IO46aabYtasWVFRUVHrd8aMGRM33XRTg+/x4x//OH7yk5/Ue15BQUG0bds2unfvHvvuu28cfvjhcdxxx8WIESOiVavd9yXoP/7xj3HNNddERMRee+0Vjz76aHTs2LFOc6uqqmLOnDnx2GOPxYIFC2L16tVRVlYW7dq1i/322y+OPPLIOOOMM+KEE06IvLy8XP4ydvjvZ2Ptt99+8fjjj2eNl5WVxRlnnBHvvfdeRER873vfi9GjR+ekBwDqbvf9v8oAkCOVlZXxwQcfRElJSSxevDieeuqp+MlPfhIXXnhhnHrqqTFt2rTYvHlzo+/z0EMPNUG3//bnP/+5Sa9HUmlpaVxyySXx+9//frshTETEIYcckmJX/1ZRURGlpaWxZMmSeOaZZ+LnP/95XHzxxXHaaafF7Nmzm6Wnxlq1alVcf/31mfrzn/98nUOYp59+Os4888z43Oc+F7NmzYpFixbFunXroqqqKsrKyqK4uDjuvffeuPTSS2P06NHx4osv5uhX0Xw6duwYn//85zP1DTfcEO+8804zdgRAhCAGAOrl3Xffje985ztx0UUXxdq1axt1rb///e+xbt26JumrsrIyHnnkkSa5FrX70Y9+FC+88MJOv9dcQcz2LF++PL761a/GF77whSYJENP07W9/O9avXx8REf369Yvx48fXad7Pf/7z+M///M9YtmxZnb7/+uuvx4UXXhgzZsxocK+7qnHjxkW/fv0i4sMwccqUKc3aDwCCGABokBdeeCEuuOCC2LBhQ4OvUVFREX/5y1+apJ9nnnkm3n///Sa5FtlKSkpi+vTpibHWrVvHJZdcEnfffXfMnj07pk+fHrfcckscdthhzdTljj388MO71d4qTz31VDz22GOZetKkSdG69c63N7z77rvjBz/4QdZ4+/btY+jQoXHyySfHIYcckrVcq6KiIq699tp44IEHGt98yna07K9169bxxS9+MVPPmTMnnnjiiRS6AmB7bNYLwB7j3HPPje9+97s7/d6WLVuisrIyysrK4t13343nnnsu7rnnnliyZEnie4sWLYpbb701Jk+e3OCeHnzwwfjkJz/Z4PlbNfUPj9vbc2JP9fzzz2ctR7r66qvjkksuSYwNGzYsJ/ff0R471dXVUVFREZs3b45169bFypUrY+HChTF9+vSsZ/bhhx+OGTNmxNixY3PSZ1OpqKiIG2+8MVMPHDgwRo0atdN5L774Ytx8882JsbZt28aXvvSlGDduXLRv3z4zvnz58vjpT38aM2fOzIxVV1fH5MmTY8iQIbHvvvs2wa/k30aMGBHFxcWNusaCBQviggsuSLzZdNRRR8W3v/3tHc772Mc+FgcffHD885//jIiIoqKi+OhHPxqFhYWN6geAhvFGDADU0KpVqygsLIy99torDjnkkLjgggviT3/6U5xzzjlZ3502bVq8/vrrdb52ly5dEnVTLE/avHlzk71ZQ+1WrFiRNbarbHqal5cXhYWF0bFjx9hvv/3i6KOPjosvvjgeeOCBrKAoIuL222/f5Zco/e53v4s333wzU0+cOHGnm+lWV1fH9ddfH5WVlZmxtm3bxq9+9au4+OKLEyFMxIdhY1FRUVx33XWJ8Q0bNjRos+Rce++99+LKK69M/LPr3bt3/OQnP9lpoJKXlxcTJ07M1EuWLInf/va3OesVgB0TxABAHRQWFsZNN90URx99dGJ8y5YtMW3atDpf59hjj01sNtoUy5OefPLJKC0tzdRHHnlko65HtppL0Lp27RrdunVrpm7qJj8/P7761a/GCSeckBhfvXp1/PWvf22epupg8+bN8fOf/zxT9+nTJ84444ydzvvLX/4SCxcuTIxde+21MWTIkB3Ou+CCC7ICq9mzZyeCoOZWXV0dX/nKVxIb7ebn58cPfvCD2Guvvep0jTPPPDP69OmTqX/xi1/Epk2bmrxXAHZOEAMAdbT1B9ua5syZU+drFBYWxqmnnpoYa+zpSTVPSzrrrLMadT2yVVVVJeqab1fsqvLy8uLSSy/NGp83b14zdFM3M2bMiHfffTdTn3vuuXU6frvmHj4HHnhgnZf9ffGLX4wePXpk6qqqqrj33nvr2HHu/eY3v4m//e1vibGJEydmBcM70qpVqzj33HMz9erVq3epXyPAnkQQAwD1MHjw4MT/Vzniwx9oVq1aVedrfPzjH0/Uc+fObfDypI0bNyaCoIMPPjgGDBjQoGuxfdXV1Yl6Z8tkdiVHHXVUVpDx9ttvN1M3O1ZVVRW/+MUvMnVeXl4iPNiekpKSeOaZZxJjY8eOrfM/p7Zt22YtNXv44YfrNDfX3nrrrbjlllsSY4MGDYorrrii3tc699xzE78nv/jFL7JCRgByz2a9AFBPAwcOzPpBdtWqVdGrV686zT/++OOjc+fOmWN5ty5PasimvX/961/jgw8+yNR7+tswmzdvjpdffjmWLl0a77//flRWVsZee+0Ve++9dwwdOjQ6d+7c3C2mbut+R2vWrMmMbbuPSn1VVFTESy+9FCtWrIj33nsvKisro0ePHtGrV68YOnRotGvXrsHXfvLJJxP78YwYMSL222+/nc575plnssKymm+e7cwpp5ySCIGWL18eCxcujMMPP7xe12lq3/72t6O8vDxTt27dOoqKiup0glRN++23Xxx77LExd+7ciIh45513Ys6cOXHaaac1Wb8A7JwgBgDqqbYfNOvz/1UuLCyM0047LWbNmpUZe+ihhxoUxNS2LGnZsmX1vs7u7oUXXoi77rornnrqqUQwta38/PwYMmRInH/++fGJT3xih29LzJo1K77+9a9v9/Ply5fHwIEDE2O76klTVVVVsXbt2sTYPvvsU+/rLFy4MH7+85/H3/72t+0e296mTZsYMWJEXHrppTs8Unl7ai6VqcveMBERzz33XKLu3r179OvXr173Hjx4cBQUFCROx3r22WebNYh54IEH4umnn06MfeYzn4lDDz20wdc888wzM0FMxIdLwQQxAOmyNAkA6qm2ZUR13TBzq5pH8TZkeVJZWVk8+eSTmXrw4MHRt2/fel1jd1dSUhITJ06M888/Px555JHthjARHwYSzz33XFxzzTVxzjnnxCuvvJJip83nlVdeyXoD5phjjqnz/NLS0rjqqqvivPPOi4cffni7IUxExKZNm+LJJ5+Miy66KK644oooKSmp831Wr14dTzzxRGKs5kbD27No0aJEXTMkq4vCwsKs8KY5n5FNmzbF97///cTY3nvvnTj9qCGOP/74RP3UU0/Va2klAI0niAGAeqiurs764ax169bRs2fPel3nuOOOi65du2bqioqKeOyxx+p1jUcffTRxlO2etizpn//8Z5x99tn1/n2LiCguLo4LLrggHnnkkRx0tmu54447EnXXrl3r/AbEypUrY8KECXH//fdnLf3ZmTlz5sT5558fS5YsqdP3H3/88cSbZX369ImPfOQjdZq7ePHiRH3AAQfUuc9t1Qwy33rrrQZdpyn86le/ipUrVybGrrrqqsSpaw2x//77J/a5qqqqatC/QwA0nKVJAFAPTz75ZNb/l3/w4MH13hejdevWcfrpp8eMGTMyYw8++GCMGTOmztfYdllSq1atst6yaclWrlwZl112WaxevToxnp+fH6eddlqceuqp0adPnygsLIx33nknnn766XjggQcy+/JERHzwwQcxadKk+MUvfpH1lsB+++0XZ555ZqZetGhR4of9du3axYknnpiYU9+3onKtqqoqvve972Udj/6FL3whOnTosNP5paWl8elPfzprqVvbtm3jP/7jP+K4446LfffdN/Lz82PVqlUxd+7c+POf/5xYBvXWW2/FJZdcErNnz44uXbrs8H41Tx+r+c9keyorK7P+nazrfk017b333ol62/1q0rR27drEEd4REYceemjWhsINdfzxx8fvf//7TP3Xv/41JkyY0CTXBmDnBDEAUEelpaXxve99L2u8ofsrfPzjH08EMVuXJ+3sB9aIiPfffz+xz8PRRx/d4B8+dzdbtmyJiRMnxjvvvJMYP+SQQ+L73/9+1rKUwYMHxxlnnBGTJk2K73znO/Hggw8mrnXVVVfFfffdl9g3ZcSIEYk9Tn784x/HT37yk0y91157xY9+9KOm/qU12JYtW6KioiLWr18fK1eujPnz58e0adNi+fLlie994hOfiAsuuKBO1/zmN7+ZFcKccsopccMNNySOet7q9NNPj0mTJkVRUVHMnj07M75ixYr42te+Fv/zP/+z3XtVVlbG3//+98TY4MGD69Tne++9l/W2TkNDse7duyfqhp5m1lh33313lJaWJsYmTZrUZKd1HXHEEYkg5u9//3tUVFREQUFBk1wfgB0TxABAHbz11ltx9dVXZy2B6Nq1a5x//vkNuuaIESOie/fu8d5770XEv5cn1eWtmIcffjix70dTL0uqbTPa+ho5cmT87Gc/a6KO/u3Pf/5zvPrqq4mxwYMHx1133RWdOnXa7ry99torbr311ujcuXPih9D3338/br311qz9OHYlF110UaPm5+XlxSWXXBJXX311nb4/Z86crOObzz333Ljpppt2GAZ06dIlvve970Xnzp3jnnvuyYw//vjj8be//W27e7688cYbWfv7HHbYYXXqteZGxBHR4OU7Nd8UqqysjLKyskYvB6qPsrKymDZtWmJsyJAhccoppzTZPWpuQLxp06YoLi5u9hOiAPYU9ogBgBo2b94c77//frz22mtx3333xRe+8IU466yzYsGCBVnfveqqq+q0zKM2+fn5WafCPPTQQ3Wau+2ypIKCgsQympZsy5YtiTdTIj784fmHP/zhDkOYrfLy8uLaa6+NQYMGJcb//Oc/Z7090lIUFBTErbfeGl/96lcjPz+/TnPuuuuuRN2vX7+4/vrr6/xGxle/+tWsk31qXnNbNf/dysvLiwMPPLBO99p2n6StGnqEdm3zNm3a1KBrNdS0adMSS+giIj73uc816T369+8frVolfwyo7c83AHLDGzEA7DHuu+++uO+++5rseqNHj45x48Y16hqjRo2K6dOnZ+pnnnkm1q9fH507d97unHfffTf+8Y9/ZOqPfvSj0a1bt0b1sbt47bXXsjZ/nTBhQr1OiyooKIirrroqPvvZz2bGKisrY9asWXHllVc2Vau7jIqKivjyl78cf/rTn+Kqq66K/v377/D7ixcvjmeffTYxdtlll9Vr2Urr1q3jP//zP+Oaa67JjD399NOxcuXKWo/OfuONNxJ17969o02bNnW6V21BTF0Dp5pqhhMRkXXiVC5VVVXFb3/728TYgAEDsvYjaqzCwsLo3bt3Yg+cf/7zn016DwC2zxsxANAA5513Xtxwww2Nvs4xxxyT2CC0oqIia3PVmh566KHYsmVLpt6TTkuquY9IRMTYsWPrfZ3jjz8+cXJMRGSFDy3Jli1b4rHHHotzzz13p2HkvHnzssYasizm5JNPzgpEtg0Qt/X2228n6v3226/O99n234WtGhrE1DavtuvnymOPPZa199FnPvOZnNyr5vPfXBsTA+yJvBEDAPVw1FFHxcSJE7e710V9tWrVKj72sY/Fr3/968zYQw89tMN9Yh544IHM/27Tpk2DNwvekf322y8ef/zxJr9uY82fPz9R9+7du85HHG8rLy8vhg8fnggAXnrppV12w9J77rknsXlwbTZv3hwbNmyI9957LxYvXhzz5s2L++67LzZu3Jj5zqZNm+JrX/ta5OXlbfcEnueeey5Rd+zYMWsT27ro3Llz7LfffrF06dLM2PPPPx+f+MQnsr5bc1lYfe7XunX2f8429C2WioqKrLHCwsIGXashfve73yXqbt26xTnnnJOTe9Xc0LilLs0D2BUJYgCghvz8/GjTpk107do1evXqFQcccEAMHjw4TjjhhHotgamrmkHMjpYnLV++PF588cVMffLJJ6e6kWhzW7lyZaKuuddLfRx++OExa9asTL1p06YoKSnZbU+fKiwsjMLCwujWrVscdNBBceaZZ8bnPve5uP766xMnRUVEfOtb34qjjjqq1ud50aJFibqysjK+8IUvNKinmif/1HzzZav3338/UddnqV1tQUltgUpd1BbgpBXEvPvuu4mT0CI+POUqV/evGcTUPAIcgNwRxACwxzj33HPju9/9bnO3keWoo46K3r17Z5YkbF2eVNtbMQ888EDiqN49aVlSRPYJOdsu66qv2o44Xrt27W4bxNSme/fu8YMf/CDKy8tjzpw5mfHy8vK49dZb44c//GHWnJpHNpeXl2edoNRQ2zsOuuaJSfXZbLe2TZq3fQuoPjZs2JA11rZt2wZdq74eeOCBrGVQn/zkJ3N2v5q/rvLy8pzdC4Ake8QAQDPLy8uLj33sY4mx7Z2etO2ypA4dOsTJJ5+c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N0EMAOxiDj744DjooIMS+8JsVfNtmT1Vnz594pe//GX893//d+IH2crKynj44YcTP9BvT+vWrePb3/52nHPOOblsdZcybNiw+OlPfxpdu3bd6Xf79u1b6+/xli1b4tFHH41HH320TvccM2ZMXH311Tv93mmnnZb45zZv3rzYsmVLvfZD6tChQ9x1111x0UUXJd5yWbt2bdx1111x11137XD+YYcdFt///vdTOz1r1apVsWXLlsRYrjcIrq6ujr///e+JsdNOOy2n9wQgydIkANgF1dy0N+LDvSNa4j4mDXX44YfHH/7whzj++OPrPffggw+O3/72t3HeeefloLNdz4ABA+J73/te/Pa3v63XD/pbf49POOGEet+zXbt28ZWvfCVuuummyM/P3+n3R44cGW3bts3Ua9eujVdeeaXe9+3Tp0/cc889tZ4ItSOnnnpq/OpXv4ouXbrU+54NVdu+Rtv+HuTCa6+9Fu+//37ifiNHjszpPQFI8kYMAOyCPv7xj8ePf/zjrDGSevXqFXfddVf8/e9/j1/+8pcxb968rKUmW+Xn58dRRx0V559/fnzsYx+rUziwO8nLy4uCgoLo1KlT7L333rH//vvH4YcfHieddFIccsghDb5ur1694s4774z58+fHL3/5y5g7d+4ON+3t3r17nHPOOXHhhRfGfvvtV+f7dOjQIU4++eTEUe1z5szJ2g+oLvr06RPTp0+PWbNmxbRp03YY6AwdOjQuvvji7Z7olEu1/T4WFhbm9J6PP/54oj7llFOiQ4cOOb0nAEl51TW3TAcA2E1t3rw5XnjhhVi5cmWUlJTE5s2bo1OnTvGRj3wkDj/88DotyWHHKioqYsGCBbFixYooKSmJjRs3RocOHWKvvfaKQw89NA488MAGL+3529/+Fp/97Gcz9QEHHJAIZhpqxYoVsXDhwli9enWsX78+OnToEL17944hQ4ZEz549G3393clZZ52VWPZ41113NeitMgAaThADAMAuobq6Os4666zESUKzZ8+OQw89tBm7ajlef/31xJ5IBx10UPz5z39uxo4A9kz2iAEAYJeQl5eXdULUzJkzm6mblmfWrFmJuilP4wKg7rwRAwDALqO8vDxOP/30zElNnTp1iieffDLat2/fzJ3t3j744IM48cQTM8eR9+zZM/7yl79EmzZtmrkzgD2PN2IAANhltG3bNq644opMXVpaGn/84x+bsaOW4U9/+lMmhImIuOKKK4QwAM1EEAMAwC5l7NixiROX7r777tiyZUszdrR727JlS9x9992Zer/99ouxY8c2X0MAezhBDAAAu5TCwsK45pprMvWbb75pU9lGePDBBxMbIF9zzTU5PyYbgO0TxAAAsMsZNWpUnHDCCZn6f/7nf7wV0wBbtmyJn/3sZ5n6hBNOiFGjRjVjRwAIYgAA2CVdd9110bZt24iIWLx4ccyePbt5G9oN/fGPf4xFixZFxIf771x77bXN3BEAghgAAHZJH/nIR+JrX/tapv7hD38YGzZsaMaOdi8bN26MH/zgB5n6q1/9avTr16/5GgIgIgQxAADswj71qU/FaaedFhERq1evjjvuuKOZO9p9/PznP88cA37KKafEhAkTmrkjACIi8qqrq6ubuwkAAACAPYE3YgAAAABSIogBAAAASEnr5m6A+tm8eXOsXbs2U7dp0yby8/ObryEAAABogaqqqmLTpk2ZumvXrlFYWNjo6wpidjNr166NZcuWNXcbAAAAsMfp2bNno69haRIAAABASgQxAAAAACmxNGk306ZNm0Tdt2/faN++fTN1U3eLFi2KqqqqyM/Pj4MOOqi524FG80zTknieaUk8z7Q0nmlakt3ted64cWNia5CaP483lCBmN1NzY9727dtHx44dm6mbumvVqlVUVVVFq1atdot+YWc807QknmdaEs8zLY1nmpZkd3+em+qgHEuTAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABISevmuOnixYtj5syZMX/+/Fi2bFmUlpZGmzZtok+fPjFs2LA4++yzY9iwYTm599e+9rW47777mvSa5557bnz3u99t0msCAAAALU+qQUxZWVkUFRXFrFmzorq6OvFZZWVlFBcXR3FxcUyfPj1OP/30uPHGG6NLly5ptggAAACQM6ktTSopKYkJEybEzJkzs0KY2jz66KNxzjnnxJIlS3LfXCMVFhY2dwsAAADAbiCVN2IqKytj4sSJUVxcnBgfMGBAnHzyydGjR49Ys2ZNzJkzJxYtWpT5fOXKlTFx4sS49957o2PHjk3Sy+jRo+PII49s8Pw777wzli1blqn33nvv+NznPtcUrQEAAAAtXCpBzNSpU+OFF17I1AUFBXHdddfFuHHjEt+7+uqrY8aMGXH99dfHpk2bIuLD/WSKioqiqKioSXo59thj49hjj23Q3BkzZiRCmIKCgvjZz34WvXr1apLeAAAAgJYt50uT1qxZE3feeWdi7IYbbsgKYbYaO3Zs3HLLLZGXl5cZmz17drz11ls57XNn3njjjbj++usTY1dddVUMHjy4mToCAAAAdjc5D2KmT58eGzduzNQnnnhijB49eodzzjjjjLjwwgszdVVVVdxxxx25anGnKisr42tf+1rmLZ2IiOOOOy4uvvjiZusJAAAAdhcbyyvi3bWb4+01m+PdtZtjY3lFc7fUbHK+NKnmUdGXXHJJneZddtll8dvf/jaqqqoiIuKRRx6Jb3/721FQUNDkPe7MnXfeGQsXLszU7du3jxtvvDHx1g4AAADwb9XV1fHy4jXx56ffjL8vfCe2bPn3wT0//tOK+Ojh+8THj+8XR/TvsUf9fJ3TIOaNN96I5cuXZ+quXbvGiBEj6jS3V69eMWTIkHjuueciIqK0tDTmzp0bJ554Yk563Z4VK1bEz372s8TYlVdeGfvuu2+qfQAAAMDuYtHba+PW6c/H0ndKa/18y5bqeHrBinh6wYrYv3en+NKnhsVBfbqm22QzyenSpHnz5iXqo446KvLz8+s8f/jw4Yn6ySefbJK+6uOmm26K8vLyTH3wwQfHZz7zmdT7AAAAgN3BC8Xvxtd/+rfthjA1LX2nNL7+07/FC8Xv5rizXUNOg5jXX389UQ8aNKhe82t+f9vlQWn4xz/+EY888khi7Gtf+1q9wiQAAADYUyx6e20U3f1slG+uqte88s1VUXT3s7Ho7bW5aWwXktMgZvHixYn6wAMPrNf8/fffP1G/+eabje6pPn7wgx8k6hNPPDGOP/74VHsAAACA3UF1dXXcOv35eocwW5Vvrorbpj8f1dXVO//ybiynQcyKFSsSda9eveo1v2fPnol67dq1sWHDhkb3VRdPPPFEPP/885k6Ly8vrr766lTuDQAAALublxevqfNypO15653SWLj4vSbqaNeU0yCmpKQkUffo0aNe87t16xatWiVbfP/99xvdV11MnTo1UZ9xxhkxcODAVO4NAAAAu5sHnl7SJNf58zPproZJW86CmA0bNsTmzZsTYx07dqzXNfLy8qJdu3aJsfXr1ze6t5157rnnst6GmThxYs7vCwAAALujjeUVMXfhyia51tyXV8bG8oomudauKGfHV2/atClrrGaoUhft27dPLEfa9gSjXLnrrrsS9UknnRSHHHJIzu/bEIsWLcp6a2hXVFFRkfn7ggULmrkbaDzPNC2J55mWxPNMS+OZZnfx7trNsWVL0+ztsmVLdTzz7EvRs2thk1yv4X1sycl1cxbEbP0DI3Gz1vW/Xc0TiiorKxvcU12sWrUq5syZkxj79Kc/ndN7NkZVVVVUVTVsI6TmUtuzAbszzzQtieeZlsTzTEvjmWZXtuGDpn0+N3xQERUd8pr0mruKnAUxtYUDDXlzo+acXCVSW82YMSPRe//+/Xfpk5Ly8/N3qzdiIiIKCgqasRNoGp5pWhLPMy2J55mWxjPN7qJDu6Y96ahDu4Jmf+a3bNmSkxcfchbE1Pb2S1VVVb3fiqmZ+ub6H8R9992XqMePHx95ebtuCnfQQQfVe++d5rBgwYKoqKiIgoKCGDx4cHO3A43mmaYl8TzTknieaWk80+wuNpZXxI//tKJJliflt8qL44YfGe3bNm8QU1ZWFsXFxU1+3Zy9SlFYmL2WqyGv0tVcilTbdZvKggUL4u23387UrVu3jk984hM5ux8AAAC0BO3bFsRHD9+nSa517BH7NHsIk0s5C2I6deqU9SbJtpvu1lXNOR06dGhUXzvy4IMPJur/9//+X+y11145ux8AAAC0FB8/vl+TXOes4w5okuvsqnIWxOTn50fnzp0TY/U9erq8vDzrCOzu3bs3urft+ctf/pKozzrrrJzdCwAAAFqSI/r3iP17d2rUNT7Su1Mc3j93P/fvCnK6y2vv3r0T9Zo1a+o1f/Xq1Ym6sLAwunTp0ui+arN06dJYunRppm7dunWcdNJJObkXAAAAtDR5eXnxpU8Ni7aF+Tv/ci3aFubHFz81bJfep7Up5DSI6du3b6Ledv+Vuqj5/X79+jW2pe166qmnEvVRRx2V9UYPAAAAsH0H9eka37h4eL3DmLaF+fGNi4fHQX265qaxXUhOg5iBAwcm6sWLF9dr/r/+9a9E3b9//0b3tD3z5s1L1N6GAQAAgPobOrBn3PS5E+q8TOkjvTvFTZ87IYYO7JnjznYNOTu+OiKyjldbsGBBvea/+OKLiXro0KGNbanO9zrmmGNydi8AAABoyQ7q0zV+cvUpsXDxezH7iUXx7KurEp/nt8qLY4/YJ8467oA4vH/3Fr8caVs5DWKOOeaYKCgoyBxb/dJLL8W6devqtM9LVVVVPP3004mx4447Lid9rly5Mlat+vdD0a5duxg0aFBO7gUAAAB7gry8vDjioA838L3wWw8lPvufr46MfXrk7lTkXVlOlyZ16NAhTjjhhExdWVkZs2bNqtPcxx57LN57771MPWDAgBgwYECT9xgR8eqrrybqAw88MFq3zmlGBQAAAHus9m333J+5cxrEREScd955iXrq1KmxYsWKHc5Zv3593HzzzYmxcePGNXlvW/3zn/9M1AcddFDO7gUAAADsuXIexIwcOTIOOeSQTL127dq44oortnuU9YYNG2LSpEmJo6T32WefGD9+/HbvMWvWrBg4cGDir5qb7+5IzU2E+/TpU+e5AAAAAHWV8yAmLy8vpkyZEq1a/ftWxcXFMXr06JgxY0aUlZVFRMSmTZvioYceivPOOy+eeeaZxDWuvfbaaNOmTc56rPmGTo8ePXJ2LwAAAGDPlcqirKFDh8aUKVPiuuuuy4ytXr06Jk+eHJMnT45OnTpFWVlZVFdXZ829/PLLY+TIkTnt75133knU3bt3z+n9AAAAgD1TarvjbF1aVFRUFOXl5YnPSktLs77fqlWrmDhxYlx55ZU57239+vWJum3btjm/JwAAALDnyfnSpG2NHz8+7r///hg1atQOw47jjz8+pk2blkoIExHxwQcfJOrCwsJU7gsAAADsWVI/L6pv375x2223xcaNG2P+/PmxatWqKCkpibZt28a+++4bw4YNq/ceLWPGjIkxY8Y0uKdXXnmlwXMBAAAA6qrZDu5u3759nHTSSc11ewAAAIDUpbo0CQAAAGBPJogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJS0bo6bLl68OGbOnBnz58+PZcuWRWlpabRp0yb69OkTw4YNi7PPPjuGDRuWel+LFi2Khx56KP72t7/Fu+++G6tXr442bdpE9+7dY+jQoXHaaafFyJEjIy8vL/XeAAAAgN1fqkFMWVlZFBUVxaxZs6K6ujrxWWVlZRQXF0dxcXFMnz49Tj/99LjxxhujS5cuOe9r9erVceONN8aDDz6Y9dnmzZujtLQ0lixZEvfdd18MGDAgvve978Vhhx2W874AAACAliW1pUklJSUxYcKEmDlzZlYIU5tHH300zjnnnFiyZElO+1qwYEGcddZZtYYwtXnjjTfi/PPPj8cffzynfQEAAAAtTypvxFRWVsbEiROjuLg4MT5gwIA4+eSTo0ePHrFmzZqYM2dOLFq0KPP5ypUrY+LEiXHvvfdGx44dm7yvV199NT772c/G+vXrE+NHH310HHvssdGlS5dYs2ZNPPHEE/H6669nPt+8eXN86Utfit/97ndx6KGHNnlfAAAAQMuUShAzderUeOGFFzJ1QUFBXHfddTFu3LjE966++uqYMWNGXH/99bFp06aI+HA/maKioigqKmrSnsrKyuLzn/98IoTp2bNn/OAHP4jhw4cnvvvlL385Zs+eHdddd12mr/Ly8vjWt74Vv//97+0ZAwAAANRJzpcmrVmzJu68887E2A033JAVwmw1duzYuOWWWxLhxuzZs+Ott95q0r5++tOfxvLlyzN1r1694ve//31WCLPV6NGj40c/+lFi7KWXXop58+Y1aV8AAABAy5XzIGb69OmxcePGTH3iiSfG6NGjdzjnjDPOiAsvvDBTV1VVxR133NFkPZWUlMRvf/vbTN2qVau4/fbbY999993hvJNPPjlOOumkxNif/vSnJusLAAAAaNlyHsTcd999ifqSSy6p07zLLrss8vPzM/UjjzwSFRUVTdLT7Nmzo7y8PFOfe+65MXTo0DrNPe+88xL1iy++2CQ9AQAAAC1fTveIeeONNxLLf7p27RojRoyo09xevXrFkCFD4rnnnouIiNLS0pg7d26ceOKJje7rgQceSNSXXXZZned+9KMfjVNOOSX22muv2GuvvaJHjx6N7gcAAADYM+Q0iKm5f8pRRx2VeMtlZ4YPH54JYiIinnzyyUYHMSUlJbFw4cJMfdhhh8UBBxxQ5/mdOnWKqVOnNqoHAAAAYM+U06VJ2x75HBExaNCges2v+f1tA5SGevHFF6O6ujpTH3fccY2+JgAAAEBd5DSIWbx4caI+8MAD6zV///33T9Rvvvlmo3t69dVXE3V9wyEAAACAhsrp0qQVK1Yk6l69etVrfs+ePRP12rVrY8OGDdGhQ4cG97RkyZJE3adPn8z/3rx5czzyyCPxyCOPxMKFC2P16tVRWFgYe++9dxx11FExatSoOOGEExp8bwAAAGDPltMgpqSkJFHXd2Pbbt26RatWrWLLli2Zsffff79RQczbb7+dqLeGQ3/5y1/ihhtuiJUrVyY+37x5c5SVlcWbb74Zf/jDH2L48OHx7W9/u95v9wAAAADkbGnShg0bYvPmzYmxjh071usaeXl50a5du8TY+vXrG9XX+++/n9XTT37yk/jc5z6XFcLU5tlnn43zzz8//vGPfzSqDwAAAGDPk7M3YjZt2pQ1VjNUqYv27dvHhg0bMnV5eXmj+lq7dm2injFjRvz4xz/O1J06dYpTTjklBgwYEAUFBbFs2bKYM2dOYpnVunXr4tJLL40ZM2bEgAEDGtVPYy1atChatcrpVj9NoqKiIvP3BQsWNHM30HieaVoSzzMtieeZlsYzTUuwobwqa+zVV1+NDm3rfqpyc9h2dU5TylkQs/UPjMTNWtf/djWPu66srGxwTxERH3zwQaK+5ZZbMv977Nix8ZWvfCU6d+6c+M43vvGNuPvuu+OHP/xhVFVVZa4zadKkmD17dhQWFjaqp8aoqqrK9LS7qO3ZgN2ZZ5qWxPNMS+J5pqXxTLO7qqjI/pm1oqIiKvJzE3Ts6nIWxNQWDjTkzY2acxqbSNX8w2trfcUVV8SXvvSlWue0bt06Lr300ujdu3dcddVVmfHFixfHH/7wh5gwYUKjemqM/Pz83eqNmIiIgoKCZuwEmoZnmpbE80xL4nmmpfFM0xIUVGX/zFpQUBAFBbv+GzG5ePEhZ0FMbW+/VFVV1futmJrBSS7+8Bk+fHh88Ytf3On3/uM//iOefvrpmDVrVmbsrrvuatYg5qCDDqr33jvNYcGCBVFRUREFBQUxePDg5m4HGs0zTUvieaYl8TzT0nimaQnWlW2KiKWJsUGDBkWXjm2ap6E6Kisri+Li4ia/bs5epahtuU5DXqWruRSpscuAaguCJk2aFHl5eXWaf/nllye+u2zZsvjXv/7VqJ4AAACAPUPOgphOnTplhRvbbrpbVzXnNObo6ojsDYO7d+8eRx99dJ3n9+vXL/r3758Yc4ISAAAAUBc5C2Ly8/OzNr2t79HT5eXlWUdgd+/evVF9de3aNVEfdthh9b5GzTnbnqgEAAAAsD053eW1d+/eiXrNmjX1mr969epEXVhYGF26dGlUT3vvvXeirhnM1EW3bt0Sdc0jsQEAAABqk9Mgpm/fvon67bffrtf8mt/v169fY1vK6qm8vLze12jqk5wAAACAPUNOg5iBAwcm6sWLF9drfs1NcGvuzdIQBx98cKJ+9913632NmkusGvJWDQAAALDnyWkQU/N4tQULFtRr/osvvpiohw4d2tiW4sgjj0zUxcXF9X4rZtGiRYm6Kd7UAQAAAFq+nAYxxxxzTBQUFGTql156KdatW1enuVVVVfH0008nxo477rhG93TkkUdGp06dMvUHH3wQTz31VJ3nl5aWxquvvpoYGzJkSKP7AgAAAFq+nAYxHTp0iBNOOCFTV1ZWxqxZs+o097HHHov33nsvUw8YMCAGDBjQ6J5at24dZ5xxRmLsrrvuiurq6jrNnzlzZuIkpwMOOCAOPPDARvcFAAAAtHw5DWIiIs4777xEPXXq1J0e97x+/fq4+eabE2Pjxo1rsp4uvPDCyMvLy9TPP/98/OEPf9jpvHfeeSd++tOfJsbOP//8JusLAAAAaNlyHsSMHDkyDjnkkEy9du3auOKKK7Z7lPWGDRti0qRJsXTp0szYPvvsE+PHj9/uPWbNmhUDBw5M/DVv3rztfn/QoEFx1llnJca+/e1vx5/+9KftzlmzZk1cdtlliY16e/XqtcO+AAAAALaV8yAmLy8vpkyZkjjyubi4OEaPHh0zZsyIsrKyiIjYtGlTPPTQQ3HeeefFM888k7jGtddeG23atGnSviZPnhz77bdfpq6oqIhrrrkmvvrVr8bLL7+cOZJ63bp1MX369PjEJz4R//znP7N+Xe3atWvSvgAAAICWq3UaNxk6dGhMmTIlrrvuuszY6tWrY/LkyTF58uTo1KlTlJWV1bpPy+WXXx4jR45s8p66desWv/rVr+Izn/lMLF++PCIiqqurY/bs2TF79uxo06ZNtGnTJuuo6q0mTZoUp556apP3BQAAALRcOX8jZqvx48fHd77znWjbtm3WZ6WlpVkhTKtWreLzn/98fPnLX85ZT3379o1p06bFsccem/XZpk2bag1h2rRpE9/61rfiv//7v3PWFwAAANAypRbERHwYxtx///0xatSoWgOZrY4//viYNm1aXHnllTnvaZ999olf/epXccstt8SQIUMSm/huq02bNnH22WfHn/70p5gwYULO+wIAAABanlSWJm2rb9++cdttt8XGjRtj/vz5sWrVqigpKYm2bdvGvvvuG8OGDYsePXrU65pjxoyJMWPGNKqvT3ziE/GJT3wi3nnnnXj55Zfj3XffjfXr10fHjh3jgAMOiCFDhkTHjh0bdQ8AAABgz5Z6ELNV+/bt46STTmqu229X7969o3fv3s3dBgAAANACpbo0CQAAAGBPJogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIYAAAAgJQIYgAAAABSIogBAAAASIkgBgAAACAlghgAAACAlAhiAAAAAFIiiAEAAABIiSAGAAAAICWCGAAAAICUCGIAAAAAUiKIAQAAAEiJIAYAAAAgJYIY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Dm1sS3HBBRckNte99NJL45prrqnXNWr+Oup78hIAAACwZ8rpGzHHHHNMFBQUZOqXXnop1q1bV6e5VVVV8fTTTyfGjjvuuEb3NGDAgEQ9d+7ces1///334/nnn0+MHX300Y3uCwAAAGj5chrEdOjQIU444YRMXVlZGbNmzarT3MceeyyxBGjAgAFZIUpDfPSjH03Ur7zySrz22mt1nv+b3/wmsUdMz549myQgAgAAAFq+nAYxERHnnXdeop46dWqsWLFih3PWr18fN998c2Js3LhxTdLPaaedFu3bt0+MFRUVxZYtW3Y6d+HChXHHHXckxi688MJo3TqnK7wAAACAFiLnQczIkSPjkEMOydRr166NK664YrtHWW/YsCEmTZqU2ER3n332ifHjx2/3HrNmzYqBAwcm/po3b16t323fvn189rOfTYw9++yzce2110ZlZeV277FgwYL47Gc/GxUVFZmxfv36xcUXX7zdOQAAAADbynkQk5eXF1OmTIlWrf59q+Li4hg9enTMmDEjysrKIuLD04weeuihOO+88+KZZ55JXOPaa6+NNm3aNFlPl112WRx00EGJsT/84Q8xbty4ePTRR+ODDz6IiIjq6up4/fXX44YbbohPfepTsXbt2sz3CwsL43vf+16T9gUAAAC0bKmsqRk6dGhMmTIlrrvuuszY6tWrY/LkyTF58uTo1KlTlJWVRXV1ddbcyy+/PEaOHNmk/bRp0yZ+8YtfxPnnnx/vvPNOZvyVV16Jz3/+85GXlxedO3eODRs21PqWTEFBQdx8880xZMiQJu0LAAAAaNly/kbMVuPHj4/vfOc70bZt26zPSktLs0KYVq1axec///n48pe/nJN+9tlnn5gxY0YMHz4867Pq6upYt25drSFMr1694s4774yPfexjOekLAAAAaLlSC2IiPgxj7r///hg1alStgcxWxx9/fEybNi2uvPLKnPbTs2fP+NWvfhW33XZbHHnkkZGXl7fd7/bu3TsmTZoUDz74YIwYMSKnfQEAAAAtU+rH/fTt2zduu+222LhxY8yfPz9WrVoVJSUl0bZt29h3331j2LBh0aNHj3pdc8yYMTFmzJgG9dOqVasYNWpUjBo1KkpKSuL555+PVatWxfr166N169bRs2fPOOSQQ+Lggw/eYVADAAAAsDPNdu5y+/bt46STTmqu29dqr732itNO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HW+99VaT9XTPPffE6tWrM3XXrl3jnnvuqTWEiYgYMmRI3HXXXdG+ffvM2JtvvhkPPPBAk/UEAAAAtHw5D2KmT58eGzduzNQnnnhijB49eodzzjjjjLjwwgszdVVVVdxxxx1N0s+WLVvi97//fWLs85//fPTt23eH8w488MC44IILEmP3339/k/TU0m0sr4h3126Ot9dsjnfXbo6N5RXN3RIAAAA0i5wHMffdd1+ivuSSS+o077LLLov8/PxM/cgjj0RFReN/gH/ttdfi3XffzdTt2rWLc889t05zTz755ET98ssvN7qflqq6ujoWLFodN/3q2fjUtQ/G7f+3PH7xyLtx+/8tj09d+2B891fzY8Gi1XXauBkAAABaipxucPLGG2/E8uXLM3XXrl1jxIgRdZrbq1evGDJkSDz33HMREVFaWhpz586NE088sVE9lZaWxtChQ+ONN96IsrKyGDp0aJ03Au7evXuifv/99xvVS0u16O21cev052PpO6W1fr5lS3U8vWBFPL1gRezfu1N86VPD4qA+XdNtEgAAAJpBToOYbU8biog46qijEm+57Mzw4cMzQUxExJNPPtnoIObYY4+N3/3udxER8fbbb2c2Ba6LtWvXJupt94zhQy8UvxtFdz8b5Zurdv7liFj6Tml8/ad/i29cPDyGDuyZ4+4AAACgeeV0adLrr7+eqAcNGlSv+TW/v3Dhwkb3tK0+ffpE//796/z9uXPnJuqBAwc2aT+7u0Vvr61XCLNV+eaqKLr72Vj09trcNAYAAAC7iJwGMYsXL07UBx54YL3m77///on6zTffbHRPDbV69er41a9+lRj7+Mc/3kzd7Hqqq6vj1unP1zuE2ap8c1XcNv15e8YAAADQouU0iFmxYkWi7tWrV73m9+yZXKqydu3a2LBhQ6P7qq/XX389LrzwwsTSpP322y/Gjh2bei+7qpcXr9nunjB19dY7pbFw8XtN1BEAAADsenK6R0xJSUmi7tGjR73md+vWLVq1ahVbtmzJjL3//vvRoUOHJumvNlVVVbFly5Z47733YsGCBXH//ffHo48+muihU6dO8aMf/Sjatm2bsz52Nw88vaRJrvPnZ96MIw6q33MCAAAAu4ucBTEbNmyIzZs3J8bqejrRVnl5edGuXbvEWzDr169vkv6259Zbb43//d//3e7nAwYMiB/84Af2h9nG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jx6xZs2amDNnTixatCjz+cqVK2PixIlx7733RseOHZu0p7lz58Y111wTFRUVWT0dd9xxse+++0ZVVVUsW7YsnnzyyVi+fHnmO2vXro3//u//jt///vcxYMCAJu0LAAAAaLlSCWKmTp0aL7zwQqYuKCiI6667LsaNG5f43tVXXx0zZsyI66+/PjZt2hQRHy4dKioqiqKioibrZ+PGjVkhTNeuXePGG2+M0047Lev7VVVV8fvf/z5uuumm2Lx5c0REbNiwISZNmhR/+tOfIj8/v8l6AwAAAFqunC9NWrNmTdx5552JsRtuuCErhNlq7Nixccstt0ReXl5mbPbs2fHWW281WU+//OUvY/Xq1Zm6Q4cO8dvf/rbWECYiIj8/PyZMmBA//elPE6HL4sWLY9asWU3WFwAAANCy5TyImT59emzcuDFTn3jiiTF69OgdzjnjjDPiwgsvzNRVVVVxxx13NFlP9913X6K+6qqron///judd+KJJ8anPvWpHV4LAAAAYHtyHsTUDCouueSSOs277LLLEm+fPPLII1n7uTTE66+/HsuWLcvU7du3j09+8pN1nj9hwoRE/eKLL0ZZWVmj+wIAAABavpwGMW+88UZik9uuXbvGiBEj6jS3V69eMWTIkExdWloac+fObXRPr776aqIeMmRItG3bts7z+/fvHx06dMjUVVVVsXLlykb3BQAAALR8OQ1iah7xfNRRR9VrY9vhw4cn6ieffLLRPa1YsSJR9+nTp97XaN++faJet25do3oCAAAA9gw5PTXp9ddfT9SDBg2q1/ya31+4cGGje/r85z8f//Vf/xXvvPNOvPPOO9G5c+d6zS8vL4+SkpLEWH2vAQAAAOyZchrELF68OFEfeOCB9Zq///77J+o333yz0T1FRBQWFsb++++fdf26+Pvf/x5VVVWJsV69ejVJXwAAAEDLltOlSTWXAdU3sOjZs2eiXrt2bWzYsKHRfTXGtGnTEvVhhx0WXbp0aaZuAAAAgN1JToOYmkt4evToUa/53bp1i1atki2+//77je6roebOnZu1T82pp57aTN0AAAAAu5ucBTEbNmyIzZs3J8Y6duxYr2vk5eVFu3btEmPr169vdG8NsW7durj22msTY23atIlx48Y1Sz8AAADA7idne8Rs2rQpa6xmqFIX7du3TyxHKi8vb1RfDVFVVRVXXXVVLFu2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ZOjQoTFlypS47rrrMmOrV6+OyZMnx+TJk6NTp05RVlYW1dXVWXMvv/zyGDlyZBptAgAAAORUKkFMRGSWFhUVFUV5eXnis9LS0qzvt2rVKiZOnBhXXnllKv0BAAAA5FrOlyZta/z48XH//ffHqFGjom3bttv93vHHHx/Tpk0TwgAAAAAtSmpvxGzVt2/fuO2222Ljxo0xf/78WLVqVZSUlETbtm1j3333jWHDhkWPHj3qdc0xY8bEmDFjmrzXX//6101+TQAAAGDPlXoQs1X79u3jpJNOaq7bAwAAAKQu1aVJAAAAAHsyQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApEQQAwAAAJASQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApEQQAwAAAJASQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApEQQAwAAAJASQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApEQQAwAAAJASQQwAAABASgQxAAAAACkRxAAAAACkRBADAAAAkBJBDAAAAEBKBDEAAAAAKRHEAAAAAKREEAMAAACQEkEMAAAAQEoEMQAAAAApEcQAAAAApKR1c9x08eLFMXPmzJg/f34sW7YsSktLo02bNtGnT58YNmxYnH322TFs2LBUeyopKYlZs2bFM888E//85z9j7dq1kZ+fHz179ozDDz88zjzzzDj99NMjPz8/1b4AAACAliPVIKasrCyKiopi1qxZUV1dnfissrIyiouLo7i4OKZPnx6nn3563HjjjdGlS5ec9lRdXR2/+tWv4tZbb43y8vLEZxUVFbF06dJYunRpPPDAAzFgwID44Q9/GAcffHBOewIAAABaptSWJpWUlMSECRNi5syZWSFMbR599NE455xzYsmSJTnracuWLfHVr341brrp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374aPny4UlNTNXLkSI/EBP9g1pzOy8sztJ0pwkiXZy/a799VfWYNAkNpaamGDRumtLQ0h//+KSkp2rRpk89iuXjxovbt22drh4SEXHFZv73IyEj16dPH1q6oqNA//vEPT4foNgoxAcp+LfPNN9/s0iag9mun7Qso9fGvf/3L8AekadOmLp1+ZP8H0BMxwX+YMadPnz5taNdnk9KoqChD25WjVeG/zJjPtVm3bp1hSdKjjz6qNm3aePU14T/MmM95eXmGpdA33HCDOnTo4PT42NhYrVy5UgsXLtTMmTM1fvx4t2OC/zBjTkuXlyJV58osWvu9vTj0IvCUlpbqm2++MfSFh4drxowZWrt2rWFPTm/7/PPPZbVabe3ExEQ1b97c6fG+/hxUH7zDApT91MXrr7/epfH211f/MOOpmLp06eLS/gL2R0ceO3ZMJSUlLs1AgP8yY05PnjxZ//Ef/6GcnBzl5OQYpkk6o6SkxOHbLVfvAf9kxny+khMnThg200tJSdHdd9/ttdeD/zFjPh84cMCwl1yvXr3cvicChxlzWpJDMfHAgQMqLy+vs6hSWFiorKwsQ9/PfvYzj8QE/3XrrbcqLS1NP//5z33+2mZ9j3kSM2IClP0v2+r7qzijXbt2hvb333/v8Zhc+WZKujwttPpDqtVq1cmTJ92OC/7BjDktXf4moV27dkpJSXFphpd0eaf36t8GSJenNKPxM2s+26usrNTjjz9u22ejSZMmWrBgAZv0wsCM+Wy/dNTVD/kIbGbMaenyUb3Vv4DMz893aqP/tWvXGvapad26tcufWdB4dOnSRX/5y1+0du3aBinCSO4/F9q/x86ePauioiK34/IkCjEByn7JhKsPd/ZrTvPz891ObvuYEhISXL6H/b+H/T3ReJkxp921fv16Q/uGG25Qs2bNGiga+JK/5PO6dev0+eef29rTpk1z+PADmDGfjx8/bmhXXzpaVlamd999V4888oj69eunm266STfffLN+85vfaPbs2frkk0/cem34PzPmtHR5yZz9Rv8LFy40LB2198EHHzicKjNhwgSXllqhcYiIiNDatWuVmZmpfv36NWgs7j4XxsbGOizvN9tzIUuTApT9cocWLVq4NL558+YKDg5WRUWFre/8+fNOnXDkrZiq4qrtnmi8zJjT7ti1a5fDetaG/qMI3/GHfD558qRhSVJS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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 451, + "width": 561 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.stem([0, 1], [0.3, 0.7])\n", + "ax.set_title(\"PMF of Be(0.7)\");" + ] + }, + { + "cell_type": "markdown", + "id": "ignored-connection", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "skip" + }, + "tags": [] + }, + "source": [ + "## Bernoulli trial scheme\n", + "\n", + "Previously we have worked with independent events that were happening in one probability space. But sometimes we want to have multiple trials, where for every trial the probability space is known, but we are interested in the probability space covering all the trials at once. We can achieve it via direct product of probability spaces.\n", + "\n", + "If all probability spaces are the same and equal to:\n", + "- $S = \\{0, 1\\}$\n", + "- $\\mathbb{P}(1) = p$ and $\\mathbb{P}(0) = 1 - p$\n", + "\n", + "Then we call such experiment a **Bernoulli trial scheme**, and the probability space of it is:\n", + "- $S = \\{(i_1, \\ldots, i_n), i_j \\in \\{0, 1\\}\\}$\n", + "- $\\mathbb{P}(i_1, \\ldots, i_n) = p^{\\text{num} j \\text{ such that } i_j = 1} (1 - p)^{\\text{num} j \\text{ such that } i_j = 0}$" + ] + }, + { + "cell_type": "markdown", + "id": "31b15678-39ce-4730-8fa5-7a412f836aab", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Bernoulli trial scheme\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "statutory-league", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 2\n", + "\n", + "Consider $X_1, \\ldots, X_n \\sim Be(p)$ independent random variables. Then $Y = \\sum_{k=1}^n X_k$ follows **Binomial distribution** with parameters $n$ and $p$, $Y \\sim Bi(n, p)$. $\\mathbb{P}(Y = k) = ?$" + ] + }, + { + "cell_type": "markdown", + "id": "adaptive-clinton", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution 2\n", + "\n", + "If $Y \\sim Bi(n, p)$, then\n", + "$$\n", + "\\mathbb{P}(Y = k) = \\begin{pmatrix}n\\\\k\\end{pmatrix} p^k (1-p)^{n-k}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "2e76a96f-4543-418d-bca8-2c70c15a2ca2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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3nDUwODBg9WoUaMS25XWpE+wzJgxQwsWLHCqr1q1qjp16qSePXu6fMotJydH48aN088//xzQ8VmtVj3yyCP6+uuvnV6LiIhQYmKi+vTpo65duyouLs7pmr179+ree+91+6iHKlWq6IEHHrCXFy5cqKSkJO/fAAAAwP+PvFaxkNc8Q15zraznNUnKzs7W0aNHA34fibwGAAACg6xWsZDVPENWc+1qyGr+VtzR2mQ1wHscww2gQrrzzjv1wgsvlHhdYWGhCgoKlJWVpbNnz+qXX37RvHnzdPjwYcN1Bw8e1OzZszV16lSvx/TVV19p0KBBXre/ZMWKFT73caV69erpu+++82ufV7OtW7fKYrEY6p544gmNHj3aUNehQ4eA3H/evHlF/mJss9lksViUn5+v9PR0nTp1Srt379bChQudvrOrVq3S4sWLNWTIkICM85JZs2YpMzNTkhQeHq6HH37YrXb79u0zlIcMGaLp06f7fXzBsGrVKs2bN89QV7VqVU2ePFm33Xab4eiR5ORkvfzyy1qzZo29Lj8/XxMnTtRXX32lqKiogIzx3Xff1fr16w11VapU0V//+lcNHDhQERERhtd++OEHzZgxQ8nJyfa6Y8eOaerUqXrzzTfduufw4cP1/vvv6/z587JarZo+fbo+/vhj398MAAC46pDX3EdeMyKveYa85uxqyGuSlJSUZNgxJjw8XFu3blWlSoH5537yGgAAkMhqniCrGZHVPENWc1aWs9rAgQM1cOBAn/r45ptvNG7cONlsNntd//799cgjjxTbjqwGeIedJQGgGCEhIQoLC1NcXJxatWql4cOH68svv9Qdd9zhdO38+fOdfgktzqVtsS/xx3EB+fn5fnuKDq6dPHnSqW7AgAGlPxAXTCaTwsLCFB0drXr16qlTp04aNWqUVqxY4RQ4Jem1114r8ciARx99VElJSfb/PAn3+/bt0+eff24vDx48WLVr13ar7d69ew3la665xu37lmW5ubmaMWOGoS4uLk6LFy/WnXfeaQhzktSsWTPNnTtX999/v6H+zJkz+vDDDwMyxpSUFMMTi5JUs2ZN/fe//9WwYcOcFkpK0g033KD//ve/SkxMNNR/++23bj+pV7lyZf3lL3+xlzdv3uxyZ0sAAIBLyGtwRF4jr/niashrlzjuGNOyZcuALZSUyGsAAMAzZDU4IquR1Xxx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fvnlF/31r3811FWpUkX33nuvx3117NhRERER9iO9MzMztXHjRvXs2dMvYwUAAOUfea3sIK+5h7wWPFdbXivqeL0zZ87of//7nzZv3qz9+/crLS1NZrNZNWrUUIsWLdSzZ0/ddNNNio2N9en+5DUAAOALslrZQVZzD1kteK62rOauOXPmKCcnx1D3t7/9TaGhoT71S1YD3MdiSQDw0vr165Wammqoa9eunUdboku/h8CbbrpJixcvttd99dVXHgW6K48JCAkJcXqirjw7deqUxowZ4xTmQkND1a9fP/Xp00f169dXWFiYTp8+rR9//FErVqxQRkaG/dqLFy9qwoQJevfdd53CR7169QzbsB88eFDJycn2cuXKlXXjjTca2nj6BGSgWa1Wvfjii/rmm28M9ePHj1dUVJRf77V27VpDuXHjxoqPj3e7veOkT926dbVjxw7NmjXLKShKvz99de7cOf3666/6+OOP1bp1az355JPq1q2bV+MPlJSUFNlsNkOdt1vp16xZ0xDoHINiabLZbNqxY4cWLFigZcuWGY5KCQkJ0YwZM7z6+xAWFqZOnTrphx9+sNetXbuWQAcAANxGXisbyGslI68F39WW167sX/p9svbxxx/XV1995XR8ZV5enrKysnT48GF9/fXXevHFFzVmzBiNHj1aYWFhXt2fvAYAAHxBVisbyGolI6sF39WW1dzx22+/6bPPPjPU9e3bV126dPG5b7Ia4D4WSwKAFzIzM/Xiiy861Xv7JNGtt95qCHSXjguoWrVqiW0vXLigjRs32sudOnXy+hfFq01hYaHGjh2r06dPG+pbtWqll156yWkr9nbt2unmm2/WhAkT9Oyzz+qrr74y9PX444/r888/V926de31Xbp0MfyC+q9//Uuvv/66vRwXF6c5c+b4+615rbCwUBaLRRkZGTp16pS2bNmi+fPn68SJE4br/vznP2v48OF+v/+Vv4BL0nXXXedRe8dAd/bsWT344INut9+7d69Gjx6tRx99VI888ohH9w4kV09mVq9e3au+HNtduHDBq3689dlnn+mbb75RRkaGDhw44PJok6ioKM2YMUM33XST1/dp27at4fv0/fffe90XAACoWMhrZQN5zRl5jbzmqxMnTjjtGDN16lSnRZJFyczM1Kuvvqo1a9bojTfe8Pp9ktcAAIA3yGplA1nNGVmNrFZa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Orruuuv0+uuvKyoqyuP7Z2RkaM+ePYa6fv36edwPAABAIJHXSkZe8w55LXiuhrzWq1cvPf/88/rb3/5mmPzLycnR/PnzNX/+/BL7uPbaa/XOO+8oMjLS4/uT1wAAQFlHVisZWc07ZLXguRqy2pVOnjzpVBcXFxfQe5LVAPdxDDcAlHH9+/d3qmvRooUSEhKCMJqyqU2bNvrvf/+rHj16eNy2ZcuWWrBggQYPHhyAkZU9LVq00IsvvqgFCxYE5JfyunXrqkOHDoa6H3/80aM+zGaz3nrrLT366KMKDQ31qG1sbKxmz56txx57zKN2pe3aa6/Vhx9+qObNm3vUbsiQIXrzzTdLPP7AH7p166bPPvvM4581oaGhGjZsmD755BPVqlXLq3tv2rRJVqvVXo6Pj3f6XgEAAJQF5LWSkdfcR14rG66GvDZgwADNmzdP8fHxHrUzmUy666679Mknnzgd5+0u8hoAALgakNVKRlZzH1mtbLgastolmZmZTnUREREBvSdZDXAfO0sCQBl36623Oj0Rw5Nvzi49UfTTTz/pgw8+0KZNm3Tx4kWX14aGhqpjx466++679cc//tHj0FDWmUwmmc1mxcTEqGbNmmrYsKHatGmjnj17evQUmrduu+02/fLLL/bymjVrdN9993nUR0hIiMaNG6c77rhDH3zwgZYvX27YWt9RvXr1NHDgQI0cOVJVqlTxduilqnXr1lq6dKk++eQTLV68WMnJyS6vM5lM6tGjh+6//35169atVMfYtGlTff7551q+fLk++ugj7dmzx/5ko6PY2Fj16dNHDz74oBo3buzTfb/77jtD+dZbb3X7uAkAAIDSRF5zD3ntMvIaec1fOnbsqJUrV2rJkiVasGCB9u/fX+S1ERER6tevn0aPHq02bdr4dF/yGgAAuBqQ1dxDVruMrEZW86crT227JDw8PKD3JKsB7jPZiprxBgDgKpafn69t27bp1KlTSk1NVX5+vmJiYtSoUSO1adPG71vk47L09HT17NnTHqhDQkK0du1a1a5d2+s+bTabkpKStH//fl24cEHZ2dmKiIhQnTp11KpVKzVt2tTncb/77rt6+eWXJUnr16/3abze+O2335SUlKRz584pOztbMTExio+PV2JiYpn5vqampmrr1q1KSUlRenq6KleurLi4ODVu3FjXXnutQkJ837Q8Pz9fPXr0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PCqiYH/vr5wsKgs+//xzQ3n06NFutRszZowWLFhgPyp79erV+sc//uHzcWe//vqrzp49ay9XrlxZd955p1tte/XqpXfeecde3rVrV5HXHjt2TFu2bDHc55577inxHqGhoRozZowmTpxor1u+fDlHcQMAAADwC+bVmFfD1S3Y/+4EBAPfe1QUzOWjoioLP+cDMbcWsMWSlz4ww80qeX670FDjD5dAH3N28uTJIl87c+aMxowZo2uuuUbPPvus2rVrV+S1rkJd165d9corrzgdm9CoUSM1atRIgwYN0ltvvaU5c+bYX8vMzNTEiRP13//+13DcXWmzWq32yVBUPK7+PsO/LBbnv18Wi0WW0LK1qKKi4DuPiobvPCqiiv69P3DggE6cOGEvx8bGqkuXLm61rV27ttq3b69ffvlF0u+ZZePGjbrxxht9GlNmZqYSExN14MABZWVlKTEx0e1dVKpXr24oF3fM3Pr162Wz2ezl7t27u32fPn36KCwszL7by8aNG5WVleXxbi8AAAAA4Ih5NebVUH5U9H93QsXE9x7lGXP5QPn6OR+wxZKuAoA3T1A5tgn0biw1a9bUyJEjFR8fL6vVqqNHj2rdunWGrf9//fVXDRs2TK+99pr69u3rsp/09HRFRkbaj7Xr1KmT3n333WJ3WwkJCdEjjzwim82mf/3rX/b63bt369tvv1W/fv389C49FxoayhNwFcyVP+h83SUIJTNbnf9+mc1mmc08jVJa+M6jouE7j4oo2N/7wsLCMjNRsmnTJkO5Y8eOThNqxencubN9saT0+wJEXxdLdu3aVYsWLZIkHT9+3OWuKkVJS0szlCMjI4u81vG9d+7c2e37VK5cWW3btrW/d4vFoo0bN+qmm25yuw8AAAAAcIV5NebVcHUL9r87AcHA9x4VBXP5qKjKws/5QMytBWyxpKun3axWq8dPwTmuTA30h3/l02dXjmH+/PmaNWuWYYvRiRMnaunSpWrSpIlTm3HjxmncuHFKTU3VsWPH1LBhQ7fHPnbsWK1atUr79++31y1YsCCooa558+bsllLB7Ny5UxaLRWazudinPeEf6Vl5ko4a6lq3bq2q0eHBGVAFxHceFQ3feVREwf7eZ2VlFXmsWGm78pgy6fffOzzheP3u3bt9HtOV6tev79H1GzduNJQTEhKKvNbxvV977bUe3at169aGhaK7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+dynqxzm+N4PHjzoUZ+On5U/3jsAAAAAOGJejXk1AAAAAP5Xaoslpd+D3bJly9S/f3+XIeeSHj16aP78+Xr00UcDOp4qVarozTff1Ny5c9WxY0eZTKYir23SpImmTJmiVatWOR01UJIhQ4Zo5cqVuvfeexUTE1PkdaGhoerVq5cWLFig559/vtjPCAAAAAC81a5dO0N5586dHrXfvn27oexpRnLl/vvv1+DBgzVx4kS99tprWrduncd9nD592lCuUaOG0zVt27Y1lD19747Xd+jQwaP2AAAAAOAu5tWYVwMAAADgX6VyDPeVGjRooH/+85/KycnRli1bdObMGaWmpioiIkLx8fHq0KGDywmt4gwcOFADBw70eky9e/dW7969lZqaqq1bt+rMmTPKzMxUdHS04uLi1K5dO9WvX9/r/iWpbt26mjp1qiZPnqy9e/fqwIEDSktLU15enmJiYtSwYUMlJiYWG/oAAAAAwB+uv/56mc1mWSwWSdKOHTuUnp6uqlWrltjWarXqxx9/NNR1797d5zElJCQYFiJ+9913GjFihNvtMzIytGfPHkNdmzZtnK7r0aOH3n//fXt5/fr1euyxx9y6x/79+3Xq1Cl7OS4uzmmnSgAAAADwJ+bVmFcDAAAA4D+lvljyksjISPXs2TNYt3cpLi5O/fr1C+g9QkND1bZtW6fdTAAAAACgtERFRemGG27QmjVrJEkFBQVasmSJRo8eXWLbb7/9VufPn7eXW7RooRYtWvg8pu7du2vx4sX28saNG3X48GE1btzYrfYff/yx4ci3qKgoXX/99U7Xde7cWbGxsUpLS5Mk7dmzR3v27NG1115b4j3+85//GMr9+/cvdicVAAAAAPAX5tWYVwMAAADgu1I9hhsAAAAAUDYMHjzYUJ47d65OnjxZbJuMjAy9/PLLhrq77rrLL+Pp27evYWfLwsJCvfDCC2613bdvn9555x1D3bBhw2Q2m52uDQsL0x133GGoe+6555Sfn1/sPfbs2aNFixYZ6vz13gEAAAAAAAAAABB4LJYEAAAAgAqob9++atWqlb2clpamhx56SOfOnXN5fXZ2tiZMmKCjR4/a6+rWrauhQ4cWeY8lS5YoISHB8N+mTZtcXhseHq6xY8ca6tasWaOXXnpJNputyHvs3r1b999/vy5evGivq1atmh544IEi29x3330KDw+3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V2NeDQAAAEBgBXSxZEJCgr755ht7OTk52aP2v/32m6HcrFkzn8eUnp6uo0eP6ujRozpy5Ij+/Oc/q0GDBj71GRER4VSXkJCgLVu22MsHDx70KNQ5flb+eO8AAAAA4EpWVpZmzJihJUuWyGazGV4rKChQUlKSkpKStHDhQt100016/vnnA747SXJysqZNm6bNmze7fP3UqVM6deqUfv75Z7355pvq3bu3pk6dqvr167t9jysnIQEAAAAg2JhXY14NAAAAQGAFdLFku3btDOWdO3d61H779u2GcmJioq9D0v33328YR5UqVTRixAiP+jh9+rShXKNGDadr2rZtawh1O3fuVJ8+fdy+h+NnVdq7twAAAACoGFJTUzVq1Ci3Fw5+/fXX2r17tz788MOA7dTx1VdfafLkybp48aLbbdasWaNt27Zpzpw56tKli1tt9u/f7+0QAQAAAMDvmFdjXg0AAABAYAV0seT1118vs9ksi8UiSdqxY4fS09Pd2oHEarXqxx9/NNR1797d5zElJCQYAtN3333nUajLyMjQnj17DHVt2rRxuq5Hjx56//337eX169frsccec+se+/fv16lTp+zluLg4JSQkuD1GAAAAAHBHQUGBxo4d67RQskWLFurVq5dq1Kihc+fOac2aNTp48KD99VOnTmns2LH6z3/+o+joaL+OaePGjfq///s/e468ckzdu3dXfHy8rFarjh07pvXr1+vEiRP2a9LS0vTwww/r008/VYsWLYq9z9mzZ5WammovJyQk6J577vForIHeXRMAAABAxcK8GvNqAAAAAAIroIslo6KidMMNN2jNmjWSfp+IW7JkiUaPHl1i22+//Vbnz5+3l1u0aFHiZJc7unfvrsWLF9vLGzdu1OHDh93eEeXjjz9WQUGBvRwVFaXrr7/e6brOnTsrNjZWaWlpkqQ9e/Zoz549uvbaa0u8x3/+8x9DuX///jKZTG6NDwAAAADcNXfuXG3bts1eNpvNeuaZZ3TXXXcZrnviiSe0ePFiPffcc8rLy5P0+xFnM2bM0IwZM/w2npycHKeFkrGxsXr++efVr18/p+utVqs+/fRTzZw5U/n5+ZKk7OxsTZgwQV9++aVCQ0OLvJfjAtGuXbt6vFgSAAAAAPyJeTXm1QAAAAAEVkigbzB48GBDee7cuTp58mSxbTIyMvTyyy8b6hwn67zVt29fwxN4hYWFeuGFF9xqu2/fPr3zzjuGumHDhslsNjtdGxYWpjvuuMNQ99xzz9kn8IqyZ88eLVq0yFDnr/cOAAAAAJecO3dO7733nqFu+vTpReaPIUOGaNasWYYJp6VLl+rIkSN+G9MHH3yglJQUezkqKkoLFixwuVBSkkJDQzVs2DC98cYbhoWRycnJWrJkSbH3clws2bJlSx9GDgAAAAD+wbzaZcyrAQAAAPC3gC+W7Nu3r1q1amUvp6Wl6aGHHtK5c+dcXn9pF5CjR4/a6+rWrauhQ4cWeY8lS5YoISHB8N+mTZtcXhseHq6xY8ca6tasWaOXXnpJNputyHvs3r1b999/vy5evGivq1atmh544IEi29x3330KDw+3l7dt26YpU6Y4HSd3yZEjRzR27FjD67fccovh8wMAAAAAf1i4cKFycnLs5RtvvFEDBgwots3NN99sOG7NarXq7bff9tuYPv/8c0P58ccfV7NmzUpsd+ONNzrtCunYl6P9+/cbyiyWBAAAAFAWMK/GvBoAAACAwAn4YkmTyaRp06YpJOTyrZKSkjRgwAAtXrxYWVlZkqS8vDytXLlSgwcP1oYNGwx9PP3004Zw5KsRI0YoMTHRUPfee+/p3nvv1ffff29/Ss1ms2nv3r2aPn267r77bsMOJ2azWa+99pqqVKlS5H1q166tRx991FD35ZdfatiwYVq3bp09vF24cEEffvihBg0apNOnT9uvrVKliiZNmuTz+wUAAAAAR46LCd051k2SxowZY9jFcfXq1UVOXHli3759OnbsmL0cGRmpQYMGud1+2LBhhvL27dvtedOVK3eWNJlMat68uQejBQAAAIDAYF6NeTUAAAAAgVOpNG6SmJioadOm6ZlnnrHXpaSkaOrUqZo6dapiYmKUlZXl8gm0Bx98UH379vXreCpVqqS33npLw4cPV3Jysr1+y5Yt2rJli0JDQ+1jKigocGofFhammTNnqkuXLiXe67777tP+/fv1xRdf2Ot27typBx54QCEhIYqMjHQ5gWc2m/XSSy8pPj7ey3cJAAAAAK4dOHBAJ06csJdjY2PdyjfS75NX7du31y+//CJJyszM1MaNG3XjjTf6NKa9e/cayu3bt1dERITb7Zs1a6aoqChlZ2dL+n3Xy1OnTqlFixZO1xYUFBiyYP369RUZGenlyAEAAADAv5hXY14NAAAAQGAEfGfJS4YOHapnn33W5WRXZmamU6ALCQnRuHHjNHHixICMp1q1alq0aJHLwGi1WpWWluYy0MXHx2vevHn605/+5NZ9QkJC9MILL7g87qCwsNBloIuJidFrr72m3r17u3UPAAAAAPCE4/FqHTt2NOwWWZLOnTsbyuvXr/d5TCdPnjSU69ev73Efjgse09PTXV7322+/GXbD5AhuAAAAAGUN82rMqwEAAADwv1JbLCn9HuyWLVum/v37F7tDSI8ePTR//nynrfb9rUqVKnrzzTc1d+5cdezYUSaTqchrmzRpoilTpmjVqlVORw2UJDQ0VM8++6w+/PBDderUyXB0wpXCwsI0cOBAffnll35/6g8AAAAALtm3b5+h3Lp1a4/aO16/e/dun8c0btw47dq1S19//bU+/vhjDR8+3KP2ubm5Sk1NNdQVdbzblUdwS3K5+yQAAAAABBvzasyrAQAAAPCvUjmG+0oNGjTQP//5T+Xk5GjLli06c+aMUlNTFRERofj4eHXo0EE1atTwqM+BAwdq4MCBXo+pd+/e6t27t1JTU7V161adOXNGmZmZio6OVlxcnNq1a+fVriaOunXrpm7duuns2bPavn27UlJSlJmZqZiYGDVu3Fjt27dXVFSUz/cBAAAAgOJceWyaJDVt2tSj9g0bNjSUDx065POYpN8nuho2bOjUvzt++uknWa1WQ13t2rVdXuu4WDIhIcH+v3NycrR7926dOXNGBQUFql69upo0aaIGDRp4PCYAAAAA8BXzasyrAQAAAPCfUl8seUlkZKR69uwZrNu7FBcXp379+gX8PrVq1dLNN98c8PsAAAAAgCuOR14XtaiwKLVq1TKU09LSlJ2dHdRJqvnz5xvK1157rapWreryWlc7S65fv17z58/XDz/84PLouObNm+uuu+7SsGHDZDab/TdwAAAAAHAD82rMqwEAAADwXakeww0AAAAACD7H46o93YWkWrVqTsegXbhwwedxeWvjxo1av369oa5Pnz5FXr9//35D+dlnn9WYMWO0du1alwslJengwYOaMWOGbrvtNqdjzAEAAAAAAAAAAFD2sVgSAAAAACqQ7Oxs5efnG+qio6M96sNkMqly5cqGuoyMDJ/H5o309HQ9/fTThrrw8HDdddddRV5/+vRpQ93mzZvdvt+RI0c0bNgwbdiwwfPBAgAAAAAA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558f9913X4wbN26H+/nwww9j48aN6fjAAw+M0047LaNcc/0tQAAAAAAAAHYP6mrqagAAQG7kpVly/vz5sWzZsnRcWloaV155ZcycOTOx3SWXXBIPPPBAXHvttbFt27aI+Ph2/vPmzYt58+ZlLZ+tW7d2uqAbMGBAXH/99fHXf/3XnbZPpVJx3333xQ033BDNzc0REdHY2BgXXnhhPProo1FSUrLdfXW8kP3KV76S8UUdAAAAAAAAvYO62qfU1QAAgGzK+WO46+rq4q677kqMXXfddZ0u6D7xrW99K2666aYoKipKjz388MOxatWqrOX061//OtavX5+OKysr43e/+12XF3QRESUlJTF79uy44447EhdwtbW1sXDhwh3uq+NF3QEHHNCNzAEAAAAAAOip1NXU1QAAgNzJebPkggULYuvWren4uOOOi2nTpu1wzkknnRSnn356Ok6lUnHnnXdmLaeHHnooEV988cUxZsyYz5133HHHdfr2Wse1OnrjjTcSsYs6AAAAAAAAuqKupq4GAADkTs6bJTte9Jx11lk7Ne/ss89OfNvsySefTNzef1e9/vrrsXr16nRcUVERM2bM2On5s2fPTsQvv/xybNmyZbvbf/YbcEVFRTF27NgMsgUAAAAAAKC3UFdTVwMAAHInp82Sb775Zrz33nvpeMCAATFx4sSdmjts2LA4/PDD03FDQ0MsWbKk2zm99tprifjwww+P8vLynZ4/ZsyYqKysTMepVCrWrVvX5batra1RW1ubjkeMGBEVFRUZZgwAAAAAAEBPp66mrgYAAORWTpslly5dmoi//OUvJ77V9nmOPvroRLx48eJu57R27dpEPGLEiIzX6HhhtmnTpi63e+uttxLf2vOoAAAAAAAAALqirqauBgAA5FafXC7++uuvJ+Lx48dnNL/j9itWrOh2ThdccEGcc8458f7778f7778fe+21V0bzm5qaYuPGjYmx7a3x2UcFRESMGzcus2QBAAAAAADoFdTV1NUAAIDcymmz5GdvlR8Rsf/++2c0f7/99kvEb7/9drdziogoKyuL/fbbr9P6O+P555+PVCqVGBs2bFiX23a8qDvwwAPT///WrVtjxYoV8cEHH0Rra2sMGjQoRo8eHSNHjsw4JwAAAAAAAPZs6mrqagAAQG7ltFmy4635t3fxsz1Dhw5NxPX19dHY2BiVlZXd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WSNHjoxbbrkltm7dGi+++GJ88MEHsXHjxigvL4999903JkyYEIMHD85ozenTp8f06dM/d7upU6fG1KlTdzX1bhk+fHjMnTs3LrvssnjttdfizTffjPr6+ti2bVtUV1fHfvvtF0ccccQOL/oAAAAAAADoPdTV1NUAAIDsyXuz5CcqKiriq1/9aqF2XzAlJSVx6KGHxqGHHlroVAAAAAAAANgDqKupqwEAAN2X18dwAwAAAAAAAAAAAOSbZkkAAAAAAAAAAACgRyvYY7gBAADYvdTW1saDDz4YL774YqxevToaGhqib9++MWLEiJgwYUKcfPLJMWHChLzmtGLFinjqqafipZdeitWrV8emTZuivb099t577/irv/qrOProo+Okk06Kgw8+uFv7WbJkSfzhD3+IZcuWxQcffBB/+ctfoqqqKkaPHh3HHHNMzJgxI0aMGJGlowIAAAAAACDfNEsCAAD0clu2bIl58+bFwoULo729PfFaa2tr1NTURE1NTSxYsCBOPPHEuP7666N///45zam2tjauvvrqeOGFF7p8fd26dbFu3br44x//GD//+c/ja1/7WsydOzfjhsZVq1bFpZdeGn/60586vVZfXx/Lli2LZcuWxZ133hnnnXdefO9734uSkpJdOiYAAAAAAAAKx2O4AQAAerGNGzfG7Nmz48EHH+zUKNmVp556Kk455ZR45513cpbT448/HjNmzNhuo2RXFi1aFDNmzIilS5fu9Jzly5fHqaee2mWjZEepVCruuOOO+Pu///vYtm3bTu8DAAAAAACA3YM7SwIAAPRSra2tMWfOnKipqUmMjxs3Lo4//vgYPHhw1NXVxaJFi2LlypXp19etWxdz5syJ+++/P6qqqrKa05IlS+If//Efo6WlpVNOkyZNin333TdSqVSsXr06Fi9eHO+99156m/r6+jj//PPjvvvui3Hjxu1wP+vWrYuzzz47Nm/enB4rKiqKr3zlK3HkkUdGVVVVrFq1Kp544onYuHFjepsXXngh5s6dGzfeeGOWjhgAAAAAAIB80CwJAADQS82fPz+WLVuWjktLS+PKK6+MmTNnJra75JJL4oEHHohrr702fVfF2tramDdvXsybNy9r+WzdurVTo+SAAQPi+uuvj7/+67/utH0qlYr77rsvbrjhhmhubo6IiMbGxrjwwgvj0Ucf3eHjsi+99NKor69Px/vss0/cfPPNMWHChMR2l112Wdxwww3xu9/9Lj32L//yLzF58uSYNm3aLh4pAAAAAAAA+eYx3AAAAL1QXV1d3HXXXYmx6667rlOj5Ce+9a1vxU033RRFRUXpsYcffjhWrVqVtZx+/etfx/r169NxZWVl/O53v+uyUTIioqSkJGbPnh133HFHojGytrY2Fi5cuN39LFq0KJ5//vnEfn71q191apSMiCgrK4urrroqzjzzzMT4HXfcEa2trTt9bAAAAAAAABSWZkkAAIBeaMGCBbF169Z0fNxxx33unRJPOumkOP3009NxKpWKO++8M2s5PfTQQ4n44osvjjFjxnzuvOOOOy5OO+20Ha71WXfffXciPv/88z/3sd2XXnppHHzwwen43Xffjccee+xzcwMAAAAAAGD3oFkSAACgF+rYTHjWWWft1Lyzzz47cRfHJ598MvHY7F31+uuvx+rVq9NxRUVFzJgxY6fnz549OxG//PLLsWXLlk7brV69Ol588cV03K9fv06Nll0pKSmJs88+OzH2hz/8YafzAwAAAAAAoLA0SwIAAPQyb775Zrz33nvpeMCAATFx4sSdmjts2LA4/PDD03FDQ0MsWbKk2zm99tprifjwww+P8vLynZ4/ZsyYqKysTMepVCrWrVvXabvFixdHe3t7Op40aVJUVVXt1D5OOOGEKCsrS8dLlizpsiETAAAAAACA3Y9mSQAAgF5m6dKlifjLX/5y4m6Rn+foo49OxIsXL+52TmvXrk3EI0aMyHiNioqKRLxp06ZO23Q89o7HsiP9+vWLQw89NB23tLRkpVEUAAAAAACA3OtT6AQAAADIr9dffz0Rjx8/PqP5HbdfsWJFt3O64IIL4pxzzon3338/3n///dhrr70ymt/U1BQbN25MjHW1RsdjP+SQQzLaz/jx4+Oll15KxytWrIgTTzwxozUAAAAAAADIP82SAAAAvUxtbW0i3n///TOav99++yXit99+u9s5RUSUlZXFfvvt12n9nfH8889HKpVKjA0bNiwRNzc3x5o1axJjo0ePzmg/I0eOTMTZOnYAAAAAAAByy2O4AQAAepmOj7zu2FT4eYYOHZqI6+vro7Gxsdt5dce9996biA855JDo379/Yuz9999PNFSWlpbGoEGDMtpPx3P13nvvZZgpAAAAAAAAhaBZEgAAoJfp+LjqwYMHZzR/7733juLi5OXkRx991O28dtWSJUti8eLFibETTjih03YbNmxIxAMHDoyioqKM9jVw4MBEXMjjBgAAAAAAYOdplgQAAOhFGhsbo7m5OTFWVVWV0RpFRUXRr1+/xNjmzZu7nduu2LRpU1xxxRWJsb59+8bMmTM7bVtfX5+IMz3uiIjKyspO+wcAAAAAAGD3p1kSAACgF9m2bVunsY6NjzujoqIiETc1Ne1yTrsqlUrFxRdfHKtXr06Mf+c73+n0qPCIzse+K8fdcU5X5xMAAAAAAIDdT59CJwAAAED+tLS0dBrr0yfzS8OSkpJE3Nrauss57Yr29va4/PLL4z//8z8T4wcccECcf/75Xc7peEfNXTnujnO6Op/5tHLlyk6PRKdn++Q919LSEsuXLy9wNpA7jU2pTmOvvfZaVJaXdLE12eTcF57PenqbQr/n29ra8r5PAAAACkOzJAAAQC+SSnVugNiVZruOc/JZYGxvb4+rrroqHn744cR4dXV13HbbbVFWVtblvI457spxFxUVdZlPV+P5kEqluvw3pXcodLMu5FJLS+fPtpaWlmgp0dCSa8797sVnPb2N9zwAAAC5pFkSAACgF+nqboqpVCrjuyx2LGKWlpZ2K6+dlUql4rLLLotHHnmk0/5vv/32GD169HbndjzGXWky7HgHzT59+hSsUTLi4zt8urNk7/LZn718/dxBIZSmOn+2lZaWRmmpuxvmmnNfeD7r6W0K/Z5va2vzBSQAAIBeQrMkAABAL9LVXRdbWlqib9++Ga3TsWlwe3dzzKampqa46KKL4umnn06M9+nTJ26++eb4yle+ssP5HXPclbvWFOK4d2Ts2LFRVVVV0BzIr+XLl0dLS0uUlpbGYYcdVuh0IGc2bdkWEe8mxsaPHx/9qzL73ysy59wXns96eptCv+e3bNkSNTU1ed8vAAAA+ef2EwAAAL1IdXV1pzshNjY2ZrxOxzmVlZXdyuvzbNy4Mc4888xOjZKlpaXx05/+NE488cTPXaO6ujoRb926NeM88n3cAAAAAAAAZIdmSQAAgF6kpKQk9tprr8TY5s2bM1qjqakpmpubE2ODBg3qdm7b884778SsWbPilVdeSYz37ds3br/99vj617++U+vsvffeiXjTpk0Z59JxzsCBAzNeAwAAAAAAgPzTLAkAANDL7LPPPom4rq4uo/nr169PxGVlZdG/f/9u59WVP/3pTzFr1qx4993k40Crqqril7/8ZRx//PE7vdbw4cMT8aZNmzo9VvvzdDxXQ4YMyWg+AAAAAAAAhaFZEgAAoJcZOXJkIl6zZk1G8ztuP2rUqO6m1KXFixfHWWedFfX19YnxIUOGxD//8z/HxIkTM1qvf//+ibtqtrW1xdq1azNaI1/HDgAAAAAAQHZplgQAAOhlDjzwwERcW1ub0fy33norEY8ZM6bbOXX09NNPx5w5c6KpqSkxPmrUqFiwYEEcfPDBu7Rux2NfuXJlRvM7nqtcHDsAAAAAAADZp1kSAACglznssMMS8fLlyzOa//LLLyfiI444orspJTzzzDNx4YUXRktLS2L8S1/6UixYsKDTnTEzceihhybiTI+94/YTJkzY5VwAAAAAAADIH82SAAAAvcxRRx0VpaWl6fiVV16JTZs27dTcVCoVzz77bGJs0qRJWcvtjTfeiB/84AedGiUnT54cv/nNb2LgwIHdWn/y5MmJePHixRnltm7dunQ8cODATneqBAAAAAAAYPekWRIAAKCXqaysjGOPPTYdt7a2xsKFC3dq7tNPPx0bNmxIx+PGjYtx48ZlJa/m5ua4+OKLo7GxMTF+wgknxPz586OioqLb+zj66KNjwIAB6fjVV1+NV199dafm3n///Yl46tSpUVRU1O2cAAAAAAAAyD3NkgAAAL3Qqaeemojnz58fa9eu3eGczZs3x4033pgYmzlzZtZyuvnmm+ONN95IjB199NFx6623RllZWVb2UVZWFqecckpi7Nprr43m5uYdznv11Vfj97//fWIsm8cOAAAAAABAbmmWBAAA6IWmTJkSBx10UDqur6+P8847L+rq6rrcvrGxMS688MJ4991302PDhw+PWbNmbXcfCxcujAMPPDDx39KlS7vc9r333ot77rknMTZs2LC47bbbstYo+YnvfOc70bdv33S8bNmyuPzyyzs9+vsTq1atijlz5iRe//rXv544fwAAAAAAAOze+hQ6AQAAAPKvqKgorr766pg9e3a0tbVFRERNTU1MmzYtLrzwwpg6dWpUVVXFtm3bYtGiRXHrrbfGW2+9lVjjiiuuSDQddsfdd98dra2tibEJEybEE088sctrTpw4Mfbff/9O48OGDYvvf//7cdNNN6XHHn300Vi1alVccMEFMWnSpCgtLY2PPvoo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0iCi87HvynF3nNPV+QQAAAAAAGDPp672KXU1AAAgV/rkauGWlpbOO+uT+e5KSkoScWtr6y7ntCva29vj8ssvj//8z/9MjB9wwAFx/vnndzmn4zf/duW4O87p6nzm08qVKzs9uoGe7ZP3XEtLSyxfvrzA2fR8jU2pTmOvvfZaVJaXdLE12eTc01v5nKc3KvT7vq2tLe/7BAAAYM+grvYpdTX2RIX+uxMUgvd9fqlpFo5zT2+1O3zO56K2lrNmyVSq84fFrlwUdJyTzwJje3t7XHXVVfHwww8nxqurq+O2226LsrKyLud1zHFXjruoqKjLfLoaz4dUKtXlvym9Q6H/qNAbtLR0/vlqaWmJlhJNFbnm3IPPeXon73sAAAB2J+pqn1JXY0/n7070Rt73uaemWTjOPfSsz/mcNUt29a2vVCqV8bfBOp7s0tLSbuW1s1KpVFx22WXxyCOPdNr/7bffHqNHj97u3I7HuCsXQx2/6denT5+CXdBFfPxNRN+A610++7OXr5+73qw01fnnq7S0NEpLfRsl15x7eiuf8/RGhX7ft7W1KZQAAADQJXW15FqZUlej0Ar9dycoBO/7/FLTLBznnt5qd/icz0VtLWfNkl19O6ylpSX69u2b0TodL262962zbGpqaoqLLroonn766cR4nz594uabb46vfOUrO5zfMcdd6a4txHHvyNixY6OqqqqgOZBfy5cvj5aWligtLY3DDjus0On0eJu2bIuIdxNj48ePj/5VmX1mkjnnnt7K5zy9UaHf91u2bImampq87xcAAIDdn7rap9TV2BMV+u9OUAje9/mlplk4zj291e7wOZ+L2lrOvtJUXV3d6RtbjY2NGa/TcU5lZWW38vo8GzdujDPPPLPTBV1paWn89Kc/jRNPPPFz16iurk7EW7duzTiPfB83AAAAAAAAhaGu9il1NQAAIFdy1ixZUlISe+21V2Js8+bNGa3R1NQUzc3NibFBgwZ1O7fteeedd2LWrFnxyiuvJMb79u0bt99+e3z961/fqXX23nvvRLxp06aMc+k4Z+DAgRmvAQAAAAAAwO5PXe1T6moAAECu5KxZMiJin332ScR1dXUZzV+/fn0iLisri/79+3c7r6786U9/ilmzZsW77yZvnVtVVRW//OUv4/jjj9/ptYYPH56IN23a1On2/5+n47kaMmRIRvMBAAAAAADY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k8vFX3/99UQ8fvz4jOZ33H7FihXdzml7Ro0aFZdeeml87Wtfy9qaLugAAAAAAADYWWpramsAAEDu5LRZsra2NhHvv//+Gc3fb7/9EvHbb7/d7Zw6GjJkSHz3u9+Nb3/721FaWprVtXd0Qbd58+ZYsWJFrF+/Ptrb22PIkCExduzYGDZsWFZzAAAAAAAAYM+gtqa2BgAA5E5OmyXXrl2biDO9WBk6dGgirq+vj8bGxqisrOx2bhERP/rRj+Koo46KsrKyrKzX0Wcv6IqKimLMmDHxhz/8IRYsWBB//OMfo729PbF9UVFRHHLIIXHGGWfEKaecEkVFRTnJCwAAAAAAgN2P2praGgAAkDvFuVx848aNiXjw4MEZzd97772juDiZ4kcffdTtvD4xefLknF3MNTc3x6pVq9Jxv3794swzz4yLLrooXnzxxU4XcxER7e3tsWLFivjxj38cp556aqcLYgAAAAAAAHoutTW1NQAAIHdy1izZ2NgYzc3NibGqqqqM1igqKop+/folxjZv3tzt3PJh5cqV0dramo63bt0ar7766k7PX7FiRcycOTNef/31XKQHAAAAAADAbkRtTW0NAADIrZw9hnvbtm2dxjpenO2MioqKaGxsTMdNTU3dyitfPvuYgM8aOnRozJo1K6ZMmRIjRoyI4uLieP/99+PZZ5+Ne+65J1avXp3edv369XH++efHgw8+GAMHDsxX6l1auXJlp28i0jM1NqU6jb322mtRWV5SgGx6D+e9cJx7equWlpb0/12+fHmBs4H8KPT7vq2tLe/7BAAAYM+httZzamvqar1Pof/uBIXgfZ9fapqF49wXjnNfWLvD53wuams5a5b85IQldtYn892VlCTf4J/9RtnurKsLum9+85tx7bXXRmVlZWJ8zJgxMWbMmPi7v/u7uP766+P3v/99+rW1a9fGVVddFT/72c9ynvOOpFKpSKU6fwjR87S0dP53bmlpiZYSxf1cct4Lx7mHrn9vg57O+x4AAIDdjdpaz6mtqav1bv7uRG/kfZ97apqF49wXjnO/++hJn/M5a5bs6gJgV75B1XHOnnI3li1btkR5eXn623r//b//9/inf/qnHc4pKyuLn/zkJ9Hc3BwLFy5Mjz/55JPx2muvxfjx43Oa846UlJT4BlwvUZrq/O9cWloapaU683PJeS8c557e6rO/0JaWlhYw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DzzwQFx77bWxbdu2iIiora2NefPmxbx58/KRatTV1cW555673SJZJlpaWuLiiy+O5ubm9Ni4cePi1ltvjTFjxiS2veyyy+Lyyy+PJ598Mj02f/78OPbYY+Ooo47qdi4AAAA7MnLkyLjlllti69at8eKLL8YHH3wQGzdujPLy8th3331jwoQJMXjw4IzWnD59ekyfPj3ruf72t7/N6npTp06NqVOnxurVq+PPf/5zrF+/PpqammKvvfaKsWPHxpe+9KUoKyvL6j4BAAB2RG1NbQ0AAMi+nDdL1tXVxV133ZUYu+6662LatGldbv+tb30r+vfvHz/4wQ/St8p/+OGH49xzz40vfOELOc112bJl8YMf/CA+/PDDrKx33333xdtvv52Ohw0bFnfffXcMHTq007bV1dVx2223xfe///146qmn0uO33XZb1guBAAAA21NRURFf/epXC51GQYwcOTJGjhxZ6DQAAIBeTm1NbQ0AAMiN4lzvYMGCBbF169Z0fNxxx233Yu4TJ510Upx++unpOJVKxZ133pmrFKOtrS3uueeeOOOMM7J2Mdfe3h6//vWvE2OXXnpplxdznygqKor/+T//ZwwZMiQ99sILL8Qf//jHrOQEAAAAAADA7k1t7VNqawAAQDblvFnyoYceSsRnnXXWTs07++yzo6SkJB0/+eST0dLSktXcIj6+YJoxY0Zcf/31ifUrKioSF1aZWrp0aaxZsyYdDx8+PP7mb/7mc+dVVlbGmWeemRh77LHHdjkPAAAAAAAA9hxqax9TWwMAALItp82Sb775Zrz33nvpeMCAATFx4sSdmjts2LA4/PDD03FDQ0MsWbIkq/ldddVVccYZZ8Rrr72WGB8+fHgsWLAgRo8evctr/8d//EciPvHEE6O4eOdOd8cLv3/7t39LPzYBAAAAAACAnklt7VNqawAAQLbltFly6dKlifjLX/5y4httn+foo49OxIsXL85KXp94+eWXO42dfPLJ8cgjj8RBBx3UrbU7HvvOXshGROy3336xzz77pOP169fHf/3Xf3UrHwAAAAAAAHZvamufUlsDAACyLafNkq+//noiHj9+fEbzO26/YsWKbue0PaNGjYr58+fHjTfeGP379+/WWqlUKlauXJkYy/TYDz744EScy2MHAAAAAACg8NTWPqW2BgAAZFufXC5eW1ubiPfff/+M5u+3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OqrpwgsvjAsvvDA2bdoUq1atipEjR6Zd+wUXXBCPP/54yom7n//853mdLFlWVubKkkXmo++9zr7vSE95S/v3WHl5eZSXu9JbLtnv+WPf5499T7HK9/FNa2trt/sBkvNqzqsBAAC50SWTJWfMmBELFixItsvLy+Pqq6+OM888M2W5Sy+9NB588MG47rrrorGxMSIili9fHtOnT4/p06dntab58+fHf/zHf6T0nXXWWXH55ZdH7969U/pfeuml+M53vhNr166NiIj3338/Lr744nj00Ud3e0KxbZA96qijMg51AAAA2VJRUdGur7m5uV0O2p22ExM7Wm9n6tqTK8q0HbOrmvbee+/Ye++9M1p/aWlp/P3f/31cddVVyb4XX3wxmpqaOv3899SoUaNychKU7mvhwoXR3Nwc5eXlccQRR+S7nKKweVtjRKxM6Tv88MNjQHVmfzfJjP2eP/Z9/tj3FKt8H99s27at29322Xm1HZxXAwAAsinnl5/YuHFj3HvvvSl9119/fbtA96EPL8dfUlKS7HvkkUdixYoVWa3rpptuikQikWxPmTIlrrnmmg5PEE6YMCH+8z//M2pqapJ9b731Vlq3GWgb6g455JA9LxoAAKCT+vXrl5K3IiLq6uoyXk/bMX379u1UXf37909pf3ib7HzW1JFjjjkmpd3Q0NDtTqwCAAA9l/NqzqsBAAC5k/PJkjNnzkw5yfXpT386Tj311F2OmTx5cpxzzjnJdktLS9x9991Zq+n555+PxYsXJ9sDBw6MK664YpdjRo4cGdddd11K34wZM1KCYUc+enu2CKEOAADIr7KysnYTE7ds2ZLROhoaGqKpqSmlb+DAgZ2qa6+99upUTR2N6WxNHRk+fHhUVlam9H30FnEAAACd4bya82oAAEDu5Hyy5MMPP5zSPu+889IaN23atCgrK0u2n3jiiT26DVtHZs2aldI+44wz0rriyOTJk+Oggw5KtleuXBmLFi3a5ZiP/gKupKQkRo0alWG1AAAA2TV06NCU9saNGzMav2HDhpR2RUVFDBgwIK81dTRm0KBBnappZzo72RQAAGBnnFdzXg0AAMidnE6WfP311+Ptt99OtmtqauJTn/pUWmOHDBkSH//4x5PtrVu3xrx58zpdUyKRiDlz5qT0uISubAAASvhJREFUff7zn097/IknnpjSfuKJJ3a67Pbt22P58uXJ9vDhw6OqqirtbQEAAOTCiBEjUtqrV6/OaHzb5Q844IDOltTpmpqbm2PdunUpfdmoqyONjY0p7erq6pxsBwAAKC7OqzmvBgAA5FZOJ0s+//zzKe1PfOITKb9q250jjzwypd02jO2J119/PeUWaf37949DDz007fFtQ+muanrjjTdSfrXnVgEAAEB3MGbMmJT2R09GpeONN95IaR988MF5r+mtt96KlpaWZHvgwIHtbu2dSCSitrY2li9fHi+88EI888wzGdfZ1NTU7kqSbbcDAACwJ5xXc14NAADIrV65XPmf//znlPbhhx+e0fi2yy9evDjrNR122GFRUlKS9vjDDjsspb1s2bJoaGiIysrKdst+9FYBERGjR4/OoFIAAIDcOOKII1LaCxcuzGj8yy+/nNIeP358Z0uKsWPHRllZWXLC49KlS3eatfa0pjlz5sTXvva1ZLu0tDT+9Kc/pXX7uA8tWrQoEolEst2rVy8n8AAAgKxwXs15NQAAILdyemXJtlcCOeiggzIaP3LkyJT2m2++mfWaDjzwwIzG19TURP/+/ZPtlpaWWLlyZYfLtg11H71SSn19fcyfPz9++9vfxsMPPxxz5syJVatWZVQLAADAnvjkJz8Z5eXlyfYrr7wSmzdvTmtsS0tLPPfccyl9xxxzTKdrqq6uTpnE2dzcHHPnzk17/B/+8Ifd1tT2RFtra2vMnz8/ozqffvrplPbHPvYxt4UDAACywnk159UAAIDcyumVJdesWZPSHjJkSEbjBw8enNKura2Nurq6jK76sbuahg4dmvE6hgwZknLbtTVr1nR4JZGOfgE3Z86c+NnPfhbPPvtsbN++vd2YUaNGxZlnnhlnn312yslLAACAbOnbt28ce+yxMXv27IiI2L59e8yaNSvOO++83Y596qmn4t133022R48enbWrfUyePDkWLFiQbD/wwAPxuc99brfj1q9fnzKJsVevXjF58uR2y+27776x//77x4oVK5J9Dz74YBx33HFp1bd58+Z48MEHU/pOOeWUtMYCAADsjvNqzqsBAAC5ldMrS27atCmlPWjQoIzG77XXXlFamlrie++9l9eaPqxrV+v80NKlS1Pa1157bUybNi3+53/+p8NAF/HB7QemT58eX/jCF9rd2gAAACBbTj/99JT2jBkz2p0Ea2vLli1x8803p/SdeeaZWavplFNOiYqKimR79uzZ7a7k2JHrr78+mpubk+3jjjsu9tlnnw6XPfnkk1PaTz31VMybN2+320gkEnHVVVelXIGzpqYmTj311N2OBQAASIfzas6rAQAAuZWzyZJ1dXXR1NSU0lddXZ3ROkpKSqJPnz4pfR/95dmeaBsK9+TXdG3HdFTT5s2bY+3atSl9mdzebcWKFXH22WdndNs5AACAdB1//PFx6KGHJtu1tbXx9a9/PTZu3Njh8nV1dXHxxRen3C5t2LBhMXXq1J1uY9asWTFmzJiU/55//vmdLj9w4MB267v00kvjlVde6XD5RCIRt956azz++OPJvtLS0vjWt761022cc845UVNTk9L37W9/OxYtWrTTMc3NzXHFFVekbCci4nvf+16nrtACAADwIefVnFcDAAByL2e34W5sbGzX1zagpaOqqirq6uqS7YaGhk7V1TZoVlVV7VFNH9VRTW1vFfChAQMGxJQpU+Kkk06K4cOHR1VVVaxbty7mz58f//Vf/5Xyq7e6urq46KKL4qGHHor9998/4zqzadmyZe1+jUhhqmtoadf32muvRd/KsjxUUzzs9/yx7/PHvs+vD6/A1tzcHAsXLsxzNdA18v26b21t7fJt7kpJSUlcc801cfbZZydrW7JkSZx66qlx8cUXx0knnRTV1dXR2NgYs2fPjh//+MfxxhtvpKzjqquuit69e2e1rosuuigef/zxWL9+fUR8kIu++MUvxrRp02Lq1KkxdOjQaGlpiVdeeSXuvPPO+MMf/pAy/stf/nKMGTNmp+uvqamJyy+/PC677LJkX21tbZx99tnxpS99KaZMmRIHHXRQRERs3bo1/ud//ifuuuuuWL58ecp6jj/++JgyZUq2njYAAFDknFdzXo2eLd/fO0FXcn4nP+z3/LHv88e+z6/ucHyTi3NrOZss+dFboCU31ivzzZWVpb7Ad3aZ/XS1DXVt15+tmjoKdUcddVTceuut7W5RsP/++8f+++8fU6ZMibvuuiv+9V//NfnY1q1b45JLLolf/epXUVJSknGt2dLS0hItLe3/CFF4mpvb/zs3NzdHc1n3OrlfaOz3/LHv88e+7z46Om6DQud1/4Hx48fHNddcE1dffXWyb8OGDXHllVfGlVdeGf369Ytt27ZFIpFoN/b888+P448/Pus19e/fP+68884499xzY9u2bRHx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4hdx6KGH7nYb77zzTkybNi22bNmS7CspKYmjjjoqJk6cGNXV1bFixYp47LHHYtOmTcll5s+fH1deeWXcfPPNWXimAADkSyKRiEXLN8ajz70Zf1y8Nlpbd5zgKC0tiaPHDou/nnRAjDt4UJSUlOSxUoqRrCarAQAA3Y+sJqvR/e3qO7/bf7vGd34AAN1Ul0yWnDFjRixYsCDZLi8vj6uvvjrOPPPMlOUuvfTSePDBB+O6665L/vpr+fLlMX369Jg+fXpWa5o/f378x3/8R0rfWWedFZdffnn07t07pf+ll16K73znO7F27dqIiHj//ffj4osvjkcffTR69dr1Lvz+978ftbW1yfbQoUPjtttuiwkTJqQsd/nll8eNN94YP//5z5N9v/nNb2LSpElx6qmn7sEzBAAg35atro3bZr4UK9du7fDx1tZEPLdwTTy3cE2MHNovvnPWhBg1vKZri6SoyWq1ybasBgAAdBeyWm2yLavRHfnODwCg58r5bbg3btwY9957b0rf9ddf3y7QfeiMM86IW265JeUXNo888kisWLEiq3XddNNNKbctmDJlSlxzzTXtAl1ExIQJE+I///M/o6amJtn31ltvtfv1XFuzZ8+OP/7xj8l2375945577mkX6CIiKioq4gc/+EF86UtfSum/4447Yvv27ek+LQAAuokFS9bH5Xc8u9MvTdtauXZrXH7Hs7FgyfocVwYfkNVkNQAAoPuR1WQ1ujff+QEA9Gw5nyw5c+bMqK+vT7Y//elP7/YXXZMnT45zzjkn2W5paYm77747azU9//zzsXjx4mR74MCBccUVV+xyzMiRI+O6665L6ZsxY0ZKMGzrpz/9aUr7G9/4RowePXqX2/n+978fhx12WLK9cuXK+N3vfrfLMQAAdC/LVtfG9PvmR0NTS0bjGppaYvp982PZ6trcFAYfIavtIKsBAADdhay2g6xGd+M7PwCAni/nkyUffvjhlPZ5552X1rhp06ZFWVlZsv3EE09Ec3NzVmqaNWtWSvuMM86Ivn377nbc5MmT46CDDkq2V65cGYsWLepw2VWrVsULL7yQbPfp0yfOOuus3W6jrKwspk2bltL36KOP7nZcIapvaI6Va7fE0pXvxcq1W6K+ITv//gAAuZRIJOK2mS9l/KXphxqaWuJHM1/a5ckDMlff0Bzra5ti9camWF/b5NgyZLUP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Ra9e6cediRMnxsSJE3NRGkDaZDWKjawGO8hrFCpZDSgEshrFRlaDHWQ1ClUxZzWTJaEI/fnPf05pH3744RmNb7v84sWLO10T5Fp1dXWMGjUqRo0alfHYZ599NqU9dOjQbJUFXWbjxo1xww03JNuHHHJInH/++XmsCLJrwYIFKe2jjz46T5UA7DlZjWIkq4G8RmGT1YBCIKtRjGQ1kNUobMWc1VwXForQ8uXLU9oHHXRQRuNHjhyZ0n7zzTc7XRN0V++//37MmjUrpa+YDhQoHNdcc03U1tZGRERZWVlMnz49Kioq8lsUZNGrr76a0s70S2uA7kBWg/TJahQSeY1CJqsBhUBWg/TJahQSWY1CVsxZzZUloQitWbMmpT1kyJCMxg8ePDilXVtbG3V1ddG3b99O1wbdzd133508CP7Q8ccfn59iYA89+uij8eSTTybb5557bowbNy6PFUH2rVixIvn/q6qqYtCgQcn2e++9F7/+9a/jmWeeiaVLl8bmzZujuro6hg0bFscee2z87d/+bRxyyCH5KBsghawG6ZPVKBTyGoVOVgMKgawG6ZPVKBSyGoWumLOayZJQhDZt2pTS/ugfvXTstddeUVpaGq2trcm+9957T6ij4CxcuDDuueeelL7DDjssPvnJT+apIsjcu+++G9ddd12yfcABB8TFF1+cx4og+5qammL9+vXJ9j777BMREa2trfHv//7vcdddd8X777+fMua9996L9957L1577bW455574vTTT4/vfe970a9fvy6tHeCjZDVIj6xGoZDXKHSyGlAoZDVIj6xGoZDVKHTFntXchhuKTF1dXTQ1NaX0VVdXZ7SOkpKS6NOnT0rfli1bOl0bdCcbNmyIb33rW9Hc3JzSf9lll+WpItgz//t//+947733IuKDv9833HBD9O7dO89VQXa99957kUgkku3q6upobGyMr3/96/HDH/6wXaBrq7W1NR544IH44he/mBIOAbqSrAbpkdUoJPIahU5WAwqBrAbpkdUoJLIaha7Ys5orS0KRaWxsbNfXNqClo6qqKurq6pLthoaGTtUF3cnmzZvjq1/9aqxduzalf+rUqXH00UfnqSrI3O9///t4/PHHk+2zzz47Jk6cmMeKIDfa3taloqIivvvd78YzzzyT7Nt3333juOOOixEjRkRzc3MsXbo0Zs+eHdu2bUsus2TJ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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 466, + "width": 1317 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,3,figsize=(16,5))\n", + "ax[0].stem(np.arange(-1, 7), sts.binom.pmf(np.arange(-1, 7), 5, 0.3))\n", + "ax[0].set_title(\"PMF of Bi(5, 0.3)\")\n", + "ax[1].stem(np.arange(-1, 7), sts.binom.pmf(np.arange(-1, 7), 5, 0.5))\n", + "ax[1].set_title(\"PMF of Bi(5, 0.5)\")\n", + "ax[2].stem(np.arange(-1, 7), sts.binom.pmf(np.arange(-1, 7), 5, 0.7))\n", + "ax[2].set_title(\"PMF of Bi(5, 0.7)\");" + ] + }, + { + "cell_type": "markdown", + "id": "394172b1", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 3\n", + "\n", + "We say $X$ follows discrete uniform distribution $DU([1, n])$ and we write $X \\sim DU([1, n])$ if\n", + "$$\n", + "P(X = k) = \\frac1n\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "9a845a49", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 4\n", + "\n", + "Consider an urn with $w$ white balls and $b$ black balls. We draw $n$ balls out of the urn at random without replacement. Let $X$ be the number of white balls in the sample. What is the distribution of $X$? What is its PMF?" + ] + }, + { + "cell_type": "markdown", + "id": "dad5a285", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution 4\n", + "\n", + "If $X \\sim HGeom(w, b, n)$, then\n", + "$$\n", + "\\mathbb{P}(X = k) = \\frac{\\begin{pmatrix}w\\\\k\\end{pmatrix}\\begin{pmatrix}b\\\\n-k\\end{pmatrix}}{\\begin{pmatrix}w+b\\\\n\\end{pmatrix}}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b3cb010c-9b8d-476f-9494-433e5cd06b77", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAACjIAAAOlCAYAAADNG+xTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAB7CAAAewgFu0HU+AADpe0lEQVR4nOzdeZzN9f////vsZsFg7EP2kZAtvPGhLBUtKOFja3mnNKW0730khlLRzq/IW0kltEhJlvS2paghTGaQnWFmzGb2+f3h6+Q158zMOXOW1zHndr1cuuT5POf1ej3m5cxx7uf5fD1ffsXFxcUCAAAAAAAAAAAAAAAAAAAwgb/ZBQAAAAAAAAAAAAAAAAAAAN/FREYAAAAAAAAAAAAAAAAAAGAaJjICAAAAAAAAAAAAAAAAAADTMJERAAAAAAAAAAAAAAAAAACYhomMAAAAAAAAAAAAAAAAAADANExkBAAAAAAAAAAAAAAAAAAApmEiIwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAgGmYyAgAAAAAAAAAAAAAAAAAAEzDREYAAAAAAAAAAAAAAAAAAGAaJjICAAAAAAAAAAAAAAAAAADTMJERAAAAAAAAAAAAAAAAAACYhomMAAAAAAAAAAAAAAAAAADANExkBAAAAAAAAAAAAAAAAAAApmEiIwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAgGmYyAgAAAAAAAAAAAAAAAAAAEzDREYAAAAAAAAAAAAAAAAAAGAaJjICAAAAAAAAAAAAAAAAAADTBJpdAADAOenp6frtt9906NAhZWVlKSQkRFWrVlV0dLSaN2+uunXrml2iqU6cOKF9+/bpxIkTysrKUnZ2toKDgxUREaH69euradOmaty4sdllwgNefvllzZ8/X5I0aNAgzZo1y+SKcKnKy8vTwIEDdeTIEUnSO++8o/79+5tcFQAA8EbktbKR13ABeQ2uQl4DAAD2IKuVjayGC8hqcBWyGuzlV1xcXGx2EUBld+TIEfXr169C2wYGBiooKEihoaGqUaOGGjRooCuvvFLdu3dXhw4dFBQUZPe++vbtq6NHj9p8bNq0aRo2bFiFarRl69atGjdunM3HFi5cqG7dupW6bVl1ukJ5x79UnDt3TtOnT9eyZcuUn59v8zm33HKLpk+fXuFj2HrtDh06VDNmzKjwPi82duxY/fLLL4a+hIQEp/aZl5enNWvWaM2aNfr555+VlpZW7jY1atRQr169dP311+uaa65RQECAUzXA+/z6668aO3asioqKFBwcrO+++07R0dF2bXvw4EGtWLFCv/32mw4cOKC0tDQVFBQoMjJSTZo0UZcuXXT99derdevWbv4pKq6s92RnNWzYUGvXrnXLvivqzTffVGJiotP7iYuLU0REhM3HVq5cqYcffliSVKtWLa1YsUI1a9Z0+pgAAM8jrxmR11yDvGYbeQ22OJrXioqK9Mgjj6ioqMip49avX19PP/20U/twh61bt2rRokVO72fIkCHq27evCypyLfIaAMBeZDUjspprkNVsI6vBFnuymjvfe7z1faeoqEgbNmzQ+vXr9fvvv+vUqVNKT09XUFCQ6tSpo1atWll+N6pXr252uXYjq8FbsCIj4OUKCgpUUFCgc+fOKSUlRUlJSfr555/19ttvq06dOpowYYJuu+02BQcHO3Wc77//3qVh69tvv3XZvmAtIyND48eP144dO8p8njdPrHK17OxsLVy4UB9//LGSk5Md2jY1NVXffPONvvnmGzVs2FCxsbG69dZb5efn56Zq4UlZWVl68sknLYNcY8eOtWsS44kTJzR16lT9+OOPsnXdR3JyspKTk7Vt2za999576tq1q5566ildccUVLv8Z4JhPP/1UZ86ccXo/kydPLvWxQYMGacGCBfrjjz905swZ/d///Z/eeustp48JALi0kNdgC3nNGnkNpalIXjtw4IC+++47p4/dsmVLp/fhDhs2bNCqVauc3s+VV17pgmpcj7wGAPAEshpsIatZI6uhNBUdW6vs1q1bp7i4OB06dMjqsfz8fB08eFAHDx7UDz/8oLi4OI0aNUr3339/qRP7vAlZDd7C3+wCAFTcqVOnNGXKFI0bN86uK2PKsmXLFp09e9YldRUUFOiHH35wyb5g25tvvllu0JJ8J2xt3LhRN954o2bNmuVw0Crp6NGjevbZZzV27Fin9wXvMHv2bMsy5dWrV9eECRPK3ebCa2r16tU2JzHa8ssvv2j48OFasGCBM+XCSSdPnnRJ0LLHY489ZvnzDz/84JLBRgBA5UFe813kNSPyGspSkby2e/dud5dlqj179phdgtuQ1wAA3oCs5rvIakZkNZSlIlmtMisuLtaUKVM0YcIEm5MYbcnJydH8+fM1ZMgQ7d27180VOoesBm/CioxAJbBjxw6NHj1an3/+ucLDwyu0j/z8fP3444+69dZbna5n06ZNSk1NdXo/sC0lJUWLFy829AUGBmrs2LHq06ePIiMjde7cOR09etQnVoabN2+eZs6caXOyWVhYmHr16qWOHTvqsssuU61atRQSEqKzZ8/qzJkz2r9/v9atW6fdu3dbbb9t2zaNHDlSixYtUr169Tz148DF9u3bp08++cTSHj9+vKpVq1bmNlu2bNF9992n3Nxcq8eio6PVpEkTBQUF6cSJE/rrr79UWFhoebygoEDTp09XcXGx7rzzTtf9IF7M25b192QY7Nq1q/r06aOffvpJkvTyyy+rT58+qlKlisdqAAB4P/KabyGvGZHXUJaK5DWpck/0kzybaTyNvAYA8CZkNd9CVjMiq6EsFc1qrlS7dm01a9bMo8csy//93//ps88+s+oPCgpSTEyMateurby8PCUlJenEiROG5xw+fFi33367Pv30UzVt2tRTJTuErAZvwkRGwCRDhw7VjBkzyn1eUVGRCgoKlJmZqVOnTum3337TwoULdfDgQcPzEhMTNWvWLD333HMVrum7775zSdhauXKl0/u4WMOGDbV27VqX7vNStn37duXn5xv6HnvsMatJU506dfJkWaZ444039O6771r1R0ZGKjY2VsOHD1doaGiZ+5g4caKOHz+uefPmafHixSooKLA8duTIEU2YMEGff/6507eYgDmmTp1q+TuNiorSmDFjynx+WlqaHnvsMatJjFdffbUefvhhqysxU1JS9P7772vBggWW5fUl6dVXX1WXLl3Url07F/0kzunWrZsSEhKc2kd8fLxGjx6tvLw8S1/nzp314osvOlueS5Uc1OzRo4c+/PBDtx1v4sSJlrB19OhRvf/++5o4caLbjgcA8Azymv3Ia0bktX+Q11AeR/PaBSUHWCZNmqT77rvP5fWZwdYqGBs2bFDdunVNqsi1yGsAAGeR1exHVjMiq/2DrIbyOJLVnH2fycvL09ixY/X7779b+kJDQ/Xee++pdu3aTu3bVVasWGE1iTEkJET33XefxowZo6pVqxoe++OPPzR9+nTDCrBpaWl69NFH9cUXX8jf3/tunEtWgzfxvt8QAAb+/v4KDg5WzZo11bp1a40ePVrffPONBg8ebPXcRYsWOTRbvnr16oa2K5bAz8vL048//ujUPlC2Y8eOWfUNGTLE84WYbOXKlTaD1s0336wff/xRt99+e7lB64L69evrueee0+LFi60+FO/Zs0fvvfeeS2qGZ61du1ZbtmyxtO+6665yXxNvv/221W0P7rrrLs2dO9fm7SRq1qypJ598UrNnzzYEj4KCAr322mtO/gTe48yZM5o4caJhEmO9evX09ttve90XESVvM3f55Ze79Xjt2rVTnz59LO33339fJ0+edOsxAQDeg7yGkshr55HXUJ6K5LULSg6wtGnTxqW1mankz1azZs1KM4lRIq8BADyHrIaSyGrnkdVQHmeyWkVMnTrVMIlRkqZNm+Y1C4Xk5uYqLi7O0BcWFqaFCxfqvvvus5rEKElXXnmlPv74Y1177bWG/j///FPffPONW+utKLIavAkTGYFLUHBwsKZPn64uXboY+ouKirRo0SK799O9e3dFRERY2heWwHfGhg0blJGRYWlfeeWVTu0P1rKysgztyMhI1ahRw6RqzHH06FE9++yzVv0TJkzQzJkzbX5otEf79u01f/58hYWFGfrnz59vNbkN3u/tt9+2/DksLEwjRowo8/np6elaunSpoa9Tp0564oknyj3WddddZ7X/zZs36/Dhww5U7J2Ki4v1xBNPGJbCDwgI0GuvvaaaNWuaWJltJb909MSg5l133WX5c25urubNm+f2YwIAvBd5zbeR18hrsI+jee2CkydPKiUlxdDn7gEWT6rMkzQl8hoAwFxkNd9GViOrwT4VzWoV8c0331itdDhixAjdcMMNbjumo77++murVfOffvppdejQocztAgMDNX36dEVFRRn6v/jiC1eX6BJkNXgTJjICl6iAgAA9+eSTVv3r1q2zex/BwcHq27evoe/77793qq5vv/3W0PamDxqVRWFhoaFdMhj4gpkzZyo7O9vQN3jwYD388MNO77tVq1Z66KGHDH05OTlWH6Th3davX68///zT0r7++usNXy7Z8tNPP1m9riZOnCg/Pz+7jjl8+HCrvl9//dWubb3Zxx9/rP/+97+GvtjYWKsv/LxBZmamDh06ZOjzxKBmt27d1KhRI0v7s88+swq2AADfQl7zXeQ18hrKV5G8dkHJVSKioqJUp04dl9ZnppITGSvTJE3yGgDAG5DVfBdZjayG8jmT1Rx1/PhxTZkyxdDXokULPfPM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aofrzMzM1PTp07V3715NmTJFwcHBDm3/ySef6MUXX7T7+dnZ2XrwwQf19ddfy8/PT6NHj9aJEyfs3n7x4sVq2rSpbr/99jKf98svvxi+LKpSpYrblr6/IC8vT5MnT9aWLVsM/ePGjVNERIRbj+0u//nPf6yC+6OPPurVP09+fr4SExMNfReuGtu9e7e+/fZb/fbbbzp06JDS09MVERGh2rVrq3379rrmmmvUp08fp5eq79mzp9577z1Le+vWrcrMzPTq8wYAcB/ymvcgr3kGec2IvGbN2by2Z88ew4qF4eHhaty4sYqKirRhwwatXbtWO3bs0MmTJ5Wdna0aNWqobt266tatm/r166dOnTrZfSwzlDZ4lJqaqhUrVmjLli3as2ePUlJS5Ofnp6ioKDVp0kR9+vTRgAED7L4VphnIawAAb0JW8x5kNc8gqxmR1ax5amzt6NGj+vjjjw19Xbt2rZSr7yUlJem+++5Tbm6upS8wMFD33HOPiVVZI6vBGzGREbiEbdiwQSkpKYa+9u3b21wSvyyBgYEaMGCAYXb7d99951DYunjpe39/f6sr0Sqz48ePa/z48VZBKyAgQP3791ffvn0VHR2t4OBgnThxQhs3btTKlSsNH8bPnTunhx56SB988IF69uxp2E/Dhg113XXXWdqJiYlKSkqytENDQ9W7d2/DNo5eOXip+PXXXw3t8PBwr7qN1M6dO3X33XdbXUFVp04d3XzzzercubNq166t3NxcHTlyRD/99JPVsvHr16/XI488ojlz5pR7vOeee85m0IqJidGNN96oNm3aqEaNGkpNTdXu3bu1YsUKJSQkGJ67fPlyFRUVWa2+V97PuWrVKku7WrVquu2229SxY0fVr19fGRkZ2rJlixYuXKjs7GzL87KzszVz5kwdPHjQErSCg4M1ePBg/c///I/q16+v7Oxs/fnnn1q0aJGOHj1qOO7bb7+t2267rcwgun79ekO7S5cuDgdJe6Wlpem7777TBx98YLUqSIcOHXT//fe75bjulpaWpv/v//v/DH2XX365hgwZYk5BdkpKSjJ86RcYGKjMzEyNHDlSO3bssHp+amqqUlNT9ddff+mLL75Q48aN9cgjjzj171eHDh0UFhZmed3n5+fr559/9ql/EwEA/yCveQfymueQ14zIa9aczWslJ/q1bt1aX331ld58802reiTp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abr//vuVmZnpidLtQl4DAHgaWc17kdU8i6z2D7Kabe4eW5POj699/fXXhr7rr7/e626zXBHlve9s375d06dPN6zA603IavBGTGQETLJ8+XLFxMSU+1+7du3UvXt3DRkyRE899ZRWrVpldYW2JA0ZMkTDhw93qqaSy/Nu2rTJakJLSadOndKvv/5qaf/rX/9SjRo1nKrjUrFnzx6rK1RGjRrl0JVMQUFBevTRRw19BQUFWrZsmStKrFSysrKs+kp+WW+Pjz/+2K7fPVv/lbbk9zfffGM1QODo5K969erppptuMvQtXbrU5nMvvm2CJNWtW1d33HGHQ8e7/fbbVa9ePUPfxbfAKE/v3r3VpEmTcp/XrFkzq1ssR0ZGasCAAXYdp2nTpoZ2We9JJW/DFRAQYLW0vjPKm8gonb+q95VXXtHgwYP1119/uezYnlBYWKhPPvnE0NeyZUv17t3bpIocs3fvXqu++++/X5988on69+9v9cWAn5+fOnXqpHnz5umJJ56wWkVz7ty5pQa4sjRu3NjQLiwsLHXAFQDgvchrlz7ymmeR1/5BXrPN2bxma8XC8PBwvf3225o5c6bNW5+FhIRo4MCB+vLLL63eQ4uKivT0008bbg1nJlvZo0OHDvrqq69099132xxsrlu3rh5++GF9+umnVq+X/fv366233nJbvY4irwEAXIWsdukjq3kWWe0fZDXb3D22JkmLFy82rEArqcxbgF9Kjh8/XubjBQUF2rhxo+644w6vyqAXkNXgjZjICFQCw4YN09SpU53ez1VXXaXatWtb2vn5+frxxx/L3Ob77783LDHs6qXvvdmWLVus+m677TaH99OzZ0+rD4S//PJLheuqrEp+wJWsl7c2y9atWw3t5s2bV2hp/r59+xrahw4d0smTJw19KSkpVqFi6NCh5V69VVJAQIDV6/Xo0aN2X7F41VVX2fU8f39/qyX827VrZ3e9Jbct6+qbkrXXqVNHQUFBdh3HHq1atdL777+vDRs2aOfOndq8ebMWLlyo0aNHWwXKgwcPaty4cTZv2+Ct1qxZoxMnThj6br/9dpOqcUx6erpat26tBg0aWF5b//73v/Xggw/atYT9v//9b917772GvuLiYr355psO12Ir4HMlMAD4NvKaOchrnkVeO4+85r68lpWVpQ4dOqhWrVqSztf+2muv2TWQFxISotdee83qvCQnJ5e6WounhYeHq2XLlpZB5SZNmuj999+3GiS1pXXr1po7d65hJRrp/GDhqVOn3FKvI8hrAABvRVYzB1nNs8hq55HVzBtby8vL0xdffGHo69y5s82L0S5Fo0eP1tKlS/XLL79o586dWrt2rV555RWbf9fLli3TI4884jW/g2Q1eKtAswsAUHGdO3dWbGyszaV7K8Lf31/XX3+9PvroI0vf999/r1tuuaXUbVauXGn5c0hIiPr37++SWi7WsGFDrV271uX7dda2bdsM7Xr16umyyy5zeD9+fn7q2rWrjhw5Yun7448/lJ+f79IPiq4ydOhQzZgxwyX7Gjt2rN3B0tatHbxlSent27cb2hV5HUiyuhXChX1ffEXntm3bVFxcbHhO9+7dK3S8rl27WvX9+uuvatiwYbnb2ro1V2lKTvIreVVNWRz5Hbj4d0hy/e0RSoaqmjVrqlu3burWrZvGjRun++67T/v377c8npqaqkcffVRffPGFXR/4zfbpp58a2jVq1NDgwYNNqsYx1apVs/zblZ+fr2PHjjn8hceDDz6ob7/9VocPH7b0rVu3TikpKQ69li4MrF6MsAUAvom8Zi7ymvPIa0bkNWuezGtdunTRZ599Jun8a+vMmTMOfeYPCAjQtGnTNHDgQBUWFlr6v/jiC4dXYXGHSZMmadKkSZLOT7AMCAgo95ZxF2vdurXuvvtuw20ac3Nz9c033+jf//63q8t1CHkNAOBtyGrmIqs5j6xmRFaz5k1ja6tWrVJKSoqh71JZRMMeJW8D3rBhQzVs2FCDBw/WF198ocmTJxtWBP7xxx/10UcfecU5IKvBWzGREfByAQEBCgkJUWRkpOrWraumTZuqffv26tWrV4WuSilPybB1YQl8W1+eHj16VL///rulffXVVysiIsLlNXmrkktF2/qgbK+2bdsalrzPzc1VSkqK6tatW+F9VjZVq1a16ktNTXV4P40bN9Z1111n13M3bNigc+fOlfmc9PR0qyu79u7dqwcffNDh2kqGKMk6QNhaoryir70rrrjCqs+e2ydLUlRUVIWOKdn+uyxNySXJy5KWlmZouzpslaVJkyb6+OOPdeuttxr+jv788099++23Vrc28DanTp3S5s2bDX033XSTVVC+FAQFBVXoC4+AgACNHTtWcXFxlr7i4mJt3LjRob+/0NBQhYaGGt47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rav58+frP//5j66++mqFhoaW+tyAgAB17dpVr7/+ur788ktdeeWVHqy08urbt68++eQTLV++XBMmTFBMTIz8/PzK3S4kJERdunSxXIE1b948/c///E+F6+jSpYtWrFihl19+WZ07dy53MlyLFi301FNPaeXKlerdu7dDx/Lz89MDDzyg1atXa9y4capfv36Zz4+OjtZ9992ntWvX6q677pK/f+X6KODn52f1BdG6desqtJ/Y2Fh9//33GjlypKpXr17qc/39/dWuXTtNnTpVK1euVJcuXRw+nhlK3jJCOr/CSWUwYsQIrVmzRvfee6/q1KlT5nNr1aqlu+66Sz/88IPGjRvn1HHXr19vaHvjKi8AgMqHvGYf8pr5yGvkNVfltZCQEP3f//2fvv76aw0ePFjh4eFlPr958+Z6+umntWrVKv3rX/9y+Hie1qJFC3355Zd69dVXdeWVV5b5OggKCtI111yjBQsW6J133rkkVjohrwEAfAVZzT5kNfOR1chqrspqF1y8wrxUOSYySlKdOnX00Ucfae7cueratWuZE/fCw8N13XXXadmyZXrjjTdUrVo1D1ZaMWQ1eAu/4uLiYrOLAIDKKC8vTzt27NDx48eVkpKivLw8Va1aVZdddpnatm1b4eW44ZisrCwlJibq4MGDSk9PV1ZWliQpLCxMderUUePGjdWiRQu3TuDKzMzUjh07lJycrNTUVBUUFCgiIkJ169ZVu3btXL6MeGJiovbt26eUlBSlp6crNDRUderUUevWrb36ah9X2b9/vwYNGqQLH3GqVq2qTZs2OfV3XFRUpF27dmn//v1KTU1VXl6eatSooaioKHXo0MElg0UvvviiPvnkEwUFBVndJq0y6NChg86dO6fhw4frpZde8uix9+/frz179ig1NVXp6ekKCQlR7dq11apVK7u/lClPfHy8brvtNku7fv36+vHHHx1e1RMAAHgGec07kNfIa67IawUFBdq9e7f279+vtLQ0ZWdnKywsTA0aNNAVV1yhhg0bOl23mXnt7Nmz+v3333Xy5EmlpaWpqKhI1atXV5MmTdS+fftyJ3Lag7wGAAC8BVnNO5DVyGquyGqeYGZWy8zM1G+//aYTJ04oLS1NwcHBqlGjhho1aqT27dsrKCjI6WOQ1eCL+NsHADcJDg5Wt27dzC7D54WHh+vKK6809cq8iIgIp65Cc1SLFi3UokULjx3P2zRr1ky9evXSzz//LOn8LZQ3bNig/v37V3if/v7+at++vdq3b++qMq2kpqZK0iVxVZajzp07Z7kCz4yfr1mzZm7/ouHbb781tEePHk3QAgDAi5HXvAN5zfe4I68FBgZW6rxWvXp19enTx237J68BAABvQlbzDmQ13+OOrOYJZma1iIgIspqTyGqwpXKteQsAACDp9ttvN7SXLl1qUiX2u3ClWPPmzU2uxPX+/PNPy58r48+Xl5enFStWWNqhoaEaPny4iRUBAAAA3ou85l3IawAAAAAkspq3IavBVzGREQAAVDq9evXSFVdcYWmvX79eR48eNbGisq1bt06HDx+WJI9eYegpCxculHR+ZcuePXuaXI3rrVq1SqdPn7a0R4wYoerVq5tYEQAAAOC9yGvehbwGAAAAQCKreRuyGnwVExkBAECl4+fnpwcffNDSLioq0qeffmpiRaX7448/9NRTT0mSqlatqmHDhplckesUFhbqzTff1KpVqyRJgwYNUt26dU2uyvUWLVpk+XNYWJjuueceE6sBAAAAvBt5zTuQ1wAAAABcjKzmHchq8HVMZAQAAJXS1VdfrY4dO1ran332mTIzM02syFpycrLGjBmjtLQ0BQQEaPr06apZs6bZZbnMRx99pHfeeUeS1KRJEz377LMmV+R6O3bs0I4dOyztsWPHqlatWiZWBAAAAHg/8pr5yGsAAAAASiKrmY+sBl/HREYAAFBpPf300/L3P/9x5+zZs/r4449Nrsiodu3auuOOO9SwYUN98MEHGjBggNkludSIESPUqFEj9e/fX4sXL65UQfKCt99+2/Ln2rVrc8UYAAAAYCfymrnIawAAAABsIauZi6wGX+dXXFxcbHYRAAAA7vLCCy/os88+kyRFRkZq7dq1Cg8PN7mqf+Tl5UmSgoODTa7EPTIzMxUREWF2GW7xxx9/aPjw4Zb2a6+9phtvvNHEigAAAIBLC3nNXOQ1AAAAALaQ1cxFVoMvY0VGAABQqT3yyCOKioqSJKWlpWn+/PkmV2QUHBxcaYOWpEobtKTz4eqCHj16ELQAAAAAB5HXzEVeAwAAAGALWc1cZDX4MiYyAgCASi0yMlJxcXHy8/OTJM2bN0/Hjx83uSpc6lavXq2tW7dKOv8amz59uskVAQAAAJce8hrcgbwGAAAAOIesBncgq8EeTGQEAACVXp8+fTR27FhJ0rlz5/Tqq6+aXBEuZXl5eXrllVcs7SlTpqhevXomVgQAAABcushrcCXyGgAAAOAaZDW4ElkN9vIrLi4uNrsIAAAAAAAAAAAAAAAAAADgm1iREQAAAAAAAAAAAAAAAAAAmIaJjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAAAAKYJNLsAOCYvL09paWmWdkhIiAICAswrCAAAAKgECgsLlZuba2lHRkYqODjYxIpwKSKvAQAAAK5FVoMrkNUAAAAA13JXVmMi4yUmLS1Nhw8fNrsMAAAAoNKrU6eO2SXgEkNeAwAAANyPrAZHkdUAAAAA93NFVuPW0gAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAAAAKbh1tKXmJCQEEO7UaNGCgsLM6kamCExMVGFhYUKCAhQixYtzC4H8Ahe9/A1vObhi8x+3WdnZxtuM1XyczdgD/KabzP7fQwwA697+Bpe8/BFZr/uyWpwBbIazH4vAzyN1zx8Ea97+BqzX/PuympMZLzEBAQEGNphYWGKiIgwqRqYwd/fX4WFhfL39+fvHj6D1z18Da95+CJve92X/NwN2IO85tu87X0M8ARe9/A1vObhi7ztdU9WQ0WQ1eBt72WAu/Gahy/idQ9f422veVdlNW4tDQAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATBNodgEAAAAAAO+QlJSkpUuXatu2bTp8+LAyMjIUEhKi6OhoderUSTfffLM6depkdpkWc+fO1euvv25pr1mzRtHR0SZWBAAAAAAAAAAAgIpgIiMAAAAA+LjMzEzFxcVp2bJlKi4uNjxWUFCghIQEJSQkaPHixRowYICmTZum6tWrm1TteYmJiXr77bdNrQEAAAAAAAAAAACuwa2lAQAAAMCHpaSkaNSoUVq6dKnVJEZbVq9ercGDB+vgwYPuL64UhYWFevrpp5WXl2daDQAAAAAAAAAAAHAdVmQEAAAAAB9VUFCg2NhYJSQkGPpbtmypq6++WlFRUTp9+rTWrVunxMREy+PHjx9XbGysPv/8c0VERHi6bM2bN0/x8fEePy4AAAAAAAAAAADcg4mMAAAAAOCj5syZox07dljaQUFBeuGFFzR8+HDD8x577DEtWbJEL730knJzcyVJSUlJiouLU1xcnEdrTkpK4pbSAAAAAAAAAAAAlQy3lgYAAAAAH3T69GnNmzfP0Dd16lSrSYwX3HbbbXr11Vfl5+dn6fvyyy/1999/u7XOixUVFenZZ5+1TKYEAAAAAAAAAABA5cBERgAAAADwQYsXL1Z2dral3bt3bw0ZMqTMba699lqNGTPG0i4sLNTcuXPdVaKVDz/80LCC5MWTKgEAAAAAAAAAAHDpYiIjAAAAAPig5cuXG9p33nmnXduNHz9eAQEBlvYPP/yg/Px8l9Zmy4EDB/TGG29Y2r1791aDBg3cflwAAAAAAAAAAAC4HxMZAQAAAMDH7Nu3T0ePHrW0IyMj1a1bN7u2rVu3rjp06GBpZ2RkaPPmza4u0aCoqEhPP/205ZbS4eHhmjJliluPCQAAAAAAAAAAAM9hIiMAAAAA+JitW7ca2p07dzasslierl27GtobNmxwSV2lWbhwoeGW0o8//rjq16/v1mMCAAAAAAAAAADAc5jICAAAAAA+Zu/evYZ2mzZtHNq+5PN37drldE2l+fvvvzVr1ixLu2vXrho5cqTbjgcAAAAAAAAAAADPYyIjAAAAAPiYpKQkQ7tZs2YObd+4cWND+8CBA07XZEtxcbGeeeYZ5eTkSJJCQ0M1bdo0+fn5ueV4AAAAAAAAAAAAMEeg2QUAwKUgOydfp9POKSevUFWCAxQVGaqwKkFml+UTsnPydSotT1nn8hUeWqzsnHzOPQAATjp27JihXbduXYe2r1OnjqGdlpamrKwshYeHO13bxRYuXKhff/3V0p40aZLVJEoAgDnIaubhOwoAAAAA8D5kNfPwHQVQeTCREQBKUVxcrJ1Jp/XtxgPasuuEioqKLY/5+/vpX23ra1DPJmrXPIpVgVysrHP/1jfHOPcAADgpJSXF0I6KinJo+xo1asjf319FRUWWvtTUVJdOZDx06JDhltIdOnTQuHHjXLZ/AIDjyGrm4TsKAAAAAPA+ZDXz8B0FUDkxkREAbEg8kqZZi7fr0IkMm48XFRVrY/wxbYw/psb1qurh/+2kFtGRni2ykuLcAwDgXllZWcrLyzP0RUREOLQPPz8/hYaGKisry9KXnp7ukvqk819CPfvsszp37pwkKTg4WHFxcfL393fZMQAAjiGrmYdzDwAAAADeh6xmHs49UHkxkREAStiRcEpxC35RTl6hXc8/dCJDT7/zXz1zR1d1jKlT/gYoFeceAAD3y83NteoLDQ11eD9hYWGGiYw5OTlO1XWxRYsW6ZdffrG0Y2Nj1bx5c5ft31MSExOZfOlD8vPzLf+Pj483uRrAtRKPndOidSeVV1Bc/pN1Pqs9+dYGjb6mrlo0cPzfGPyDc+9deK+HLzL7dX/xKvAAAADegjFN83DugcqNiYwAcJHEI2kOffC5ICevUHELftH0+3txNUcFce4BAPCMCwORFwsMdDwaBgQEGNoFBQUVrulihw8f1muvvWZpX3755Ro/frxL9u1phYWFKix07LMNKgdbv2fApepYSp4+XpesfDsn0l2QV1Csj9ed1J39a6tBzWA3VVe5ce69G+/18EW87gEAABjTNBPnHqj8mMgIAP9PcXGxZi3e7vAHnwty8go1e/F2vfXYNfLz83NxdZUb5x4AAM+xNbGuIqsGltzGFSulXLildHZ2tqTzEyzj4uIqNNHSGwQEBLAiow+5eGA/KCjIxEoA1ykuLtaXW046PJHugvyCYn21JVUTb25IVnMQ59478V4PX2T2676oqIiLgwAAgNdgTNM8nHvAN1yao0EA4AY7k07r0IkMp/bx94kM7Uo6o3YtolxUlW/g3AMA4Dm2JgUWFhY6PFmw5GosrhjUXLx4sbZu3Wpp33333WrTpo3T+zVLixYtFBERYXYZ8JD4+Hjl5+crKChI7du3N7scwCXiE5N1Ku2gU/s4mZYv//CGZDUHce69E+/18EVmv+4zMzOVkJDg8eMCAADYwpimeTj3gG9gaQgA+H9Wbjzokv18u+mAS/bjSzj3AAB4TnCw9S0mK3KLuJK3kra1X0ccPXpUM2fOtLSbN2+u+++/36l9AgCcQ1YzD+ceAAAAALwPWc08nHvANzCREQAkZefka/Ou4y7Z1+adx5Wd4/hkAF/FuQcAwLOqVq1qdeuMrKwsh/dTcpvw8HCn6rr4ltL+/v6Ki4tzenIkAKDiyGrm4dwDAAAAgPchq5mHcw/4DiYyAoCk02nnVFRU7JJ9FRUV68zZHJfsyxdw7gEA8KyAgABVq1bN0Jeenu7QPnJycpSXl2foq1WrVoVr+vTTT7V582ZLe9y4cerQoUOF9wcAcB5ZzTycewAAAADwPmQ183DuAd8RaHYBAOANcvIKXbq/c7kF5T8Jkjj3AACYoV69ejp79qylffr0abVs2dLu7ZOTkw3t4OBgVa9evUK1pKen65VXXrG0AwMDVa9ePS1evLjcbUuuCvnNN98oMjLS0m7atKm6d+9eoboAwNeR1czDuQcAAAAA70NWMw/nHvAdTGQEAElVggNcur/QEN5e7cW5BwDA8xo1aqSEhARL+8iRIw5tX/L5TZo0qXAt6enphgmJBQUFmjFjRoX2NXv2bEN76NChTGQEgAoiq5mHcw8AAAAA3oesZh7OPeA7uLU0AEiKigyVv7+fS/YV4O+nWtWruGRfvoBzDwCA58XExBjaSUlJDm2/f/9+Q7t58+ZO1wQA8C5kNfNw7gEAAADA+5DVzMO5B3wHExkBQFJYlSD9q219l+yre7v6CqsS5JJ9+QLOPQAAnte+fXtDOz4+3qHtf//9d0O7Y8eOzpYEAPAyZDXzcO4BAAAAwPuQ1czDuQd8B+ulAsD/M6hnE22MP+b0fm7o0dQF1fgWzj0AAJ511VVXKSgoSPn5+ZKkP/74Q2fPnlX16tXL3bawsFAbN2409PXo0aPCtURHRxtuc+2Ivn376ujRo5b2mjVrFB0dXeFaAABGZDXzcO4BAAAAwPuQ1czDuQd8AysyAsD/0655lBrXq+rUPi6rV1Vtm9dyUUW+g3MPAIBnhYeHq1evXpZ2QUGBli1bZte2a9as0ZkzZyztli1bqmXLli6vEQBgPrKaeTj3AAAAAOB9yGrm4dwDvoGJjADw//j5+enh/+2kKsEBFdq+SnCAJv1vJ/n5+bm4ssqPcw8AgOcNGzbM0J4zZ46OHSv7itb09HTNnDnT0Dd8+HCX1wYA8A5kNfNw7gEAAADA+5DVzMO5B3wDExkB4CItoiP1zB1dHf4AVCU4QM/c0VUtoiPdU5gP4NwDAOBZ/fr1U+vWrS3ttLQ0TZgwQadPn7b5/KysLD300EM6dOiQpa9+/foaMWJEqcdYtmyZYmJiDP9t3brVdT8EAMDtyGrm4dwDAAAAgPchq5mHcw9UfkxkBIASOsbU0fT7e9m9NPVl9apq+v291DGmjpsrq/w49wAAeI6fn58mT54sf/9/YmFCQoKGDBmiJUuWKDMzU5KUm5ur77//XsOGDdOmTZsM+3j++ecVEhLi0boBAJ5HVjMP5x4AAAAAvA9ZzTyce6ByCzS7AADwRi2iI/X2Y9doV9IZfflTon7ZfdLweIC/n7q3q68bejRV2+a1WILahTj3AAB4TseOHTV58mS98MILlr7k5GQ999xzeu6551S1alVlZmaquLjYatt7771X/fr182S5AAATkdXMw7kHAAAAAO9DVjMP5x6ovJjICACl8PPzU7sWUWpcr6rG/N/3hsfee7Kf6keFm1RZ5ce5BwDAcy7cGjouLk45OTmGxzIyMqye7+/vr9jYWE2cONEj9QEAvAdZzTycewAAAADwPmQ183DugcrJlImMSUlJWrp0qbZt26bDhw8rIyNDISEhio6OVqdOnXTzzTerU6dOZpRm09y5c/X6669b2mvWrFF0dLSJFQEwW1gV5oGbhXMPAIDrjRgxQj169NBrr72mdevWWU1ovKBnz5564IEHvCqvAQC8A1nNPJx7AKj8GFcDAODSQ1YzD+ceuHR59Lc3MzNTcXFxWrZsmdWtyQoKCpSQkKCEhAQtXrxYAwYM0LRp01S9enVPlmglMTFRb7/9tqk1AAAAAIC7NWrUSLNnz1Z2dra2bdumkydPKiUlRVWqVFGDBg3UqVMnRUVFObTPW265RbfccoubKpbWrl3rtn0DAAAAgNkYVwMAAADgSzw2kTElJUV33HGHEhIS7Hr+6tWrtWvXLi1YsEBNmjRxb3GlKCws1NNPP628vDxTjg8AAAAAnhYWFqY+ffqYXQYAAAAA+DTG1QAAAAD4Go9MZCwoKFBsbKxV2GrZsqWuvvpqRUVF6fTp01q3bp0SExMtjx8/flyxsbH6/PPPFRER4YlSDebNm6f4+HiPHxcAAAAAAAAAAAC+iXE1AAAAAL7IIxMZ58yZox07dljaQUFBeuGFFzR8+HDD8x577DEtWbJEL730knJzcyVJSUlJiouLU1xcnCdKtUhKSmLpewAAAAAAAAAAAHgU42oAAAAAfJG/uw9w+vRpzZs3z9A3depUq7B1wW233aZXX31Vfn5+lr4vv/xSf//9t1vrvFhRUZGeffZZS+gDAAAAAAAAAAAA3I1xNQAAAAC+yu0TGRcvXqzs7GxLu3fv3hoyZEiZ21x77bUaM2aMpV1YWKi5c+e6q0QrH374oeFKt4vDHwAAAAAAAAAAAOAOjKsBAAAA8FVun8i4fPlyQ/vOO++0a7vx48crICDA0v7hhx+Un5/v0tpsOXDggN544w1Lu3fv3mrQoIHbjwsAAAAAAAAAAADfxrgaAAAAAF/l1omM+/bt09GjRy3tyMhIdevWza5t69atqw4dOljaGRkZ2rx5s6tLNCgqKtLTTz9tWfo+PDxcU6ZMcesxAQAAAAAAAAAAAMbVAAAAAPgyt05k3Lp1q6HduXNnw9Vg5enatauhvWHDBpfUVZqFCxcalr5//PHHVb9+fbceEwAAAAAAAAAAAGBcDQAAAIAvc+tExr179xrabdq0cWj7ks/ftWuX0zWV5u+//9asWbMs7a5du2rkyJFuOx4AAAAAAAAAAABwAeNqAAAAAHyZWycyJiUlGdrNmjVzaPvGjRsb2gcOHHC6JluKi4v1zDPPKCcnR5IUGhqqadOmyc/Pzy3HAwAAAAAAAAAAAC7GuBoAAAAAX+bWiYzHjh0ztOvWrevQ9nXq1DG009LSlJWV5XRdJS1cuFC//vqrpT1p0iSrsAcAAAAAAAAAAAC4C+NqAAAAAHyZWycypqSkGNpRUVEObV+jRg35+xtLTE1Ndbquix06dMiw9H2HDh00btw4lx4DAAAAAAAAAAAAKAvjagAAAAB8mdsmMmZlZSkvL8/QFxER4dA+/Pz8FBoaauhLT093urYLiouL9eyzz+rcuXOSpODgYMXFxVmFPAAAAAAAAAAAAMBdGFcDAAAA4Ovclixyc3Ot+kqGJ3uEhYUZ2jk5ORWuqaRFixbpl19+sbRjY2PVvHlzl+0fAAAAAAAAAAAAKA/jagAAAAB8XaC7dpyfn299sEDHDxcQEGBoFxQUVLimix0+fFivvfaapX355Zdr/PjxLtm3JyUmJnKlm4+58LuVn5+v+Ph4k6vxDVk5hVZ9u3fvVniVABvPhitx7uGreK+HLzL7dV9UVOTxYwIAAAAAcAHjap7D2JrvMft7J8DTeM17HmOa5uHcw1eZ/V7vrnE1t01kLCy0frOoSCgouY0rTsSFpe+zs7MlnQ+CcXFxFQqEZissLLR5ruEbbH2xAdfLz7f+HcvPz1d+ABMe3I1zD/BeD9/E6x4AAAAA4GsYV/McxtZ8G987wdfwmvcMxjTNw7kHKtd7vdsShq3wUlhY6HCoKXmyg4KCnKpLkhYvXqytW7da2nfffbfatGnj9H7NEBAQwFVjPubi3wlX/D6gfEGF1r9jQUFBCgriKg5349zDV/FeD19k9uu+qKiIQQwAAAAAgGkYV/McxtZ8j9nfOwGexmve8xjTNA/nHr7K7Pd6d42ruW0iY3BwsFVffn6+QkJCHNpPySXvbe3XEUePHtXMmTMt7ebNm+v+++93ap9matGihSIiIswuAx4UHx+v/Px8BQUFqX379maX4xPOZuZKOmToa9OmjapHOPZ+Bsdx7uGreK+HLzL7dZ+ZmamEhASPHxcAAAAAAIlxNU9ibM33mP29E+BpvOY9jzFN83Du4avMfq9317ia2y43qlq1qvz8/Ax9WVlZDu+n5Dbh4eFO1XXx0vf+/v6Ki4tzOsQBAAAAAAAAAAAAFcW4GgAAAABf57aJjAEBAapWrZqhLz093aF95OTkKC8vz9BXq1atCtf06aefavPmzZb2uHHj1KFDhwrvDwAAAAAAAAAAAHAW42oAAAAAfJ3bbi0tSfXq1dPZs2ct7dOnT6tly5Z2b5+cnGxoBwcHq3r16hWqJT09Xa+88oqlHRgYqHr16mnx4sXlblvy6rVvvvlGkZGRlnbTpk3VvXv3CtUFAAAAAAAAAAAAMK4GAAAAwJe5dSJjo0aNDPfDPnLkiEPbl3x+kyZNKlxLenq6ITgVFBRoxowZFdrX7NmzDe2hQ4cSuAAAAAAAAAAAAFBhjKsBAAAA8GVuu7W0JMXExBjaSUlJDm2/f/9+Q7t58+ZO1wQAAAAAAAAAAAB4G8bVAAAAAPgyt05kbN++vaEdHx/v0Pa///67od2xY0dnSwIAAAAAAAAAAAC8DuNqAAAAAHyZW28tfdVVVykoKEj5+fmSpD/++ENnz55V9erVy922sLBQGzduNPT16NGjwrVER0cbluN3RN++fXX06FFLe82aNYqOjq5wLQAAAAAAAAAAAMDFGFcDAAAA4MvcuiJjeHi4evXqZWkXFBRo2bJldm27Zs0anTlzxtJu2bKlWrZs6fIaAQAAAAAAAAAAALMxrgYAAADAl7l1IqMkDRs2zNCeM2eOjh07VuY26enpmjlzpqFv+PDhLq8NAAAAAAAAAAAA8BaMqwEAAADwVW6fyNivXz+1bt3a0k5LS9OECRN0+vRpm8/PysrSQw89pEOHDln66tevrxEjRpR6jGXLlikmJsbw39atW133QwAAAAAAAAAAAABuxrgaAAAAAF/l9omMfn5+mjx5svz9/zlUQkKChgwZoiVLligzM1OSlJubq++//17Dhg3Tpk2bDPt4/vnnFRIS4u5SAQAAAAAAAAAAANMwrgYAAADAVwV64iAdO3bU5MmT9cILL1j6kpOT9dxzz+m5555T1apVlZmZqeLiYqtt7733XvXr188TZQIAAAAAAAAAAACmYlwNAAAAgC/yyERGSZYl7OPi4pSTk2N4LCMjw+r5/v7+io2N1cSJEz1SHwAAAAAAAAAAAOANGFcDAAAA4Gvcfmvpi40YMUIrVqzQwIEDVaVKlVKf17NnTy1atIiwBQAAAAAAAAAAAJ/EuBoAAAAAX+KxFRkvaNSokWbPnq3s7Gxt27ZNJ0+eVEpKiqpUqaIGDRqoU6dOioqKcmift9xyi2655RY3VSytXbvWbfsGAAAAAAAAAAAAbGFcDQAAAICv8PhExgvCwsLUp08fsw4PAAAAAAAAAAAAXBIYVwMAAABQ2Xn01tIAAAAAAAAAAAAAAAAAAAAXYyIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAAAAAAAAAAAAAAYBomMgIAAAAAAAAAAAAAAAAAANMwkREAAAAAAAAAAAAAAAAAAJiGiYwAAAAAAAAAAAAAAAAAAMA0TGQEAAAAAAAAAAAAAAAAAACmYSIjAAAAAAAAAAAAAAAAAAAwDRMZAQAAAAAAAAAAAAAAAACAaZjICAAAAAAAAAAAAAAAAAAATMNERgAAAAAA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AJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIR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5s19foKb4evd91Ymk4mNGzcmrgYKq60j26fvueeei7qaigM8m3xy7NNyrqcUpX7dd3V1FX2fAAAApJEkyNjU1BQPPPBAPPnkk7F169bYu3dvVFdXx+TJk6OhoSHOO++8aGhoKGpNmzZtikcffTSeeuqp2Lp1a+zevTu6u7vjyCOPjA996EMxd+7cWLBgQRx//PFFrQsAACCfstm+AYjDCdv13qaYC4zd3d3x9a9/PR566KGc/tGjR8edd94ZVVVVRavl/WSz2QMeb4a/AwWGYTjJZPqe2zKZTGQqhE0KzbEfPJzrKUVe92lZWwMAAIa7ogYZW1tbY/ny5bFq1aro7u7OeayzszMaGxujsbExVq5cGeeee27ccsstMWbMmILW1NTUFMuWLYv169cf8PHt27fH9u3b4z/+4z/ie9/7XpxzzjmxdOnSmDx5ckHrAgAAKIQD3X0xm832+66MvRcxKysrB1TXocpms3H99dfHT3/60z77/853vhPHHHNMUeo4FBUVFe7IWELe+54o1vsBUqnM9j23VVZWRmWluwIWmmOflnM9pSj1676rq6vkvxxkbQ0AACgVRQsy7tq1Ky6//PJobGw8pOc/+uijsWnTprj77rtj2rRpBanp4Ycfjuuvvz7eeeedQ95m9erVsWHDhrjzzjvjtNNOK0hdAAAAhXKguxVmMpmorq7u1zi9f0q6GHdB7OjoiC9/+cvx2GOP5fSPGDEibr/99jj99NMLXkN/zJgxI0aNGpW6DIpk48aNkclkorKyMmbPnp26HCio3a37ImJLTt8JJ5wQY0b171pC/zn2aTnXU4pSv+5bW1sPeV1pOLK2BgAAlJKiBBk7Oztj8eLFfSZaM2fOjLPPPjvq6+ujubk5Vq9eHZs3b+55fPv27bF48eK477778r74s3bt2vjKV77S5y4iM2fOjDPOOCOOPvroyGazsXXr1lizZk28/vrrPc9paWmJz3/+8/GTn/wkZs6cmde6AAAACmn06NFRVlaWcyePtra2fs+52tractp1dXV5qe9gdu3aFVdffXU8++yzOf2VlZXxrW99K84999yC7h8AAKCYrK0BAAClpihBxhUrVsSGDRt62pWVlXHjjTfGJZdckvO86667Lu6///646aabYt++fRHx+9vTL1++PJYvX563etrb2/tMtMaOHRu33HJL/Omf/mmf52ez2fjJT34St956a+zfvz8ifr9ot2TJkvjZz34WFRV+ugUAABgaKioq4ogjjojdu3f39O3ZsycmTJhwyGN0dHT0zI3eNW7cuLzV2Nsrr7wSV155ZWzZknsHqurq6rjzzjvj7LPPLti+AQAAUrC2BgAAlJryQu+gubk5vv/97+f03XzzzX0mWu+6+OKL45vf/GaUlZX19D300EPx6quv5q2mH/zgB7Fz586edl1dXfzoRz864EQr4vcLfZdddll897vfzZlYNTU1xapVq/JWFwAAQDFMnDgxp93c3Nyv7d87n4r4/c9KjxkzZsB1HcjTTz8dixYt6hNiHDVqVPzTP/2TECMAADDsWFsDAABKUcGDjCtXroz29vae9llnnRXnn3/++26zYMGC+MxnPtPTzmazcdddd+WtpgcffDCnfe2118b06dM/cLuzzjorLr300vcdCwAAYLCbMmVKTvu1117r1/a9nz9t2rSBlnRAa9asiSuuuCJaWlpy+o866qj4l3/5lzjttNMKsl8AAICUrK0BAAClqOBBxt6TkSuuuOKQtrvyyitzvqH1yCOP5Nyu/nA9//zzsXXr1p52bW1tXHjhhYe8/WWXXZbTfuaZZ6K1tXXAdQEAABTLrFmzctpNTU392v6ll17KaR/K4lV/PfbYY7F48eLo6OjI6Z82bVqsXLkyjj/++LzvEwAAYDCwtgYAAJSiggYZX3zxxXj99dd72mPHjj3kO2ZMmDAhTj755J723r17Y+3atQOu6bnnnstpn3zyyVFTU3PI20+fPj3q6up62tlsNrZv3z7gugAAAIpl9uzZOe2NGzf2a/tnnnkmpz1nzpyBlpTj17/+dSxZsqTPgttHPvKRWLlyZZ87SgIAAAwX1tYAAIBSVdAg47p163Lap5xySs43wT7I3Llzc9pr1qwZcE3btm3LaU+ePLnfY9TW1ua0d+/ePaCaAAAAiunUU0+NysrKnvazzz57yPOabDYbjz/+eE7fGWeckbfaXnjhhfjiF7/YJ8Q4b968uPvuu+OP/uiP8rYvAACAwcbaGgAAUKpGFHLw559/Pqd9wgkn9Gv73s/ftGnTgGu65ppr4nOf+1zs2LEjduzYEUcccUS/tu/o6Ihdu3bl9PV3DAAAgJTq6urizDPPjNWrV0dERGdnZ6xateqQfq7ssccei7feequnPXPmzJg5c2Ze6tq/f39ce+210dbWltP/iU98Ir797W9HVVVVXvYDAAAwWFlbAwAASlVB78jY1NSU0z722GP7tf3UqVNz2i+//PKAa4qIqKqqiqlTp8bcuXPjuOOO69e2v/nNbyKbzeb0TZgwIS91AQAAFMtFF12U016xYkWfu2z0tmfPnrjtttty+i655JK81XT77bfHCy+8kNM3d+5cIUYAAKBkWFsDAABKVUGDjL0Xwfo7KRk/fnxOu6Wlpc+dOYrt3nvvzWn/yZ/8SYwZMyZRNQAAAIdn/vz5OYtPLS0tcfXVV0dzc/MBn9/W1hZLliyJLVu29PRNmjQpFi1adNB9rFq1KmbNmpXzr/fPpL3r9ddfj3vuuSenb8KECXHnnXcKMQIAACXD2hoAAFCqCvrT0r1vE19fX9+v7Y888sgoLy+Prq6unr6333476urq8lJff61duzbWrFmT0/eJT3wiSS0AAAADUVZWFsuWLYvLLrusZ87V2NgY559/fixZsiQWLlwYo0aNin379sXq1avj29/+drz00ks5Y9xwww1RXV2dl3r++Z//OTo7O3P6Ghoa4pe//OVhj3naaaf1++4lAAAAKVlbAwAASlXBgoxtbW2xf//+nL5Ro0b1a4yysrIYOXJkzjfF9uzZk5f6+mv37t1xww035PRVV1fn9WfUAAAAimnOnDmxbNmyuPHGG3v6du7cGUuXLo2lS5fG6NGjo7W1Nbq7u/tse9VVV8X8+fPzUkcmk4kHH3ywT//DDz8cDz/88GGPe+uttwoyAgAAQ4a1NQAAoJQV7Kel9+3b16dv5MiR/R6ntrY2p93R0XHYNR2ubDYb1157bWzdujWn/7Of/WyfW/QDAAAMJYsWLYpvfOMbUVNT0+exvXv39gkxlpeXxzXXXBNf/vKX81bD7373u+Q/dQYAAJCatTUAAKCUFeyOjJlMpu/ORvR/dxUVFTnt3j81Vmjd3d3xta99LX71q1/l9H/4wx+Oz3/+80Wt5UA2b94c5eUFy6MyCL373spkMrFx48bE1ZSGto5sn77nnnsu6moqDvBs8smxp1Q511OKUr/u3/uTW6Vo0aJFccYZZ8S3vvWtWL169UEXuebNmxfXXHNNNDQ05HX/27dvz+t4AAAAQ5G1teKwtlZ6Uv/dCYrNa774rGmm49hTqlKf6wu1rlawIGM22/dkcTiTgt7bFHOBsbu7O77+9a/HQw89lNM/evTouPPOO6OqqqpotRxMNps94LGmNBzojxrkXybT9z2WyWQiU1HagYdicOzBuZ7S5HWfxpQpU+KOO+6I9vb2ePLJJ+ONN96IXbt2RU1NTRx99NHR0NAQ9fX1/RrzggsuiAsuuOADn7dw4cJYuHDh4ZYOAAAwLFhbKw5ra6XN350oNV7zxWFNMx3HHobXub5gQcYDfUMsm832+5tjvQ92ZWXlgOo6VNlsNq6//vr46U9/2mf/3/nOd+KYY44pSh0fpKKiwrfGSsx73xPFej+Uusps3/dYZWVlVFb6FkehOfaUKud6SlHq131XV5dFjP+ntrY2Pv7xj6cuAwAAoORYWysOa2ulJ/XfnaDYvOaLz5pmOo49pSr1ub5Q62oFCzIe6BtVmUwmqqur+zVO79vdF+ObWh0dHfHlL385HnvssZz+ESNGxO233x6nn356wWs4VDNmzIhRo0alLoMi2rhxY2QymaisrIzZs2enLqck7G7dFxFbcvpOOOGEGDOqf+cz+s+xp1Q511OKUr/uW1tbo7Gxsej7BQAAgHdZWysOa2ulJ/XfnaDYvOaLz5pmOo49pSr1ub5Q62oF+7rR6NGjo6ysLKevra2t3+P03qaurm5AdX2QXbt2xX/+z/+5z0SrsrIy/v7v/z7OPffcgu4fAAAAAACA0mNtDQAAKGUFCzJWVFTEEUcckdO3Z8+efo3R0dER+/fvz+kbN27cgGs7mFdeeSUWLVoUzz77bE5/dXV1fOc734lPfvKTBds3AAAAAAAApcvaGgAAUMoKFmSMiJg4cWJOu7m5uV/b79y5M6ddVVUVY8aMGXBdB/L000/HokWLYsuW3FvOjho1Kv7pn/4pzj777ILsFwAAAAAAACKsrQEAAKWroEHGKVOm5LRfe+21fm3f+/nTpk0baEkHtGbNmrjiiiuipaUlp/+oo46Kf/mXf4nTTjutIPsFAAAAAACAd1lbAwAASlVBg4yzZs3KaTc1NfVr+5deeimnPX369AHX1Ntjjz0Wixcvjo6Ojpz+adOmxcqVK+P444/P+z4BAAAAAACgN2trAABAqSpokHH27Nk57Y0bN/Zr+2eeeSanPWfOnIGWlOPXv/51LFmyJDKZTE7/Rz7ykVi5cmWfb70BAAAAAABAoVhbAwAASlVBg4ynnnpqVFZW9rSfffbZ2L179yFtm81m4/HHH8/pO+OMM/JW2wsvvBBf/OIX+0y05s2bF3fffXf80R/9Ud72BQAAAAAAAB/E2hoAAFCqChpkrKurizPPPLOn3dnZGatWrTqkbR977LF46623etozZ86MmTNn5qWu/fv3x7XXXhttbW05/Z/4xCdixYoVUVtbm5f9AAAAAAAAwKGytgYAAJSqggYZIyIuuuiinPaKFSti27Zt77vNnj174rbbbsvpu+SSS/JW0+233x4vvPBCTt/cuXPj29/+dlRVVeVtPwAAAAAAANAf1tYAAIBSVPAg4/z58+O4447rabe0tMTVV18dzc3NB3x+W1tbLFmyJLZs2dLTN2nSpFi0aNFB97Fq1aqYNWtWzr9169Yd8Lmvv/563HPPPTl9EyZMiDvvvNNECwAAAAAAgKSsrQEAAKVoRKF3UFZWFsuWLYvLLrssurq6IiKisbExzj///FiyZEksXLgwRo0aFfv27YvVq1fHt7/97XjppZdyxrjhhhuiuro6L/X88z//c3R2dub0NTQ0xC9/+cvDHvO0006LY489dqClAQAAAAAAUOKsrQEAAKWo4EHGiIg5c+bEsmXL4sYbb+zp27lzZyxdujSWLl0ao0ePjtbW1uju7u6z7VVXXRXz58/PSx2ZTCYefPDBPv0PP/xwPPzww4c97q233mqyBQAAAAAAQF5YWwMAAEpNUYKMEdFz+/rly5dHR0dHzmN79+7t8/zy8vJYvHhxfOELX8hbDb/73e+ira0tb+MBAAAAAABAIVhbAwAASkl5MXe2aNGi+PnPfx4LFy6Mmpqagz5v3rx5ce+99+Z1ohURsX379ryOBwAAAAAAAIVibQ0AACgVRbsj47umTJkSd9xxR7S3t8eTTz4Zb7zxRuzatStqamri6KOPjoaGhqivr+/XmBdccEFccMEFH/i8hQsXxsKFCw+3dAAAAAAAACgqa2sAAEApKHqQ8V21tbXx8Y9/PNXuAQAAAAAAYMiwtgYAAAxnRf1paQAAAAAAAAAAAID3EmQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSEWQEAAAAAAAAAAAAkhFkBAAAAAAAAAAAAJIRZAQAAAAAAAAAAACSGZG6AAAAAAaHpqameOCBB+LJJ5+MrVu3xt69e6O6ujomT54cDQ0Ncd5550VDQ0PqMiMiYunSpXH//fdHRMQ999wTp512WuKKAAAAAAAAOFyCjAAAACWutbU1li9fHqtWrYru7u6cxzo7O6OxsTEaGxtj5cqVce6558Ytt9wSY8aMSVRtxFNPPRWrVq1Ktn8AAAAAAADyy09LAwAAlLBdu3bFZZddFg888ECfEOOBPProo/GpT30qXnnllcIXdwDNzc1x3XXXRTabTbJ/AAAAAAAA8s8dGQEAAEpUZ2dnLF68OBobG3P6Z86cGWeffXbU19dHc3NzrF69OjZv3tzz+Pbt22Px4sVx3333xahRo4pW7969e+Nzn/tcbNu2rWj7BAAAAAAAoPAEGQEAAErUihUrYsOGDT3tysrKuPHGG+OSSy7Jed51110X999/f9x0002xb9++iIhoamqK5cuXx/Lly4tSa3Nzc1x11VXxu9/9rij7AwAAAAAAoHj8tDQAAEAJam5uju9///s5fTfffHOfEOO7Lr744vjmN78ZZWVlPX0PPfRQvPrqqwWtMyJiw4YN8Rd/8RexadOmgu8LAAAAAACA4hNkBAAAKEErV66M9vb2nvZZZ50V559//vtus2DBgvjMZz7T085ms3HXXXcVqsTo6uqKe+65J/7yL/8y3nzzzYLtBwAAAAAAgLQEGQEAAErQgw8+mNO+4oorDmm7K6+8MioqKnrajzzySGQymbzWFhGxfv36uPDCC+OWW27JGb+2tjaOOuqovO8PAAAAAACAdEak2GlTU1M88MAD8eSTT8bWrVtj7969UV1dHZMnT46GhoY477zzoqGhIUVpfSxdujTuv//+iIi455574rTTTktcEQAAwMC8+OKL8frrr/e0x44de8hznQkTJsTJJ58cTz31VERE7N27N9auXRtnnXVW3ur7+te/Hj/+8Y/79E+aNClWrFgRt9xyS+zcuTNv+wOGrvaOTDS3vBMd+7NRU1UR9WNHRm1NZeqygGGovSMTb7bsj7Z3MlE3sjvaOzLON0BRWVsDAACGu6IGGVtbW2P58uWxatWq6O7uznmss7MzGhsbo7GxMVauXBnnnntu3HLLLTFmzJhilpjjqaeeilWrViXbPwAAQCGsW7cup33KKafk3GXxg8ydO7cnyBgRsWbNmrwGGZ955pk+feedd14sXbo06RwRGBy6u7vjt03N8YvHX47fbNoRXV1/+BtTeXlZfOzESfFn86bFSdPro6ysLGGlwFD3fuebf/jZNucboCisrQEAAKWiaEHGXbt2xeWXXx6NjY2H9PxHH300Nm3aFHfffXdMmzatsMUdQHNzc1x33XWRzWaLvm8AAIBCev7553PaJ5xwQr+27/38TZs2Dbimg5k2bVp89atfjXPOOadg+wCGjs2vtcTtK5+OLTv2HvDxrq7ueHzjtnh847aYOnF0fOnShpgxeWxxiwSGBecbYDCwtgYAAJSSogQZOzs7Y/HixX0mWjNnzoyzzz476uvro7m5OVavXh2bN2/ueXz79u2xePHiuO+++2LUqFHFKDUifv/TaJ/73Odi27ZtRdsnAABAsTQ1NeW0jz322H5tP3Xq1Jz2yy+/POCaejvqqKPir/7qr+LTn/50VFb62UYgYkPjm7H87vXRsf/QFsa37Ngb13/31/G1y+fGnFnjC1wdMJw43wCDgbU1AACg1BQlyLhixYrYsGFDT7uysjJuvPHGuOSSS3Ked91118X9998fN910U+zbty8ifr/Atnz58li+fHkxSo3m5ua46qqr4ne/+11R9gcAAFBsvReWJkyY0K/tx4/PXaBvaWmJtra2qKurG3BtERF/8zd/E6eeempUVVXlZTxg6Nv8Wku/QkXv6tifjeV3r49b//pMd0oDDonzDTBYWFsDAABKTXmhd9Dc3Bzf//73c/puvvnmPhOtd1188cXxzW9+M8rKynr6HnrooXj11VcLWmdExIYNG+Iv/uIvCvqzaAAAAKnt2rUrp11fX9+v7Y888sgoL8+dTr799tsDrutd8+bNE2IEenR3d8ftK5/ud6joXR37s3HHyqeju7s7z5UBw43zDTBYWFsDAABKUcGDjCtXroz29vae9llnnRXnn3/++26zYMGC+MxnPtPTzmazcddddxWqxOjq6op77rkn/vIv/zLefPPNgu0HAAAgtba2tti/f39OX39/bqysrCxGjhyZ07dnz54B1wZwIL9tao4tO/YOaIxXd+yNTU1v5akiYLhyvgEGC2trAABAKSr4T0s/+OCDOe0rrrjikLa78sor40c/+lFks7//9usjjzwS/+N//I+orKzMa33r16+PW2+9NZ577rmc/tra2qirq4udO3fmdX8AAAApvftTY+/VO5R4KGpra6Otra2n3dHRMaC6hqPNmzf3uXMlw1cmk+n5340bNyauZnhZ+f97Iy/j/Ohfn4lLzx6fl7FKXVtH37vVPffcc1FXU5GgmtLi2BeW8w30lfozTldXV9H3ORhYWwMAAEpRQYOML774Yrz++us97bFjx8Zpp512SNtOmDAhTj755HjqqaciImLv3r2xdu3aOOuss/JW39e//vX48Y9/3Kd/0qRJsWLFirjllltMtgAAgGHl3YXI9xoxov9Tw4qK3MBEZ2fnYdc0XGWz2Z4FRErLgd5nHJ6OTFf8bkv7Bz/xEPxuS1vsbd8XNZUCxgOVyfQ9t2UymchUlGbYpJgc+8JxvoEP5jNOcVhbAwAASlVBg4zr1q3LaZ9yyil9Frvez9y5c3smWxERa9asyetk65lnnunTd95558XSpUtjzJgxedsPAADAYHGgYN3h3DWw9zal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2RJbtmyJf/3Xf42ZM2fG3//938eHP/zhgtYEAABQTOZq0H/d3d3x26bm+MXjL8dvNu2Irq4/vHf+4Wfb4mMnToo/mzctTppeH2VlZQkrBYCh5/2us+XlZa6zlBTzNQAAoFQULci4a9euuPzyy6OxsfGQnv/oo4/Gpk2b4u67745p06YVpKaurq746le/Gj/96U8P6fkvvvhiXHzxxfHNb34zzj333ILUBAAAUEzmatB/m19ridtXPh1bduw94ONdXd3x+MZt8fjGbTF14uj40qUNMWPy2OIWCQBDlOss/IH5GgAAUEqKEmTs7OyMxYsX95lozZw5M84+++yor6+P5ubmWL16dWzevLnn8e3bt8fixYvjvvvui1GjRuW9rttuu63PRKu+vj4WLFgQU6dOjdbW1njqqadi7dq1PY93dHTEV77ylfjxj38cxx13XN5rAgAAKBZzNei/DY1vxvK710fH/uwhPX/Ljr1x/Xd/HV+7fG7MmTW+wNUBwNDmOgt/YL4GAACUmqIEGVesWBEbNmzoaVdWVsaNN94Yl1xySc7zrrvuurj//vvjpptuin379kVERFNTUyxfvjyWL1+e15rWr18fP/jBD3L6Lr300rj++uujuro6p//pp5+OL33pS7Fjx46IiHjnnXdiyZIl8Ytf/CJGjCjqr3MDAADkjbka9M/m11r6Fa54V8f+bCy/e33c+tdnumMUAByE6yzkMl8DAABKTXmhd9Dc3Bzf//73c/puvvnmPhOtd717e/mysrKevoceeiheffXVvNb1d3/3d9Hd3d3TvvDCC2PZsmV9JloREQ0NDfHDH/4wxo4d29P3yiuvHPJt8wEAAAYbczXon+7u7rh95dP9Dle8q2N/Nu5Y+XTO6xsA+D3XWchlvgYAAJSiggcZV65cGe3t7T3ts846K84///z33WbBggXxmc98pqedzWbjrrvuyltN69ati02bNvW0x40bF//9v//3991m6tSpcdNNN+X0rVixwh9GAACAIclcDfrnt03NsWXH3gGN8eqOvbGp6a08VQQAw4frLOQyXwMAAEpRwYOMDz74YE77iiuuOKTtrrzyyqioqOhpP/LII5HJZPJS06pVq3LaF198cdTV1X3gdgsWLIhjjz22p71ly5b47W9/m5eahpL2jkxs2bEnXtjydmzZsSfaO/Lz3wUA+P119s2W/fFa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eSanPWfOnIGWFCeeeGJUVPzhP/ALL7wQHR0dSWsazObMGh+3/vWZh3y70j+eODpu/eszY86s8QWuDACGPtfZdBz7dBz7wcFcbXjwfgIAIF98thw8zNeGPu+ndBz7NBx3ACicUrvOjijk4KeeempUVlZGJpOJiIhnn302du/eHWPGjPnAbbPZbDz++OM5fWecccaAaxo1alTMnj07NmzYEBG/v539E088EZ/4xCcOaftf/epXea9psJsxeWx857pzYlPTW/GLx1+OtZu2R1dXd8/jFeVlcfpJk+LPzzgmTpw+bsjdlhQAUnKdTcexT8exT89cbfjwfgIAIF98thwczNeGB++ndBz7NBx3ACicUrrOFjTIWFdXF2eeeWasXr06IiI6Oztj1apVccUVV3zgto899li89dZbPe2ZM2fGzJkz81LXggULeiZbERH33XffIU223nzzzfi3f/u3nvaIESNiwYIFealpsCsrK4uTZtTHSTPqo70jE2/t7oh39nXGyOoRMW5MTdTWVKYuEQCGrN7X2SfWPxtt72SibmRlnDH3I66zBeQzTjpe92mZqw0vzmUAAOSLuVp65mvDh7laOs5laXjNA0DhlMrnm4L+tHRExEUXXZTTXrFiRWzbtu19t9mzZ0/cdtttOX2XXHJJ3mr61Kc+FVVVVT3t1atX50yiDubmm2/u+QZcRMQ555wTRx11VN7qGipqaypjyoTR8eGpR8aUCaOHzZsBAAaD2prKGD+2KibXV8X4sVWus0XkM046XvdpmKsNT85lAADki7laOuZrw4+5WjrOZWl4zQNA4QznzzcFDzLOnz8/jjvuuJ52S0tLXH311dHc3HzA57e1tcWSJUtiy5YtPX2TJk2KRYsWHXQfq1atilmzZuX8W7du3UGfP27cuD7jXXfddfHss88e8Pnd3d3xrW99K/7P//k/PX3l5eXxhS984aD7AAAAGMzM1QAAAAYn8zUAAKAUFTzIWFZWFsuWLYvy8j/sqrGxMc4///y4//77o7W1NSIi9u3bF7/85S/joosuiieeeCJnjBtuuCGqq6vzWtcXv/jFGD9+fE+7ra0tPv3pT8e3v/3t2LFjR0REZLPZePrpp+PKK6+M//k//2fO9v/lv/yXmDVrVl5rAgAAKBZzNQAAgMHJfA0AAChFI4qxkzlz5sSyZcvixhtv7OnbuXNnLF26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vTF58uSor69v8ZlBgwbF3XffHUOHDm3HyQBaRq+RJXoN8mk10kqrAZ2dViNLtBrk02qkVZZazUVGKELbtm2Ls846K1566aXE/vDhw+Ob3/xm9O/fP1atWhXV1dWxePHixGP23XffuP/++6O8vLwjR4ad9tprr8Vpp52WeGXkAQccEL/85S9j5MiReY/fsGFD3HzzzTF37tzE/umnnx5Tpkxp93mho8ybNy9+9rOf5e0LLjq7Bx98MK6++urEz/3S0tI49thj46CDDoqysrJYsmRJPPHEE7FixYrE2S984Qsxf/58f1wDCkqvkSV6DfJpNdJKqwGdnVYjS7Qa5NNqpFXWWs1FRihC27+CprS0NK655po4/fTT8x77wAMPxJQpU6Kuri63d8opp8S0adM6ZFbYVeecc07861//yq3333//uOeee6Jnz547PPeb3/wmbr/99ty6a9eu8Ze//CWGDRvWbrNCR1mxYkUcf/zxea+QjBBcdG5vvPFGVFVVxdatW3N7o0ePjunTp8eQIUMSj62rq4tbbrkl76NRJk6cGFdeeWWHzAvQFL1Glug1SNJqpJVWA9JAq5ElWg2StBpplcVWKyn0AEDSqlWrYtasWYm966+/vsnQiog47bTT4qabboouXbrk9h566KH44IMP2nVOaAsfffRRIrS6dOkSN954Y7OhFRFx6aWXJl5VVl9fHw8//HC7zAkd7dprr83F1ud/vkNnd+211yZi64gjjoi77rorL7YiIrp16xZXXXVVnHfeeYn9uXPnRm1tbbvPCtAUvUaW6DXIp9VIK60GdHZajSzRapBPq5FWWWw1FxmhyMydOzc2bdqUWx9zzDFx0kkn7fDMd77znTjrrLNy6/r6+pg5c2Z7jQht5u9//3tifdhhhzX5lvdNKSkpiR/84AeJvaeffrrNZoNCeeihh6K6ujq3rqqqKuA00Haqq6vjtddey60HDBgQt9xyS5SVle3w3I9+9KPo169fbr1p06a8fz8AOopeI0v0GiRpNdJKqwFpoNXIEq0GSVqNtMpqq7nICEVm/vz5ifWECRNadO6CCy6Irl275taPP/544mY2FKM333wzsf7617/eqvMHH3xwYr106dJdngkKaeXKlYmPLxk1alRMnDixgBNB27nvvvsS65/85Cexxx57NHuuR48e8b3vfS+x9/LLL7flaAAtptfI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RVoNIN2y3GouMkIR6dWrV+IH0rZt22LevHktOvvkk0/G6tWrc+vhw4fH8OHD23xGaEv19fVxxRVXxKZNmxL7kyZNih/+8IcFmgqAtjZq1KjYe++9c+v6+vqYM2dOi8/PnTs3sT7uuOPaajSAFtNrZI1eA0g/rQakgVYja7QaQPpludVcZIQic+qppybWt99+e3z00Uc7PLN+/fqYPn16Yu/0009v89mgrT366KN5H/Nw9NFHe7UYQMp06dIlxo8fn9ibPXt2LF68uNmz1dXVeR/7cMYZZ7TpfAAtpdfIEr0GkH5aDUgLrUaWaDWA9Mtyq3VpbGxsLPQQwGcaGxvjpJNOirfeeiu3N3LkyJg9e3b0798/7/G1tbVx8cUXxzPPPJPbq6ioiMceeyy6devWITPDzjrhhBNi0aJFib2LLrooBg0atEvPWV5evqujQdFYunRpjB07NreurKzM++UTOoMtW7bEuHHjYunSpbm9AQMGxJ133hlf+tKXmjzz4osvxgUXXBAbN27M7X3rW9+K3/3ud+0+L0BT9BpZotdgx7QaaaHVgDTQamSJVoMd02qkRVZbzUVGKEIvvfRSnHnmmdHQ0JDbGzBgQFx66aUxbty4KC8vj7q6uqiuro7f/va38e677ybO//73v0/84wzF6JVXXmmXVzc++eSTMWTIkDZ/XigUwUWavPjii3HOOefEli1bcns9e/aMCRMmxPe///0YOnRoREQsWbIk7rvvvpgzZ05s3bo199g+ffrEvHnzorKyssNnB/gfvUYW6DVonlYjTbQakAZajSzQatA8rUaaZLHVXGSEInXffffFNddc0+TXevfuHRs3boymvn0nTZoUl112WXuPB7vsD3/4Q9x8881t/rxii7QRXKTNggUL4pJLLom6urq8r/Xq1SsaGxtj06ZNeV/r1q1bzJw5Mw4//PCOGBNgh/QaaafXoHlajbTRakAaaDXSTqtB87QaaZO1Visp9ABA06qqqmLy5MnRvXv3vK9t2LAhL7RKSkri4osvFlp0GsuWLSv0CAAUwDe+8Y2YNWtW7L333nlfq62tbTK2Bg0aFLNnz+50sQWkl14j7fQaQPZoNSANtBppp9UAsidrreYdGaHILVmyJG6++eaorq6OzZs3N/mYI488Mi6++OIYPXp0B08HALBz6urqYtasWfHQQw/FBx980ORj9txzzzjttNPi/PPPj969e3fwhADN02sAQNpoNSANtBoAkDZZaTUXGaGT2LRpUzz33HOxYsWKWLNmTXTv3j322muvGD16dPTv37/Q4wEA7LS33nor3n333Vi5cmXU1dVFnz59YuTIkTFq1KjYbbfdCj0eQLP0GgCQRloN6Oy0GgCQRmluNRcZAQAAAAAAAAAAgIIpKfQAAAAAAAAAAAAAQHa5yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUjIuMAAAAAAAAAAAAQMG4yAgAAAAAAAAAAAAUzP8B3ZqLtk2s9ucAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 466, + "width": 1305 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,3,figsize=(16,5))\n", + "ax[0].stem(np.arange(-1, 7), sts.hypergeom.pmf(np.arange(-1, 7), 10, 3, 5))\n", + "ax[0].set_title(\"PMF of HGeom(3, 7, 5)\")\n", + "ax[1].stem(np.arange(-1, 7), sts.hypergeom.pmf(np.arange(-1, 7), 10, 5, 5))\n", + "ax[1].set_title(\"PMF of HGeom(5, 5, 5)\")\n", + "ax[2].stem(np.arange(-1, 7), sts.hypergeom.pmf(np.arange(-1, 7), 10, 7, 5))\n", + "ax[2].set_title(\"PMF of HGeom(7, 3, 5)\");" + ] + }, + { + "cell_type": "markdown", + "id": "70216d6f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 5\n", + "\n", + "What is the difference between hypergeometric and binomial distributions?" + ] + }, + { + "cell_type": "markdown", + "id": "f0414680", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Reminder:\n", + "- Binomial story: Consider and urn with $w$ white balls and $b$ black balls. We draw $n$ balls from the urn with replacement. Let $X$ be the number of white balls in the sample.\n", + "- Hypergeometric story: Consider an urn with $w$ white balls and $b$ black balls. We draw $n$ balls out of the urn at random without replacement. Let $X$ be the number of white balls in the sample." + ] + }, + { + "cell_type": "markdown", + "id": "d9680151", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "fragment" + }, + "tags": [] + }, + "source": [ + "Bernoulli trials in Binomial story are independent. The Bernoulli trials in the Hypergeometric story are dependent, since the sampling is done without replacement." + ] + }, + { + "cell_type": "markdown", + "id": "joint-donor", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 5\n", + "\n", + "Consider $X$ and $Y$ independent $\\mathbb{Z}$-valued random variables. $\\mathbb{P}(X + Y = k) = ?$" + ] + }, + { + "cell_type": "markdown", + "id": "alive-chancellor", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution 5\n", + "\n", + "$$\n", + "\\mathbb{P}(X + Y = k) = \\sum_{m} \\mathbb{P}(X = m) \\mathbb{P}(Y = k - m)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "intense-college", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Example 6\n", + "\n", + "Let $X \\sim Bi(n, p)$ and $Y \\sim Bi(m, p)$ be independent. What is the distribution of $Z = X + Y$?" + ] + }, + { + "cell_type": "markdown", + "id": "temporal-member", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "## Solution 6\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "\\mathbb{P}(X + Y = k) & = \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} p^j (1-p)^{n-j} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} p^{k-j} (1-p)^{m-k+j} = \\\\\n", + "& = p^{k} (1-p)^{n+m-k} \\sum_j \\begin{pmatrix}n\\\\j\\end{pmatrix} \\begin{pmatrix}m\\\\k-j\\end{pmatrix} = \\\\\n", + "& =\\begin{pmatrix}n+m\\\\k\\end{pmatrix} p^{k} (1-p)^{n+m-k}\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "$$\n", + "Z \\sim Bi(n+m, p)\n", + "$$" + ] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Seminar_materials/seminar_04/Seminar 4 (Random variables).pdf b/Seminar_materials/seminar_04/Seminar 4 (Random variables).pdf new file mode 100644 index 0000000..fff0d65 Binary files /dev/null and b/Seminar_materials/seminar_04/Seminar 4 (Random variables).pdf differ diff --git a/Seminar_materials/seminar_04/Seminar 4 (Random variables).slides.html b/Seminar_materials/seminar_04/Seminar 4 (Random variables).slides.html new file mode 100644 index 0000000..c8dd498 --- /dev/null +++ b/Seminar_materials/seminar_04/Seminar 4 (Random variables).slides.html @@ -0,0 +1,7823 @@ + + + + + + + +Seminar 4 (Random variables) slides + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + diff --git a/home_assignments/MSAI_Prob_HW1.pdf b/home_assignments/MSAI_Prob_HW1.pdf deleted file mode 100644 index 867d6a5..0000000 Binary files a/home_assignments/MSAI_Prob_HW1.pdf and /dev/null differ diff --git a/home_assignments/MSAI_Prob_HW2.pdf b/home_assignments/MSAI_Prob_HW2.pdf deleted file mode 100644 index 002aab9..0000000 Binary files a/home_assignments/MSAI_Prob_HW2.pdf and /dev/null differ diff --git a/practice_problems/MSAI_Prob_Seminar_10_practice_problems.pdf b/practice_problems/MSAI_Prob_Seminar_10_practice_problems.pdf deleted file mode 100644 index 4413105..0000000 Binary files a/practice_problems/MSAI_Prob_Seminar_10_practice_problems.pdf and /dev/null differ diff --git a/practice_problems/MSAI_Prob_Seminar_11_practice_problems.pdf b/practice_problems/MSAI_Prob_Seminar_11_practice_problems.pdf deleted file mode 100644 index 2bfe82a..0000000 Binary files a/practice_problems/MSAI_Prob_Seminar_11_practice_problems.pdf and /dev/null differ