{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy import stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Monte Carlo integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integrals and averates\n", "\n", "In general, we want to estimate integrals of a function over a distribution using the following simple strategy:\n", " \n", "- Draw a probability from the target probability distribution\n", "- Multiply the probability with the function at that value\n", "- Repeat and average\n", "\n", "The trick is in knowing how to draw samples from the target probability distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A Simple Method: Rejection sampling\n", "\n", "Suppose we want random samples from some distribution for which we can calculate the PDF at a point, but lack a direct way to generate random deviates from. One simple idea that is also used in MCMC is rejection sampling - first generate a sample from a distribution from which we can draw samples (e.g. uniform or normal), and then accept or reject this sample with some probability (see figure)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: Random samples from the unit circle using rejection sampling" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.random.uniform(-1, 1, (10000, 2))\n", "x = x[np.sum(x**2, axis=1) < 1]\n", "plt.scatter(x[:, 0], x[:,1], s=1)\n", "plt.axis('square')\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example: Rejection sampling from uniform distribution\n", "\n", "We want to draw samples from a Cauchy distribution restricted to (-4, 4). We could choose a more efficient sampling/proposal distribution than the uniform, but this is just to illustrate the concept." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "x = np.linspace(-4, 4)\n", "\n", "df = 10\n", "dist = stats.cauchy()\n", "upper = dist.pdf(0)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(x, dist.pdf(x))\n", "plt.axhline(upper, color='grey')\n", "px = 1.0\n", "plt.arrow(px,0,0,dist.pdf(1.0)-0.01, linewidth=1,\n", " head_width=0.2, head_length=0.01, fc='g', ec='g')\n", "plt.arrow(px,upper,0,-(upper-dist.pdf(px)-0.01), linewidth=1, \n", " head_width=0.3, head_length=0.01, fc='r', ec='r')\n", "plt.text(px+.25, 0.2, 'Reject', fontsize=16)\n", "plt.text(px+.25, 0.01, 'Accept', fontsize=16)\n", "plt.axis([-4,4,0,0.4])\n", "plt.title('Rejection sampling concepts', fontsize=20)\n", "pass" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/cliburn/Library/Python/3.7/lib/python/site-packages/ipykernel_launcher.py:13: VisibleDeprecationWarning: Passing `normed=True` on non-uniform bins has always been broken, and computes neither the probability density function nor the probability mass function. The result is only correct if the bins are uniform, when density=True will produce the same result anyway. The argument will be removed in a future version of numpy.\n", " del sys.path[0]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n = 100000\n", "# generate from sampling distribution\n", "u = np.random.uniform(-4, 4, n)\n", "# accept-reject criterion for each point in sampling distribution\n", "r = np.random.uniform(0, upper, n)\n", "# accepted points will come from target (Cauchy) distribution\n", "v = u[r < dist.pdf(u)]\n", "\n", "plt.plot(x, dist.pdf(x), linewidth=2)\n", "\n", "# Plot scaled histogram \n", "factor = dist.cdf(4) - dist.cdf(-4)\n", "hist, bin_edges = np.histogram(v, bins=100, normed=True)\n", "bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2.\n", "plt.step(bin_centers, factor*hist, linewidth=2)\n", "\n", "plt.axis([-4,4,0,0.4])\n", "plt.title('Histogram of accepted samples', fontsize=20)\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple Monte Carlo integration\n", "\n", "The basic idea of Monte Carlo integration is very simple and only requires elementary statistics. Suppose we want to find the value of \n", "$$\n", "I = \\int_a^b f(x) dx\n", "$$\n", "in some region with volume $V$. Monte Carlo integration estimates this integral by estimating the fraction of random points that fall below $f(x)$ multiplied by $V$. \n", "\n", "\n", "In a statistical context, we use Monte Carlo integration to estimate the expectation\n", "$$\n", "E[g(X)] = \\int_X g(x) p(x) dx\n", "$$\n", "\n", "with\n", "\n", "$$\n", "\\bar{g_n} = \\frac{1}{n} \\sum_{i=1}^n g(x_i)\n", "$$\n", "where $x_i \\sim p$ is a draw from the density $p$.\n", "\n", "We can estimate the Monte Carlo variance of the approximation as\n", "$$\n", "v_n = \\frac{1}{n^2} \\sum_{o=1}^n (g(x_i) - \\bar{g_n})^2)\n", "$$\n", "\n", "Also, from the Central Limit Theorem,\n", "\n", "$$\n", "\\frac{\\bar{g_n} - E[g(X)]}{\\sqrt{v_n}} \\sim \\mathcal{N}(0, 1)\n", "$$\n", "\n", "The convergence of Monte Carlo integration is $\\mathcal{0}(n^{1/2})$ and independent of the dimensionality. Hence Monte Carlo integration generally beats numerical integration for moderate- and high-dimensional integration since numerical integration (quadrature) converges as $\\mathcal{0}(n^{d})$. Even for low dimensional problems, Monte Carlo integration may have an advantage when the volume to be integrated is concentrated in a very small region and we can use information from the distribution to draw samples more often in the region of importance.\n", "\n", "An elementary, readable description of Monte Carlo integration and variance reduction techniques can be found [here](https://www.cs.dartmouth.edu/~wjarosz/publications/dissertation/appendixA.pdf)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Intuition behind Monte Carlo integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to find some integral \n", "\n", "$$I = \\int{f(x)} \\, dx$$\n", "\n", "Consider the expectation of a function $g(x)$ with respect to some distribution $p(x)$. By definition, we have\n", "\n", "$$\n", "E[g(x)] = \\int{g(x) \\, p(x) \\, dx}\n", "$$\n", "\n", "If we choose $g(x) = f(x)/p(x)$, then we have\n", "\n", "$$\n", "\\begin{align}\n", "E[g(x)] &= \\int{\\frac{f(x}{p(x)} \\, p(x) \\, dx} \\\\\n", "&= \\int{f(x) dx} \\\\\n", "&= I\n", "\\end{align}\n", "$$\n", "\n", "By the law of large numbers, the average converges on the expectation, so we have\n", "\n", "$$\n", "I \\approx \\bar{g_n} = \\frac{1}{n} \\sum_{i=1}^n g(x_i)\n", "$$\n", "\n", "If $f(x)$ is a proper integral (i.e. bounded), and $p(x)$ is the uniform distribution, then $g(x) = f(x)$ and this is known as ordinary Monte Carlo. If the integral of $f(x)$ is improper, then we need to use another distribution with the same support as $f(x)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Example: Estimating $\\pi$**\n", "\n", "We have a function \n", "\n", "$$\n", "f(x, y) = \n", "\\begin{cases}\n", "1 & \\text{if}\\ x^2 + y^2 \\le 1 \\\\\n", "0 & \\text{otherwise}\n", "\\end{cases}\n", "$$\n", "\n", "whose integral is\n", "$$\n", "I = \\int_{-1}^{1} \\int_{-1}^{1} f(x,y) dx dy = \\pi\n", "$$\n", "\n", "So a Monte Carlo estimate of $\\pi$ is \n", "$$\n", "Q = 4 \\sum_{i=1}^{N} f(x, y)\n", "$$\n", "\n", "if we sample $p$ from the standard uniform distribution in $\\mathbb{R}^2$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from scipy import stats" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(-3,3,100)\n", "dist = stats.norm(0,1)\n", "a = -2\n", "b = 0\n", "plt.plot(x, dist.pdf(x))\n", "plt.fill_between(np.linspace(a,b,100), dist.pdf(np.linspace(a,b,100)), alpha=0.5)\n", "plt.text(b+0.1, 0.1, 'p=%.4f' % (dist.cdf(b) - dist.cdf(a)), fontsize=14)\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using quadrature" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from scipy.integrate import quad" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.47724986805182085" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y, err = quad(dist.pdf, a, b)\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Simple Monte Carlo integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we can sample directly from the target distribution $N(0,1)$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.4738" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "x = dist.rvs(n)\n", "np.sum((a < x) & (x < b))/n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we cannot sample directly from the target distribution $N(0,1)$ but can evaluate it at any point. \n", "\n", "Recall that $g(x) = \\frac{f(x)}{p(x)}$. Since $p(x)$ is $U(a, b)$, $p(x) = \\frac{1}{b-a}$. So we want to calculate\n", "\n", "$$\n", "\\frac{1}{n} \\sum_{i=1}^n (b-a) f(x)\n", "$$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.48069595176138846" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "x = np.random.uniform(a, b, n)\n", "np.mean((b-a)*dist.pdf(x))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Intuition for error rate\n", "\n", "We will just work this out for a proper integral $f(x)$ defined in the unit cube and bounded by $|f(x)| \\le 1$. Draw a random uniform vector $x$ in the unit cube. Then\n", "\n", "$$\n", "\\begin{align}\n", "E[f(x_i)] &= \\int{f(x) p(x) dx} = I \\\\\n", "\\text{Var}[f(x_i)] &= \\int{(f(x_i) - I )^2 p(x) \\, dx} \\\\\n", "&= \\int{f(x)^2 \\, p(x) \\, dx} - 2I \\int(f(x) \\, p(x) \\, dx + I^2 \\int{p(x) \\, dx} \\\\\n", "&= \\int{f(x)^2 \\, p(x) \\, dx} + I^2 \\\\\n", "& \\le \\int{f(x)^2 \\, p(x) \\, dx} \\\\\n", "& \\le \\int{p(x) \\, dx} = 1\n", "\\end{align}\n", "$$\n", "\n", "Now consider summing over many such IID draws $S_n = f(x_1) + f(x_2) + \\cdots + f(x_n)$. We have\n", "\n", "$$\n", "\\begin{align}\n", "E[S_n] &= nI \\\\\n", "\\text{Var}[S_n] & \\le n\n", "\\end{align}\n", "$$\n", "\n", "and as expected, we see that $I \\approx S_n/n$. From Chebyshev's inequality,\n", "\n", "$$\n", "\\begin{align}\n", "P \\left( \\left| \\frac{s_n}{n} - I \\right| \\ge \\epsilon \\right) &= \n", "P \\left( \\left| s_n - nI \\right| \\ge n \\epsilon \\right) & \\le \\frac{\\text{Var}[s_n]}{n^2 \\epsilon^2} & \\le\n", "\\frac{1}{n \\epsilon^2} = \\delta\n", "\\end{align}\n", "$$\n", "\n", "Suppose we want 1% accuracy and 99% confidence - i.e. set $\\epsilon = \\delta = 0.01$. The above inequality tells us that we can achieve this with just $n = 1/(\\delta \\epsilon^2) = 1,000,000$ samples, regardless of the data dimensionality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example\n", "\n", "We want to estimate the following integral $\\int_0^1 e^x dx$. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 1, 100)\n", "plt.plot(x, np.exp(x))\n", "plt.xlim([0,1])\n", "plt.ylim([0, np.exp(1)])\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Analytic solution" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.71828182845905" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import symbols, integrate, exp\n", "\n", "x = symbols('x')\n", "expr = integrate(exp(x), (x,0,1))\n", "expr.evalf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using quadrature" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.7182818284590453" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy import integrate\n", "\n", "y, err = integrate.quad(exp, 0, 1)\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Monte Carlo integration" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 10 1.847075\n", " 100 1.845910\n", " 1000 1.731000\n", " 10000 1.727204\n", " 100000 1.719337\n", " 1000000 1.718142\n", " 10000000 1.718240\n", " 100000000 1.718388\n" ] } ], "source": [ "for n in 10**np.array([1,2,3,4,5,6,7,8]):\n", " x = np.random.uniform(0, 1, n)\n", " sol = np.mean(np.exp(x))\n", " print('%10d %.6f' % (n, sol))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Monitoring variance in Monte Carlo integration\n", "\n", "We are often interested in knowing how many iterations it takes for Monte Carlo integration to \"converge\". To do this, we would like some estimate of the variance, and it is useful to inspect such plots. One simple way to get confidence intervals for the plot of Monte Carlo estimate against number of iterations is simply to do many such simulations.\n", "\n", "For the example, we will try to estimate the function (again)\n", "\n", "$$\n", "f(x) = x \\cos 71 x + \\sin 13x, \\ \\ 0 \\le x \\le 1\n", "$$" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def f(x):\n", " return x * np.cos(71*x) + np.sin(13*x)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 1, 100)\n", "plt.plot(x, f(x))\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Single MC integration estimate" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.03103616434230248" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 100\n", "x = f(np.random.random(n))\n", "y = 1.0/n * np.sum(x)\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using multiple independent sequences to monitor convergence\n", "\n", "We vary the sample size from 1 to 100 and calculate the value of $y = \\sum{x}/n$ for 1000 replicates. We then plot the 2.5th and 97.5th percentile of the 1000 values of $y$ to see how the variation in $y$ changes with sample size. The blue lines indicate the 2.5th and 97.5th percentiles, and the red line a sample path." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "n = 100\n", "reps = 1000\n", "\n", "x = f(np.random.random((n, reps)))\n", "y = 1/np.arange(1, n+1)[:, None] * np.cumsum(x, axis=0)\n", "upper, lower = np.percentile(y, [2.5, 97.5], axis=1)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(np.arange(1, n+1), y, c='grey', alpha=0.02)\n", "plt.plot(np.arange(1, n+1), y[:, 0], c='red', linewidth=1);\n", "plt.plot(np.arange(1, n+1), upper, 'b', np.arange(1, n+1), lower, 'b')\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using bootstrap to monitor convergence\n", "\n", "If it is too expensive to do 1000 replicates, we can use a bootstrap instead." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "xb = np.random.choice(x[:,0], (n, reps), replace=True)\n", "yb = 1/np.arange(1, n+1)[:, None] * np.cumsum(xb, axis=0)\n", "upper, lower = np.percentile(yb, [2.5, 97.5], axis=1)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD8CAYAAAB+UHOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsvXmUHWd95/15arl1917VWm1Jlmy8G2RjIAYSFoMhwSEBBoh5/YYwIYSZzMk7OZOTTJLJO3MmOeFkMieZwCQ4gQDD4oCTlwGGGOKEhB3bGNuxLS+yZO1qSd2t7r77rVv1/lH9q/u7pduSbLdku/V8z+nT3fdW1fPU9v3tv8fEcYyFhYWFxfkH57megIWFhYXFcwMrACwsLCzOU1gBYGFhYXGewgoACwsLi/MUVgBYWFhYnKewAsDCwsLiPIUVABYWFhbnKawAsLCwsDhPYQWAhYWFxXkK77mewKkwOTkZb9my5bmehoWFhcULBj/84Q+Px3G85ky2fV4LgC1btnDvvfc+19OwsLCweMHAGLP3TLe1LiALCwuL8xRWAFhYWFicp7ACwMLCwuI8hRUAFhYWFucprACwsLCwOE9hBYCFhYXFeQorACwsLCzOU6xKAdDpdOh0Os/1NCwsLCye11iVAqBWq1kBYGFhYXEarEoB4Pv+cz0FCwsLi+c9VkQAGGM+bow5aox5aJnvf8IYM2+MuX/p5z+txLinmA9xHJ/NISwsLCxe8FipXkCfAD4MfOoU23wrjuOfWqHxTgnHceh0OsRxjDHmXAxpYWFh8YLDilgAcRx/E5hdiWOtBBzHIY5jawVYWFhYnALnMgbwCmPMA8aYvzPGXHE2BxKtv9frnc1hLCwsLF7QOFftoO8DNsdxXDPGvBn4InDxsA2NMe8H3g9w4YUXPqPBHMexrh8LCwuL0+CcWABxHC/EcVxb+vurgG+MmVxm29viOL4ujuPr1qw5ozUNlkUURc9qfwsLC4vVjHMiAIwx68ySSm6MuX5p3JmzNZ7jODiOY11AFhYWFqfAiriAjDGfA34CmDTGHAB+F/AB4jj+c+DtwC8bY0KgCbwrPssRWkkFtZlAFhYWFsOxIgIgjuN3n+b7D5OkiZ4TNJtNWq0WxWLxXA1pYWFh8YLDqqwEnp2dpdFoEEWRjQNYWFhYLINVKQDy+TxRFNHr9WwtgIWFhcUyWJUCwPd9PM8jjmPa7bYNBltYWFgMwaoUAFIHEMexdQNZWFhYLINVKQCMMWnmj20MZ2FhYTEcq04AdLvwoQ9F3HlnSK/XI4oi2xfIwsLCYghWnQDwPPjIR8p8+cvFlPQt+VtYWFicjFUnAIyBSy+t8+ijBYwxA1aAhYWFhUUfq04AAFx6aZMnnyxSr3dT948NBFtYWFgMYlUKgCuvbBOGDjt3uoRhaGMAFhYWFkOwKgXAjh3J7wcf9AYWh7GuIAsLC4s+VqUA2Lo1plQKefBBnziObTaQhYWFxRCsSgEQBDkuuaTGQw/lAAaCwRYWFhYWCValAPA8j0suWeTRR3PU6520FYTtDWRhYWHRx6oUAIuLi1x44XE6HYdHHonpdDoYY+h0OoRh+FxPz8LCwuJ5gVUpAL7zne8wNrYHgIcfDuj1enQ6HaIoIgxD6wqysLCwYJUKgF6vR7l8mGKxxwMPeHQ6iRvIdV3bHM7CwsJiCatSAFQqFRwHtm+vsXNnPrUAXNdNA8I2FmBhYXG+Y1UKgEKhQK/XY9u2eXbuDOh2E41fFokJw9CuEWBhYXHeY1UKgG63y8LCAhddNEuz6fDUU0FK/mIFWCFgYWFxvmNFBIAx5uPGmKPGmIeW+d4YY/6HMWaXMeZBY8yOlRh3OSwuLtLr9di8eRaABx/0cRwn9f1rIWBdQRYWFucrVsoC+ARw0ym+fxNw8dLP+4E/W6Fxh6JcLuM4DlNTMwRBxN13B3Q6nfQniiIcJzl1Gw+wsLA4X7EiAiCO428Cs6fY5KeBT8UJvg+MGmPWr8TYw9BqtZZcPl1e//ojfPGL49x/v5+6fYT0ZeUwKwAsLCzOR5yrGMBGYL/6/8DSZ2cFl375y6w9fJhms8kv/uITTEx0+A//YZJare/3l4Iw2y7awsLifMW5EgBmyGdD1W5jzPuNMfcaY+49duzYMxpsct8+po4dY3FxkSBo8u///aM88USOP/7jEcIwTNcLbrfbdtUwCwuL8xbnSgAcAC5Q/28CDg3bMI7j2+I4vi6O4+vWrFnzjAZrjY5SqtWo1Wq0222uuuoAb3vbCW67bYTvfKebxgB6vR6tVoswDOl2u1YIWFhYnFc4VwLgS8CtS9lALwfm4zg+fLYGWywWKddqRFFEs9kkDEN+5Vf2MDnZ5Q/+YIpGo0EYhjiOk8YAwjBMg8TSLmK5qmHbVtrCwmI1YKXSQD8HfA94kTHmgDHmfcaYDxhjPrC0yVeB3cAu4C+AD67EuMuhUa1SqteJ45hGo0G73caYRW655RD331/igQc8ut0uQJoN5LpuGgvQmUHZ+ID8bxeXsbCweKHDW4mDxHH87tN8HwP/ZiXGOhOcCALW1WpAUhTWbrfpdrv81E/N8Od/fgEf/WjAjh2tlMhd18XzPIwxab8gY0y6mphsZ4xJf4sVIPEECwsLixcaVmUlcDQ1RXlJAMRxTLfbpdPpUCx2uemmw3z5y0X27+8MuIJESMg+WsMX4u/1eqlgsOmjFhYWL3SsSgGwv9NJBUCr1aLT6VCv1+l2u9x88z66XYdPfCKg2+2Sy+XSoLBeP1jqBbKuHtH45bcVAhYWFi9UrEoBMOu6FJpNTBSl2T3iCtq0qcENNyzwuc+N0OmQpoVKLAD61cHdbpcwDFMXkQgIwBaRWVhYvOCxKgVA5Lq08nmKjUba90fWBGg2m7z97Yc4dszjq18tUqvV0vYQURQtBYyTltHdbje1IIYtLK9jAWeKrHvJwsLC4rnCqhQAALVymVKtlrpzJO+/3W6zY8dxtm5t8yd/MsahQ52BFcPkb4kHGGPodrupgBDrQAeANZkvR+zZ7CFbeWxhYfFcY1ULgHKtRqvVot1uEy25g9rtNq1Wg9/7vWmmp30+8IFNzM11aDab1Ov1dLsoivA8byArSP4Wi0DIXqyDYTEDGNT6JdYgn1tYWFg8V1i1AqBeKqWBYJ3uKbUBO3Y0+aM/OsK//EvAL/3SKLOzC9RqNXq9Hr7vp4Qtbh7R2OV/XUUsTeaWiwvIcSR7SH6sFWBhYfFcYtUKgFq5TLleTzVurbm3223a7TavfvUMv/mbB/mnfyrx27+9gU4nTheOl+pgII0J6JoBTd7aSsjGBbQg0TUDNovIwsLiucaKFII9H1FfcgEB6TKQ0urB933a7Ta+73PzzYc4dizmttsuYG4ux0c+cpTJyRz5fJ44jmm1Wvi+n5K467qEYZgWjumK4W63i+d56f/yI5q/hrYCXNc9txfHwsLCglVuAZSWMnw0Kfd6PRqNBs1mMyXtW2/dx2/91m5+8IMi73znBvbsSdw73W43bR8tRK+7ibquO5A+Ku4gGUdbBXIM3X5afoulYWFhYXEusXoFgIoBSFGXuG86nQ7z8/PMz8+n2vyb3nSYD394NwcPevzsz27gnnv6Vb/ZwjBx/2SDvp7npa4j7SISC0Q3mNNuIQkgW1hYWJxLrEoBsGbNmsQCqNeBRPOWVg9RFNFqtajX62l2UK/XI5fL8cpXtrj99v14Xswtt2ziK19JAsaS8dPpdAZqAORzsQQcx8F1XVzXTYPEkl4q++ltHMdJC8yW6zxqYWFhcbawKgUADMYAhFxrtdpAgFd6BIlg6Ha7bNlS5/bbn+Kii7q8732TfOxjORYWFmi322lraUkn7XQ6S2mlrdQakPGkAlmsCN1mIguJAehjWFhYWJxtrEoBkMvlaBSL5FstnKWKXqnqdRyHXC4H9C0DaRldr9dptVpMTfX4wheO8epXN/jP/3ktv/d7VRqNVpruCf3sHnEPyRhiJRQKBYIgGBAWYm1kF6LPupqsELCwsDgXWJUCwHEcYsehUSxSrNdPqu4Vlwv0tXUhfyHoXK7Dbbcd5d3vnuMv/mKMf/fvxllc7FsLEjvI5XI4jpNmGUVRhO/7ac2BuIMkDiBpqLq9hP683W4PbJuNG8h3Nn3UwsLi2WJVpoFu3LiR/fv3J8Vg9Tq1ahUgJWchfYFk7wgajQZxHFMsFvn1X9/H5GSdP/3TTRw86PKHfzjDVVclrh1JEYVEqDSbTTqdTvq/bh4n40hKqAgk+V+sAyF3XTAmwkRnFEmlss5CejZ4rtY20DEVCwuLc4tVKQDy+TzQbwcB/RRMIRr/0CHytRqz69YN5OJLfMB1XYIgwPNcbr31CBs2dPm937uQN75xA+97X41f/dUaIyMm1fyFxMXVNDIykhI3kFoOAIVC4SRXj1gN4kYKgiDtXyT7+r5PEATpPiJQhgkBqT8ATqpXkM/0dZHPsgVrKwWd+aTnqHE2x7ewsDgZq1IAFAoFoF8LIBB/PMCPf+YzbHzqKR65+WaeeNvbMJ5HGIbUarWUgEqlUhozeP3rZ7j66ln+/M8v5KMfXcMdd5S4+eY673hHl0svDYGYcrmcuoPa7Xa6r6SfSiZRrVYbcA15npcSfj6fT4ldOpmKcBF3kVgFMCgEpB2FIFuHAMM7mOoKZlkbQZAVGMOESfZYWaLXMY9hLTHkGOdKGFlYWCRYlQJgbm4OGMwEgoRU2u02aw8cYHx6mv/z+7/Pyz7xCS74rd/i7l/9VRbWrk018Xq9juu6FIvF1CU0Oeny67/+GLfcsshf/uUUn/50hb/6K8O6daMUixG9nsH34V//60VuvbWD4yQL0nielx43CAJardZATUIYhrRaLXK5XEqA4krSy1XqTqRC1GKtQN/tpIVGthpZu5CGuX2kOE5fM/k8K0iywka7qXRdgwis7LGWa42xnDDQsILBwuLZY1UGgWtLpK+LwaBfEHbtXXdxzytfyYmJCb79O7/D4Re/mMs/9amBOIBYC7p+wHEcfN9n+/Y5/uRP9vGtbz3Ohz50lOuvb3HZZS1e8pIWIyMxv/EbY7z97ePs3u0t+fZjFhbCAU242+1ijBkQDjoTSOISug11dhsJGIvbCBjINBIrQqegZtcjyH6m/9davxwnK0DkGFLToOsbRHjpz7MxD10RrWshhgms7I+FhcWzw4pYAMaYm4A/AVzgL+M4/oPM9z8P/CFwcOmjD8dx/JcrMfYwrF27loceeohaucyGQ4fSz+M4pnzwIBt37eLv3vEOCu02xWKRXa95DTf+5m/SW9LEgyBIg7zS+E1cLI1GgyAI8H2f0VGXN71pmje9CYIgoFgs4jgun/1swH/9r6O88pWjBEFMo2GIY8PGjSGveEWXH/sxuPbaFldeGaVav2jM4kKRIrJSqZTGEsT9I4FiCQJLfyJxO4kLRy91KfPXC94LdEZUNugswmOY716Ttd4+u11WW8/WROhOq5rwNbI9lUQInMl4FhYWw/GsBYAxxgU+AtwIHADuMcZ8KY7jRzKb/nUcx//22Y53JpAgcNYFBPDyb36Te6+/nt5SnMAYQ7xpE70goHLoEO2tW1O3ijGGQqFApVJhYWGBxtIKY+ImETKW4wgZ/+zPNnnlKxf55CdH6XYN5XJMPg8PPeTzjW8E3HFHARhhdDTiuutCXv7yHi97WcSOHW1ct5ummIZhmLqitO/fdd00mym7VkH2RwsAIUvHcQYWuZHPslq+7oKabWmdHQ84yXIQDPPnZ/3/w1xR2f91NbWunh7WWlvHNYaNaWFhsTIWwPXArjiOdwMYY24HfhrICoBzjlpGAFTn57nkkUf4H7/yK7RrNYrFYuoqOX7ZZYw//DB71q8nCIJU4xQSlXbSuVwOY0xaO1AoFFKylrYRvu9TqRh+7de6aRBY/PVRFLN7d44f/MDlRz/K86Mf5bnrrgJQIJeLmZqK8P0Y143Ztq3Fu99d58d/vI3vuye5TMRyyOVyFAqFNL1Ut6UQ15DUK0jwWQSYfAb9nkVaUAikpkG2zWr/AnFzCdlmg9N6ex3kljGGafHZILUmexHA2mWkXVnZYy8Xe7CwOB+xEgJgI7Bf/X8AeNmQ7d5mjHk18Djw/8RxvH/INiuCZrMJnCwAXv3Nb/Lgjh20ikWcJbIUYj+8fTsTDz7Io696Vdr+2fd9er3ewEIxYRiysLBALpdLXS7iJhKCaTQaS+4gJz2WXnd42zZYt67OzTfHBEHAwkKO++4rcM89OWZmPDqdmHY74u67i3ztaxU2bw555SvbS2PAhg2Gt7ylwWWXJQS2uLhIe8mdJYSriTyKIhYXF9OaBSFy0fBFGOjPNZFqwZElVhjU/LW7TH8v/2uBI7UMwzKTtFtIoN0/8nc2uJzV+AVa8CxnLVhhYHG+YSUEwLC3Jlum+mXgc3Ect40xHwA+Cbx26MGMeT/wfoALL7zwGU1IiK6Zz5PrdHDDkE3793Px44/zPz/4wWSCS6Q1NzfHxMQEM1dcwRVf/CKtVos4jqlWq3Q6yVKRURQRBEHaC0jIPAiCNINHLwqjg8ZAmu3TbrcpFAop8cmKYuVyxI03xrzxjcnyleLf73RmufPOIp/7XIU778xjTIwxMDPj8t//e5krr+xy881drroqx/btC0xOdgf869qHL4LMGEMul0vjGNIqWwebs778bPZRtgBNE6+MJVaP1Fjo9FAhYOmrBJzkfpKxMs/GAOHLZ/Jbj5ENcuvrMWzu2jqwgsDifMFKCIADwAXq/03AIb1BHMcz6t+/AD603MHiOL4NuA3guuuue0b9Do4fP5784TjUSyVGT5zg5i99ia/81E/RXvL9x3HS6VM097k1a/DCkNzhw5itW2m1WuTz+TQFVC8sD4mVIfn70mhOiFsIaGFhIV13IJfLkcvl0uPk8/nUFy/ZPkKcvu+nVszrX1/nDW+YYWRkJA0Oz8z43Hlnlb/92wK///tFoAhMMD4e4vtgDAQBbNoUsnlzyKZNIfl8jyCIKZVifuzHQrZu9QbaVQBpxpNo6TJnrY2LNSP7aaIVggbSZnjaVSTbCWQbsZKWywASISbbyfe6pYfMD07OUJLf2nKRDCV9fD0HLYj0/xrnSmhkr7HMZzlrx8LiTLESAuAe4GJjzFaSLJ93AT+nNzDGrI/j+PDSvzcDO1dg3GUhLzYkbqCf+vKXObBpE0+86EUD23W7XarVKrVaDc/zOLBlC5v27OGxyUny+XwaC5AeQZCQpLx8zWaTYrFIs9mk2WymL2GhUEiby3meR6FQII6TxnOu66bH7nQ6qRUgvnz5XPcCkkyhQqFAq9WiUGjwznc2ufXWgNnZmJ07Czz6aIm9e116vZg4NjQahv37Xe68M8fs7MnZvldc0eW1r23wohd1ufDCDlu3wvr1/ZRRKTrT8QYRDnpRHO3S0emiErgW6NgF9MlsmAtIBKkcU0hfrBM5lqSX6uNnXVcCIWk5L7mPcgxNoFoI6JYeWdLVrq+sEMiS9nLfZ+eX3Te7bXa/7P5WEFg8HTxrARDHcWiM+bfA10jSQD8ex/HDxpj/Atwbx/GXgH9njLkZCIFZ4Oef7binmVP6t6SCfv6d7xy67fz8fEoWhy++mI27d/P49denefZAqulKdpH8Hcdx2kROXr4wDJmfn0/9/47jpMJA5pXP5xkdHcUYk7aZFvKs1WpEUZQGdaUeoNlsUq/X04rhxcVFGo0GjmO49to2r351l0KhkLpVhLw8z6Nej2k0YlqtmLk5j3/8R4+77srzkY9UiaI+YWzY0OUVr+hyww0hl17aZd26BiMjXYxJ3GpiwYi7SyqdRTMXQhQLQVsJ+gcYsKaEJCX9VtcwaIEh1pIIRFnPAQYFRbb9dtZlJEF7ucc6GK41bOi7xmTOw46XzYTSVoMWENoK0m069DObbeuh98u6trJCS1tHFhZnArOcRvF8wHXXXRffe++9T3u/O+64g4cffhiAHT/8IfPVKk9efPGy2xeLRYrFIlMHD/Laj32Mz/72b9Pr9VL3juu6TE5ODiz3KMQmL6cIB4kPFItFRkZGBrR8IYNyuZy6j3K5XBofEG202+1SLBZTApTlKSWjSLRr3TIin8/j+z75fD5tO6G1ZXGXiAABaDQMu3fHPPlkj/37A+67L8899xSZne3rBaVSRKEQE8cQRbB2bcSLX9zjmmsi1qzpAg5RBEeP9tizx+fJJw2Li4ZSKaZchmo1plqNGBtL0mGDADwvJp+PGRnpMjoaMjUF69cbcrm+f16sHxFiQr56tTV9DWQbTeDiTtPxBS2IdCqpQK6nXHu9EpwIZO3qGha81tq4ThCQ73V8yPf9ge2zhC/ICophY2uhq62B5dxGw6yQrGAZ9v2wzy2ePzDG/DCO4+vOZNtV2QpCegEB3HfttafdvtVqUSwWOTQ5SXlhgVK9zkI+nxaCGWPoPfII1911F9/+mZ+BsbFUKzfGMDk5mWq9kp8fHzzI1j/6Ix5/z3voTkyki9ED6cI0Y2NjGGMolUoYY5ibm0sDswsLCwMxhiiKUheSdntIEDWKkmZx0mZaE4wOBJ84cYIgCMjn87iuy2WXeVx+uQE6hGGDdvsIu3d77N0bcOCAz4EDPq2WwXESYjh40OeuuwJuv/3kR6dYjNi8ucPISMTCgsuhQw61mmFhwaHROHXRuTExa9ZES2mwEa4b4/sxl1zS5ZprulxzTXJ95+djFhZiCgWH0dEcxaJhaiokn+8sHadPYkLW2ZiCdlkBaTzGGJOuGSFkqteFBgYC3PreCDFK5bPcE7EORXjJmHKPZDyBjC1pu3Ic+Z2NpWhXnPydddFp4ZEVKtqC0YJRH19bJ9k4RDagnk0hHlaop8cfhuWEkP58mCAbJjCfKU4V+1lNWJUWwFe/+lXuueeep7WP4zgUCgV+9mMf49EbbmDX1VfTbrfJ5/O063Xe8z//J71cjkKtxlc/+EF6mzdTr9eJoihtAud5HtVqlcpDD/HSD32IE5s3U1hY4Nsf+hBOsYgxJrUIhEC05iqFZpVKBd/3qdfrqStJXtLsUpISLxDXiBCLxB7ERSP76zqBfD4/YGlov78Qn/jxZTupfzh61GVx0ScIcnieR6USMjUV4TgmDW7rgq049qnXHXo9hyjyaLddZmbg2DE4ftxhetrj6FGP6WmHbhd6PWg2XXbtCk4rPADWrQvZsiVkZCSpo/D9iLGxHhdc0GXr1oh83jA9HTEz49JqQT4fUyxGrFvX42Uv61Cp9PswSYM+TezaitBWg8QldIxAbzusBkILID1m9m9N+KLVZ4v7siSeLcTTMQ5NykL2Ousra8lk3Xba8oHB+IYOzA+LRYhQzFotWdeY/lx+svPS3+u5ZI+hhV/WtZbd9lSfZ8fKntvTidVkj5v9eyUEznlvARw+fPj0G2UgD/yhbdu44F/+hfu3bsVbIs6XfvObNIOAO37xF7n27rv5mT/6I+765V+msSQEgFRbn/rKV7jqs5/lO7/wC+y98kpe+xd/wVW33cae//gfOXHiROqmaTQaLCwspM3hHMehWq0SRVHabgJI00J1Hr1oePIy6WUtxa3U7XbT9QkkdbNSqaSrlEmsol6vp8VtIlD0mgaQPMy1Wi3NCEoEY5tSyU3dZ0kn1f5+QRCkZCHpsqOjMVHUpdtN6irGx+GSSwY14jiOUzdV4jqL2bMn4NFHAxwnolpNMpm6XUOz6dNq5Tl82GXv3hx793o89ZRLpwOdjmFmxqPVOr3wKBYjbrihwfXXN1mzJmZ8HEZHY0olqFQMYNi92+Xxx12eesqhVovpdBxarYhCwVAuQz7fI5dLXFxBELN9e4+XvCRk/fp+ppEmYB0DEWEJ0OmENBqGMEzqM5LjJddRLEjP81IBrYW3PBP6eK1WC+iTmCZwuebZBYY04ctcddwn67LSY2srINsQUH6LQMoKQjm2br8iyMZ05LdOv5a5Z4VWNuYix8omMOi5DosBZa9P9lrp8bLbZwWanmP2+2HW09nCqrQA/vRP/5TZ2dlnNObI4iK3fOpTHNywga+/9a2srdd5x5/9GR/7wAeILrgAx3HY9thjvOaTn+S+172OB173Oozn4Xc6vPrzn2ft7t3846/8CkcnJmi32+Q6Hd71x3/M7ptv5qnXvz4lZ0kRlZewVCpRLpdT11KlUkktBiH8KIoolUpAXyP1fT+tQJYXolgspgKt0Wjg+z6+76fZSL7v0263U8tB+8rFCsj6wmXNA3EdiYtFk4+MnSUl/fJKjyMgXd9AWzdSbCf1FTpQLHPSBW1ZTVmnioJhbi5gzx6HVqvH2rWwbp2hVPLo9QKaTcPDD8M3v1nmn/+5wpEjudM+H8Vij2IxIggSS6PbdanXHZpNQ6eT9HzSWLs2ZHS0h+Mkbi7PS2Igvg+FQkS5HFEqxSwsOOze7fPUUz7ttia+mKmpkPXrQ8bGIno9kGatpVK01GYkAhzi2BBFifUURRBFQjQJgZXLISMjIZVKj2PHfA4cCDh0KIfrxpTLEeVyjzVrkrThCy+MWLu2x9q1hsnJiHK5nwKczMsZECZyj3Vas5B5liTlnml3kyZ9+V7fd02K8ozqZ0a/E1kyle10kF8LDhk/mwigFS/dq0tDW1c6LVoLv+x+WYGiM+S08CmXy0OfwdPh6VgAq1IA3H777Tz22GPPeFy/0+Env/IV1h05QuQ43Hvdddx33XWpzx6gePQob/jMZ3Achwff/Gau/+u/5thFF/H9W24hVAFhYwzjx45x83/7b/zove9l90tfmhK7EL2kenY6HVzXpdlspr576HcmlYKy0dFRIHlAq9UqjuOkvYrElaUzgiTQqF8kEQQSgAZSS0A0dnFXSPBZUlUlziCfyW9Z6EaeKWlxLfERbZKL4JN4hBTYNZvNgaU75cWUF1nmr3sweZ6Xum3kbxE4OuittU45pmQDxXHijmo08tRqOZrNPPV6Eijv9WDDhgbbtnWYnOy7uUQoi78+jqHVCllY6LFrV55HHy3z2GPFJReWSxQZosghihzC0KHddqnXPep1h1IpYvPmNlu3tpmY6OG6yfxqNcOhQy4HD7rMz7tpm5A4hkbDpV53abUMxoDrxjhOIjS08mhMIhQWF5PxADwvYsMfn7BcAAAgAElEQVSGDhs3Js9oreayuOgyPe3RaPSJXeB5MUEQUygk7jVjkuMWixFTUyFTU13KZajXHWo1l27XUCxGFApJ/Um3a+j1HHo9g+v28P0Iz0sEWhhCt+vQaBgajUSYaloaGQlZs6bDmjUJcTabhmYziSvVaokArlR6bN3aZPv2DuvWJdfC8wy5XI/xcUOl0iOfT+5d1nWUjS30tXiXXK4vVESI6Cr6/jUerDoXaCVIF1pqTT87H9lnamrqpPtwJjjvBcDf//3f893vfvfZDR7H7LjvPjYdOMCXbr4ZjGF8fBxj+n2AAs/jhrvv5qpvfINv33QTD197bRpQzOfzaT1AGIZsOHKEGz78YQ5u28a33/52wiAgCIJUys/Ozg5I/ziOU21bqoYlKC0pqMaYNF202+2yuLiYErt+CIXktHYjwW3HcdK2Fu12O0339DwvTbMUrV4HV4EBLU+nnsZxPJDaqnP0ZXsZU4SMNo/13CAJ0urCMv2SdLvdVACJENBamwgRfUzt19fjSu8kEZow2HhOm+5yPWQ8cbNps15vJ+Pp9Z61pirQLhC599qPLd+LUJfzljElQ0xal2ghmlhaiRAYGwPP699LGTuOoVbzOXQox/S0w9ycz8yMR61mUuKNInmOEsFx9KjL0aM+zaazZNH08H1SQu90nKW4TCKYul3odBy6XYPnxWnAv1CIKBSiJaJOqt7j2DA353HsmMfiord0HePUehKLbG7O5eDB/mp5w+C6EZVKj0qlR7WaWGZjYyGlEtRqhnrdYX7e5fhxn5kZn0bDZWKiw/r1bTZs6LBmTciaNT3Gx0MKhTh1+RWLSTypWIzwPJaEY5L9Vqn0XUpyLySWJvckq5zJe7N+/fozJKtBnPcC4B/+4R/49re/veLzGRsbA0gbv8kLKeme0mrB9/2BNFDxw5tajR//whdYf+AAj7/qVcxecAEzGzeykM+n5CtapRCzfsm1+Sp+dyE02Ua0bSF8sSqk6llnvIhPX0hKjpHL5SgWi+m8daBQgspCmtoNpMlciE5cOtqHLEIrqxEJuQmRCpnJXIXoxCU1jPz0+gPQX3dByFfOSY4jBCuanRxH2ntoX7MQrwgdY5KsoWG5/sCAQNKWiggwOTc9Zy1opE+TuOe0pSPnJ/PQqb9aoMh4Qj5aCIowl+9ku06nMyB4snPKukFgMF4gBZRAKsy0a0gXaso5aOtQf6bjHM1mjOsaPK8/H9nH931qtSReND/vLrnBHBoNqNdd5ucdajWfWs2jVnOZn/dZWPCYn/dpNl0KhR6lUo9yOWRyMmTNmpBSKWR62ufIkYBDhwJmZ31arZOto1OhUOgxMdHF95O4VLdrCENDFCWWZT4fMTnZZXIypFwOSTrrGKrVmNtvH39aY6l7cX4Hgc8WJDgrTeDEVTE/P59qqEEQ0Ov1qNfr6cvabrdTYv6n976X7Y88wqbHHuOC++9n8sABvvOWt/DQK185UP0qWqUQWK/Xo9lspi+ZBJSlbYT8Xa/X05oBHTuQF1eC1kLEogFK0FmCvAsLCwDpcWBw4RexTrSwkvPUPs56vZ66lSQbSVIju91uuuymXC/ts5X5aRKQF1+Ejq4RkOslghMSItHxDiFI7WbSvl9N0kK60s5Dk40Ukwmp6ePJtRISFHLTy4TK9U7cL0kbES1cdQGdXAMtwMTqkjhQ323RT3OV+ynjCKTGRfaVZ1musx47686Q6yCLEOl6CS0ApJGivg4yFxlDhLoO4mrhrK+5roFJU63jfq2LnP+6dV2mpgatQ/nR1qI8B6JAiLICDGTKafdPYvkbTpwIiKKATgfabUOnkwiRet0subg8er2YWs1jbq7A8eM+vZ7B80I8L3F9uW6SWt1uu8zN5Tl4ME+jkV9y3cWMjvZX5TubWJUC4JkGTwT6ZRLIgy0a/bAMBei3VAZSohONTRrBHdixg91XXkm9Xmfs8GF+7rbbOHrDDdSWXkbHcZidnaXZbJLLJYFJWSheiFmOL/OV+IAIjGazmT7s4mPX5xRFUUrOmuTlhZBgn94vl8ulPYqku6i4c6RpnryUImBkXp1Oh/n5eVzXTYVoFEUsLCwMuLskcA2ksQm97rHWxIUc5Txln4WFhdQFIi+7dukIuQukIli7eGQMETASnBfylf2F5LLauqzpIIFRLaQWFxfT6yb3S+6nEI4uEJPrIivAaTeXHFtn/gDptdfPpXbZSS2KTnWV50IqreXeaytIu8pEu5fjSkBfrr2cu5yfVHprKyVbpCeCctAXn0C7NvU+eluZvwgz4KTroFN35bnX1pE+dtbKTgS1WI8RxeKgtaKFkuMkXQDkHdZZVPr/bEC6v83/xdnGqhQA2q/5TDDMLSbpmcOOLUQ8bGx5CUQwCNkuLi4m+46N8eCOHVz16U/zTz//8/R6vZQApWagVCqln0t+v+wvY8h32jIRktDzG3auuuXFMEIQyHZAqmFJumkWQm6+76ckLxArREMfW6wAuQ46s0m2E3KX+clLrlthiGUkc5WYied5NBqNNEivq4uz0PEBTQza9SRBYLn+0lFWu6/EbSXz19dNzjf7t/yvSU5bK5qYxTKQ6zzsGq8ENHnrOEcSsK6dlP0CpG4zgTxn+jyE+LSgFleSWNHaxShkL2PrrCG5LkLqevEj/Y7o+EwURQNNCbXSIMcTxU+20b2pBFoYyfFF4Ms5irtXrEgR3rqAUysoZxOrUgAs9zI/W2hyf7qxE3kAswKi1+vxjzfcwL/5yEco338/T23alH4nL5po6qIpy4uiXyrtDz8TlBYXecuXv8xdr389x5eyDZ7O/qc7f11P8HQh909nHGmBpyEvtLjHhDDkOutrBKcWhsOQ1RyHQQsvgKDVYnx2ltETJ6jOzzMzOcnezZvp5oanmerndViKoJ7L073PKw3t0hGcbk7Ze6DdLtnP9ba1zGp+GuJq1TGsYTn7zzdod5JYUEL8Whieq/NYlQJg48aNZ32MlQyed4KAr73hDdz0pS/x0V/6JWK332cGBrVCsQqeDYJmk/d8+tPMj4xwy2c+w8d/4RdYHBl5didxOsQxXrdLuAwJDsOZCBBNIln3lYYThlQXF6nOz9MsFDi2du1J8/O7XbrST1vPOwwJJb1jCIJmk8379rFlzx62PPUU47OzzI2NMTc2xmKlwqWPPsrbv/AFDm7cyGOXXsojl19OrVJJdo4iJmZmaBaLNJZqPCxODy10n++kr6HdTlpoPlfnsCoFgJhuLwSIJv/IFVew4777+Il//me+8drBtXJOpSFmXQanHa/T4ec++1me2rKFr910Ez/2ne9wy2c+w1+99720g4DLHn2Ul33/+4zMz+P2ejhRxD+87nX86Ax6KhHHTB47RnVxkeOTkyxUqwStFtc88ADX3XsvoydO8OS2bTxwzTXsuegiRubnmTh+nEKzya7t21lYqm9YCThhyOZ9+9j+xBNs37WLiZkZauUy8yMjVBcWaAcBD159NXNjY2x/8km27dpFaclt0igW6fo++VaLQrNJ5Di4vR6dXI52ELBQrXJidJRWocCGgweZmJnh4MaNPLV1K1/9yZ/k0IYNRBkTPtdus3XPHi575BF+4hvf4Mi6dUSOw8aDB2kWCuRbLR570Yv4wctexpENG1bsOrzgEMeUazUqCwtUajUKjQZ7tm5d9tkwvR5TR4+y5tgxxubmGJubI9fpEHoeoefRyeVoFgo0i0Wa+Xzyd6GA2+uxbnqadUeOMDY7i9/t4oUhsTEcW7OG6bVrOT45STeXI3Rdurkcs2NjdIN+qqkThozNzSXHOXyYqaNHqZdKTK9dy5F16zi+Zg31UmlZxYEoorK4yPjsLBOzs1QXFig0GhSaTY48wxTQp4tVmQZ65MgRPvrRj56FGa08dKCrVKvxCx/7GN+94QZ+eN0ZZXFRLpfTimINJwzZ9uSTXPHww2x56ilq5TJzY2OMzM8zOz7OF9/6VnAciGNuuvNONu3fT9Bu08rn+c4NN3Bk/XpC16XUaPCe//W/+Nu3vY09F100dA7jMzPsuO8+Lt25Ey8MmRsbY2JmhlynQ2wMT1x8Mfe89KVMr13L5Tt3cvUDD3DB/v3MjY0xMzFBJ5dj+65dzExM8PAVV7DzsssGXviJY8e49LHHMHFMOwhoBQFzY2McX7OG1lLjPycMKddqbNm7l0see4xtTz7J8clJdm3fzq6LL+bQ+vWpZUUUceG+fVzz4INUFhZ4cts2dl18MTMTE7hhSLHZJNfp0MznaRUKRK6LiSL8bpd8q0V1fp7R+XmK9TqH16/n4MaNRN6Z61Jut8u23buJjeHgxo00SiUKjQY77ruPl959N4uVCg9efTUPX3nl07IKnF6PQqNBXayLc4kowg/Dk9xc+UaDkfl5ur5PN5ejs/Q7cl2IIkZPnGDd9DRrjxxhw6FDbDh0CCeKODE6Sq1cppPLse3JJ9mzdSv3vvSlhJ7H5PHjTB47xoZDh1h/+DAL1SrTa9emVlcnCPDCEDcMCdptCkuCvNBopEI9NiYl6pmJCbq5HF3Pw+31mDp2jLXT00wcP54cp9cjaLcZm5ujWShwYnSUcq1GdWEhHfvI+vVMT01RqtdZd+QIa6enmTx+HLfXY2ZiIlUqRLEYm5tj9MQJWvk8s+PjzI6PszAyQmNJWB2fnOT9z5DDzvs6gD179vCpT33qLMyoD8lkORW0L/pMMTY7y3s//nH+z0/+JI9ddtkzmtuVDz7Im/7u7zi2Zg0PX3kley65hGBxkfG5OXLtNj/asWNQQ40iXv7973Nk3Tqe2rr1JI1l8549vP2OO/jEe9/LzORk//y6XV71rW9x3T33cN+11/LIZZdxeMOGdP+g2cTEMa1i8eRJxvHAOE6vx0W7d3P5ww/zosceY25sjL1btrBlzx4qi4vsvPxyOrkcQbtNvtlkfHaWyePH6fo+ThQRtNvUSyUObtzI4y96EY9ffDGNZ5kN9lzALF2Hqx98kEsefzwlj1Y+Tyufpx0EdIKAcImsRGCtP3SItdPTRI7DsTVruP8lL2HnZZdRWVxk6uhRxmdmqJdKiVuqWmV8dpYNhw6x9siRVLB2goBDGzbwxPbtp3cJLmnqm/bv55LHH+fiJ54g32qlhNb1fdYcO0bQbnNidDRZba/TIdfp4He7xMYQOQ6NYpHptWuZXreOQxs2cGjDBhaq1YFnI9duc/UDD7DjvvvouS7HJyeZmZzk0JLwbavuv2cVUcTI/DyjJ05Qq1SYGx09reDPNxpMzM5SaDbxul38bpd2EDA3Ps6J0dFl40IAv/u7v/uMpnneC4BHHnmEL3zhC2dhRn3o1MPlIEHMM90eEpfO1IEDvOfTn+b/+5mfOWkdAx3wOmnfMOSNX/8623bt4gvveAfTK2hGvuS++7jh29/mH173OvLtNsVGg2vvvZeDGzfy9Te+kcVqdcXGMr0em/fuZctTT7F3yxae2rKF2BnSGCuOqSwu0nNdGoUCDNvmBQy/3Wbq6NFUg823WuTabYJ2Gy8M6bkuPc+jFQQcXr+ew+vX0/V9tu/axYvvv5+Ln3iC+ZERpteuZXZ8nGKjwdjcHNWFBebGxji8YQOH16+n5zippnzBvn1se/JJFqpV6qUSwdJ4AKHn0fX9VBvu5HIcWbeOJy65hMcvuSTRjJdcGrlOh2NTU8yPjJzsAolj3DDEiaIBl4rFIKwAeIYCYOfOnXz+858/CzPqQ5O7hs7OGVZPcCpIIVgYhly4dy8/+zd/wxMXX8zf33gj0VKjOCDNt9YZE6XFRd51++3UymW++Na30qtUnnU6bBY/9p3vsGn//lQb3XXxxezetm1Fx7BYQWSsrDOF6fXYePAgQadDa8kyiI3BX9JgO0v+8M5SzyuLs4NzIQBWZRD42WbJnAk0+Wuiz6a8PR3oasR9mzfzZx/8IG/4+tf55T/7M/7mbW/jwIUXAqTrFIhVUZqd5T1/9Vf8y1VX8d0bb8T1POJl5vF0hZLGd2+44ZmdmMVzg2dA/gCx66bPmsXqxuqymZewXM74s4VuMaA/Gx8fT6v9NFzXTZeKhL6GXywW075CWWgB0s7n+fLNN3Pnm97Ev/r85ykt5UVL8RLA+IkT3Pqxj3Hvddfxz695DSwVvuTz+WXnpHuxDOvrIlWqw76zsLBYPViVFsD8/PxZOW65XKZer6d9fSDpVBkEQbr4SnZ7aa4lFZyOk/T+lypXDSkGyfa+2XP11Txw6BA//cUv8tlbbiEmsRbGDx7k3Z/5DN9+1au496UvHagCltXFpLJQYgZSjVwsFtOqZNlHrA/pnbOcpXAmAXBIhKNUyepOh1LRey4sNQsLi+WxKi2AlayU1FqwkHiWGHUXSL0SVr1ep1arpRXA0ldkYWHhpFL9YrGYLvYiGrj0Tul0Onz/ppsotlq89O67AbjqwQe59ZOf5K4bb+T+V7yCyclJ1q9fz8jIyEBbgiAI0nbOcg5CwrVaLW0DLWXz0lJABIY+H4Hu6KhbX0tvf5m7lLu32+00VVUa5k1OTqbrGlhYPB9xPljAK2IBGGNuAv4EcIG/jOP4DzLfB8CngGuBGeCdcRw/tRJjD4NumPZsocl+WBl8rVajUCikLaDDMEwtAumFI50MZQEW6UEjGrpuOBbHMaVSKW2iJlpyMwz5P+9+N7d85CNsPHiQTQcO8Klbb+XounVMjo6mx/Y8j9HR0XQRGbE+ZG0C3ftHt5fQnUeld42U2eu1hvUi6cHSmgZS0u77ftoHR9oziDUBg9Wb0thLevxI35xhMRRpfXEmVscwPN1iuWeKZzqOtIOWjrLDnrNnC73i1konB2THEYtP+uFkm+Pp8XVrauhnucl7Af11l3X3TmkmqPvuyDsllrM8U1qB0b16pG2INGqUxm3ynMuc5JmX1hO6xbbu1SR9fnRHVd3C/EygG9idCzzrUYwxLvAR4EbgAHCPMeZLcRw/ojZ7HzAXx/F2Y8y7gA8B73y2Yy+H6enpM9ruTFIz9apXrVYrJSj5XNobi5a9uLi4tJZrkJJfuVxOG1uJ9iwP1OjoKK1WK7UUyuUynU7npMZznucxv2YNd73lLWzbuZOPf+AD5KammFyqNZAF5HU7ZVkGUrfClQcVSIk+jmOKxWLaORQYIGMhcyF5aSUsL5cs3SidKqUhmu5GKi+k7mJZqVTSNtbSqlrWRZbWxzJPWadAN4Brt9snNWuTdsuaPHQLYZmDLFgj91IEoNwb3X0USMlChLkWhCKgZG66XbPcQ7n2YlHp74TcRIjrlsUCsdrk2sv1F5ee3HPok422WHVbaHlG4jhOG9LJWNlOlXL9dfM5uVb6munmaZogZTwh/ziOB7qsaqLU5yCELnOSporSC6tYLJ7UWVMrMULCuhvvMGVOv/96/QfpNSTbisKi+/jotS/kb70+hv5M7rFuF67vvdxTea5eMAIAuB7YFcfxbgBjzO3ATwNaAPw08P8u/X0H8GFjjInPUg7qMP/6MGRvvn6h9UtULBZZXFxM3TYSSJWXSB+nUqmkrZjlgZQHXi8kIkJCHjid1aO1JO2CcRyHfTfcwPRrX8v40sMqHTnlIarX6xSXCq9KpVI6nlgH0upXLr2MI9vql1Q3HxsWL5CXtlwup90u5fqI5SNkKC4w6Waqr7+8LCNLxUciEDzPo16vpwJW90YSwQEMtCaWeQtkXCFOud4iYOTYmsDkPHR75ziOB9qAyz7ZfviilWqXnyZDGTufz6f767bK0hDN87x0zQAhAy2MRPiJBZZdCEeeTbEERfAJGWuho6+TdKXUgkKeL91xU9p6yzj1en1AE9YkKNBjy299THEXiiYt90DGE8EeRckqddJFU5OqzDvbLVUsH732gLZQZO66dbcmZzmGnF9/Xw/oL66jBV0YQqvl0+kExDEEgUM+79DrQa+XY3ExJIp8ej2HRiOi3Y5ptWKiyOccNQNdEQGwEdiv/j8AvGy5beI4Do0x88AEcDx7MGPM+4H3A1x4DlPRdI91LdmHLSWYy+XSHvuadESDk/9LpdJAW+R2u50uWFIul9PFXPL5PPmlVcE8z0t77Ys7plqtplaCvPTGJAuJtFqtdLF3x3GoVCqpcNHtiGWNBNlX5iJkrYWSNnX1ClSifclLJBqLBHVlpS+ZY/bF09aHkIPWjkRAaTeCEI3MKY77C6f4vk+1WsWYpPWzuNA0Ccv5LT1bqSUQBAEV1TIh22deFrjRC9LozqAihLRbQo4hkO20khCGYWoRyeeiXWrBpUlKx210HEWuk1w/EfTyt1xnCfrLdZHfWiBJ/EbmJPc1S+CabIU8gdSNqMlTk6vcO03A2nqT33JPtCtHroEIJhECOsstGc+j0TDU6x6LizGNRrJPuQzFYo8ogvn5IseP+8zOBkxPBxw9GjA/nyzYAgZjHDwvWe7RdWN6vRhI1jJutw2tlkO77VCreSwsuDQaHsViyPh4l7GxLu22y/y8x/y897RXD9OYnAz5nd95xrufMVZCAAyLlGQ1+zPZJvkwjm8DboOkEOzZTe3MoU2/arXK8ePHU/KRB1aIX8hH+vprM1rISghRrBEhHdHsgiCgVqtRqVTSPvGiVQsJCokKaQhJ93q91O0i8QJxaUggWa/uJAQgWmwcJ4vJC2ELCYsbSYShaM5ioWizWxNFr5csCN/tdtNFTSQADaTjuK6brvyl/a+ynXblaG1OiFGErXYriEDSq5vJeWqTXohPtGkdl9H+cW2tyPXXQXKxdPR1EMtNCwA5XyF+rZHKNZU1D4atxqU1WflOLxsp1pgWMvLciMYugkwEt9ZyNbnKsxFFhjD0iWOHZMnCPPPzhmbTZ3HRZ24u+anXDd0uRJEhjg2OA64LuRxUKhGVSkQuF9HpsLRqlkO97i0t4O5RrzvU6y7NpksYOnS7DlEEuVxMPp+sCVwsRlSrMeVyTBwn6wq3Wsl6wEGQLEzfaLjMzDjMzblLPx6dzpnntXhezNRUl/HxLq6brFccRYZOxzA/bwjDpLg8Ob+YfD5mdDSmUIBqtUO53KVQCKnVXGZmPObmXCYmIi67rMHYWEyl0qNUiqhWwXWdpWsR4zgxQRDh+yH5vCGXA98H348plTx8P6JcdoCz3xBuJQTAAeAC9f8m4NAy2xwwxnjACDC7AmMPxQUXXMD+/ftPv6GC1hL14h/FYpFarZaStpCC+EV1cEc0/mazSavVSgNKslh7oVBIyU8vO6fTNV03WQxaxqnX6+n34r5ptVqp9itkLSmnmoT0knhCKoVCISXnSqUy4CbQXVQlk0dr4ZLWKb5j0f6EfH3fT2Mgok3KNRWraGRkZEADFReL9vPqIHkQBGkMRYgwDMOBtY+hr+mKkKhWq+m2WlvVn+le8kKQ4lOXc9fV2dqPrk19/blc92ROMD+fZ3Y24MSJHCdO+Lhuj1KpycQEHDzo8cADJR56qEyj4TAy0mV8PKRc7hEEMUFgCIJwaaH0ZL3YmRmfo0cdFhc9HCdachUkC5rXah7NpofjgOclpNzpJFqrLMCez0fkcn2tNgyThd0XF13q9TPTWPP5CM+LETd1r5cUHbfbhm53OAF7Xky53KNcThZmL5cjRkchl+vhut10rrLw/Oysx759DvW6g+uyRPoxcWxotZK1dQuFiLGxHmvXhrzoRS1GR7tMTIjggFIpWVi+VnOo1SCOI9avh6mpHuvWRYyPd8nlBheF0VaRDvJqAS5/a4s2G48QxSTr8x/MqOu7mkWxSZ4jN7Pd2cNKCIB7gIuNMVuBg8C7gJ/LbPMl4P8Gvge8HfjHs+X/h1O3gxbNL7uKlWiH8r3484QQjDGUy+W0BYTcLNHa5Rjy/cjISJoVJEs1yrzy+fyAqS6plKKpi3+50+mkrptut0u1Wh0I1Ioloh9Q+Rv6sQyd3SPEJe4nIThxQ8m2opXrwGa73U7rC2S7YrGYCgc5bxFyIuiyi15kXUnSPkPGKpVKqR9csqtEEEmWhQgife/EQoK+0JFrqQWBth50vEULc/mu0+kyPw/Hj+eZns4zO5tDsqejKMZ1PaIo0Z4XF11mZgyzsx579wbs3p2j2Tz1ixwEEVdf3WHjxojZ2QK7dzvUag6djknJW8NxYsbGQqrVkDhOCDyOY8rliGq1x+RkTBRBr5csOu77PfL5Lrkc9HqJ+6LTcZeEREKq1WpEtdpkZCQmCHrk8wbfh1KJJcJONN/JyYipKQfPi9JnQu6hCPF2G06ciGg2wfN6+H5MLheRPLL9+ICGVoCgv4qeTkcWMtYWlbjhxCqSz0GykfpCX78f2prTpC8uw2GuMjm2DvKLwqHPScc09PnoTDcd09PXQse4zhWetQBY8un/W+BrJGmgH4/j+GFjzH8B7o3j+EvAx4D/ZYzZRaL5v+vZjnsqnCrNTUhQCwAhQXHryOpSOhCWXQRdHkTR8mW9VuhbAtrnLMeUh310dHTAf6yDq/Kg6YXUdVBPr1cr34ubApJWGCKMhOzlXLSLSohXrolYFtBf21gIUmfriOtJE7ME5sQ/HYZhOobcDwkMi5AVkpVzAlIhK0JEuyrEVy3HSuYZceJExMGDLrOzPsb4BIGDMSFx7NJsOjQahtlZn337fPbv92m3HcrlHiMjPcrlmCCAQiEh3AMHHA4c8Dl61GdxMdGME//wmaFcTrTSLVtCXvayOpdc0mPDhojJyYjJyYSEZ2cdjh+H8fEuV14Zksv1M3aEcCT42e326HQ8arWEKMfHI3y/HzMRLVTugRCKCFMdP4BBghJCEui/5b3Qfvv+2rpuOp6OAyTvQ0SpNGhZ6eMPS57Izk/HJ/SctFatNXKtXWt3nxwvS6zyLujjiHKgv9cavR5n2DXTfJG1CkXoyDOrY2hyL+T3MAFyNrEiuUZxHH8V+Grms/+k/m4B71iJsc4E2Qc5+52+uBJAhX661+Li4oArCPruFPENixaedbN0u13K5XIanGy1WjSbTcbGxlLilQBwseV5Q3kAACAASURBVFhM6wKEyIFUy69UKumLJvn1pVJpIKPH930ajUaahiqBsiAIUneKDpZlsx70d/oBFXKQB1eyZnzfp1wuU6lU0swgHQjX2r5kB2W1OJ3+J5ZWp+Py5JMjPPpogV278uzZU2DfvoBOxyBK0tRUj02bQjZujJiZcdizJyH1RuPMNKYgiLjggpBiMeLgQYeFBZd63aR+Y2NipqZCNm3qcs01HcbGIsrlHmNjsH59yMaNPdaujZb8xTJmTJIFEjM6CpVKbuAaLz11OI6fkoQQTbebaPri2pJnUKy15D4mxxgf76cMaqLKEpiQoCZLHYDOau06x17ui8xDB+41oel3I2txQr8WQEMH//X7ps85G0DW72qWfPU7rM9JoJ9xve+wz7LkrQWF1vD19dbxn2HCKOuO1XPT42u3UnaO5wKrshXExMQEe/fuHfqdziMXTVReArnZ4uvXD1s+n6dUKtFqtdJAsGjG2v2gc+FlX9FojTGpdaDJT7R10a6FeCWOINqw6yaLf4u7KIoiFhYW0kI0cbmUy2Vc102/g351sQ4cCtHrbCFN+KK5yOeNRiPdDvrpl9oySKyeHPv2+TzwQMD+/QHdrk+n49JqiZ8Ymk3S/+fnPfbsyaeadqnUY/v2Ljfc0Cafj3HdxMc8Pe1y4IDPffd5S1p2l5e/vMn69RFr18asWRPh+zHtdkQYGhwnolJxKJdhfDxmaqqH6/a1OrECe72IKHIxBvJ5d8Ctli1aEpLMxm1EoxUyEneC1sBlGzmmdnFpYpSxNKFks2cE2u2nLUq5f5qcsgQ/zJedPZ7eJ+tm0ZBjZV05st9JCxYpDTx7zKzmra+HnqOeU/Z66eMOc6loyyZ7neS3Pl9R0IYRdvbaZK2XYeem7/WpFNazjVUpAE5VRFEoFJiZmUn/FzKT7AnP8yiVSlQqFer1ehqEFPdDlqS1H1K0AYBms5laBOI+8X0/7R2ke+2MjIykGR6S4SPnIMFiiRuUy+WBYivJ+V9YWEjJWR7SiYmJ1GUi/nM5D51WqX2iOtuk1YqZnfWJY0M+H1OpFCkWY6Kou2QRBNx3X8ADDxTYt89jbs5f8n/7zM/33QK+nwQfgyBJr+v/JBkfGzeGvP71s1x1VZcdO+Cii1xctx8vkOuUZB21BsxkecFFgIpAS75zB2ILxjg4Tl97rlar6flntb7scWV8+b0cafTH6hOoJiZRGDRRibCQ/3WsYhiJ6PPXpCTPot5GCxY5hjynwwhQcCoS0ySo3RZaE88S4rBjZgWKtia0pp61AqBP+Nl3/VRummHH0MhaVNnP9Nyz0Om42TGH4bkkfY1VKQBOVd2rL7z4rHO5HIVCgdpSt82RkZE0SKpdGZAUmQlpyMMurhid9icuG9d1KZVKqVYphC0ahWScyMsjhC1BYiEhCRADqSZZqVQwJknflFiEWDXyMIZhmJa5iwvn2DGX731vjB/+sLKUKy1auUOjkWRezM4mec7DkMtFFIsx8/MOcZxcz7Vru4yPR0xM9Hjzm5vs2NHj+ushWdSskwajJVahA/V915A34IsV94VYK5pcxVzXaZGirYpAy1p2moAkkKyzOLLuDhgkKcm4ymZo6LGyRD7s2Rumwcs9lTnI/8OIQqd0ag1Xk5XMQyslekw5n6zrYTli0vPMkqR2/ci2+pjDgqSyX1Yo6Plpq2SYhq3Hyl5j/d0wbXsY+Q875zPF84XQny5WpQConGJNVJ15Iq4LIe4wDNOsFq2RR1HE2NgYzWaTEydOpGQkGurIyEj6wkoLCCmM0Vkykj0gBVe66Klerw9UgDqOk2YgQT8tU7Ij5PjiEqpWqyf5ZFst2Lkzx86dHgcOFDlyJM+ePQE7dyZCZmKix/h4D9dNil5KJZiaiikUuoyPt1i7NmbtWoAejUZMq5VkpTQaDq2Ww/h4yDXXNLnmmjajo6TCUOacCLX+S6T7Isk90H2QJLVTV77KfZH7NCyoCP1+LVooCMnrYr6sr1iOoz/LEqzWorVw1QSjiV8+y5Lqcq4DOY6u0JVjZLViPa4mfvlen5P+Lci6eLLXIbut3ie7zbDPsv9nBaEWSFlBkiVcffxhgmwYTiXATvX90znWasKqFACnajOsNQjJtTfGDLRTgOSBkT46hUIh1TI1gWlNJQgCWq0W5XKZWq3G3Nwc1Wo1JSDdj0QCxKLd6p43QpJyHjrlVPv3W60Wu3eH7N49zuQkrFvn4Lo+P/pRge99z+GHP/R5/PEcYSjpqjEbNoRceGGP3/iNeV73ui5XXtlDP+Ni1ch1EiGXzZuHvl83SanMp+SfDZiJdq/JXs5XrCYZW1xTmhh0Wh4M5lFrEhu29oG2FLTmL/dXE44mIW1B6vOQ/4e5SrLfnY48NImfqdvgVMdZbk5ZnErT1cdYzoWjtzvVOFlkhdWp5no2/OPnA5k/E6xKASCukmEQjc513bS6VtwHYhGIJlosFqlWqzSbTRqNBu12m5GRkXQbITUhKcnQEaHheV6a8w79YKGQugRbe70exWKRfD4/4GIIgoBGo8Pdd7scOeJSqTiMjLjs3RvwN38zzr33Dl8Mu1yO2LGjw2tfu8gVVzS58soumzc75PP9oqswjOl0wrTYSrtKhDSB9Dr09wvTbKasW0q7LnQsQWvU4vaSeyE/2SCobuYmBKx/nwnBatdB1m89jOyybpWsKyO7n36m9DXI+v31uZ7KZbHceQw7r+XmkxV4WcE1bJ9TnVdWSOp7drZI1ZL1ucOqFADiRx8GCarqhUr0Q64zYIQcW61Wqj2KL18ERrFYTP3ZEghuNpuUSqU04JtoyYOFSposdFaR4zg0mw5f/3qev//7Iv/0Tznm50/OYti2rcOv/doJXv7yNgsLDrOzLmFouP76mBe/2MWYaOkc8jhOQtI6X1ysEvHNawGoUwflnIUMZL9KpZJq+2INCPlLbxv9vR5f+7yBk4SPDmzK93K9tOtE/9bbCbLCoh8cXj5DI0vgWXJcbr+sa+RU7ozlyPN05K4xjOBlznL9stk3w8YeFrAeNq9nY6VYPH+xKgWAVM8OgzH93Hb98og7Qnz0IiDEDy0arwgESb3UxThA2hBOiF1IU4K+8rLJvpAIrNnZDt/6VsCdd1b4u78LaDYd1qzp8aY3tXjjG3tcfjnUahEnToSMjPS46ioDJJWoopn3i3JiHMdNx5b56RREneEicY6se0V6+GjtXq6JJgTZT+agtXoZK5vGJ/sJWWnXDAxm2sgcdGBcE5nW3LP7aCIfpr3qe6dz1bMFOVmhcSoNeDny14Q8jFCzPv9hY5xu7Kz1spwAE+j7tRws6a9erEoBoLXCLHQ7WtFW5aWTF1+nUupOkJLGKdtVq9UB/7guCtO9PXQzMdcNOHrU5eBBl8OHfaan83z3uzm+972k6Gl0NOKtb63xtre1efWrHYrFPK7bb1Pc6yWZN/LSComKW0WX0Ot2wkIM8p3sl01pzQZZhUz0uQk0YenYRTZ7RROrPq78nQ0SZu+jJmsRDPK5XINh7pUs8S2n2Q8TOvr8tMA6HVkuF1eQ66DdYXo7bX3oc36msBq7xZlgVQqAU60cJZq5uF2M6eeaB0GQFjfJiy7Vk57npZW74rPXBCnaNiR9dcrlMgsLPe6+2+UHP8jzwAMl9u8PmJ4+ubXAtm1d3vveBjfe2OElL6kRBM5Avj8w4JaSrJnl3BG6v7y4VuI4HuiHI9aA7iWvtXnZXi8Ko0lWk3A2O0e+z15DTYTLZeMsp63K39kUTH2OWaGiiVy2zc5NBH9WKMgxtLUzTEPPXo8shlkdFhbPF6xKAZBdb1ege9RL5o5unQCkrY1LpVLqdpCAcdKyoEO1Wk3bLosLoV9U43DPPSPccUeFr3+9SKfj4Dgxl1/e4RWv6LBxY48NG0I2bAhZv77Lxo0R4+O+0gLzacdOIU/JUMr2yZeYAfQXMZFAsvbta3++JjM5p2yK3XJa7zC3gta+syQo42r/vf7J+uuz+2cJcxjZ6njCMMtvOWIeNl428Jv1iWethtP59S3hWzzfsSoFwOzs8E7T4veXGoAkyyYp7BK3TxAEFAqFtA20CAchGM/zUv9/LpejVuvyv/93lV278jz5pMMjj+Q5etRjZKTHv/pXC7zmNQ1e+9o8Y2NJ6qa0j0jSQwsDfnNJq9S+eegvLKKDuDDYgEqCyNmulzrVUrtUsr1StGDIHl/2yfr2s5p1FrpY60wI8nSEeSq3hsxba/PDiDlrFWSPu1wgVL7PCgRL8hYvZKxKAZB1RwiEDHVLBqkZEF+/LHwiZCD9dyTbJ4qSxmfJQiwFfumXSnztazny+YjNm7tcf32LN7+5zRve0CIIEoKoVv0B33uxWExJXrcF0JWUInBkgZhs8y2dUSOBXb02rHaJaNfLMO1ba+owmDI4jESHuXsEWWFwKkJdaWTjF4LlAqv6fJ8JLPlbvNBx3ggAWX9X3EDiTsk2gxO3iBxHsn9KpVKqlSduk1xK/n/4h03e855FoihMXSquW0rH1oFS3bskS0wypg5KS1Uy9Ntc60VUJOir3UPaPZN1zei8etlWitxkHtqXvpwwzSIrMPTn2WDuMwlQDguuDvv/6fjbLYFbnO9YlQIguyi8rsIVdw/0hQL0tW5xm0g/dlmTd2xsLK0H8P2AX/3VCl/8Yo7f/d0a73tfF8cJgOD/b+/uY+y4yjuOf5+9+3L9sutdvyW2YwOWooZQEggbsEspbQhVkpaYRKVKVNH8EWT+aCktEVVKEBKIP6gofRMo1Ak0LiBIoeQFiEITQ4WqqoBJE+zEcUlSSFy7sWPvq9e7e/fu0z9mzuy543t311xfrz3395GsvXc83pnRWOeZec45z8kavLiI2Ny/mwsAjUoc5Mdux2mW/EiRsNBMeKuJG/+44Y5HueS35/P8cQdq/km5Xj49n8dv1LHbKHce/4z/Tfz76/UvNHojUaMusniFDABHjhzJPsdF0sKErdAHENI5oXEN+f+4QmiYDRw6iUdHZ/nAB9bwyCM9fOhDo7z//ScxW5aNAgpDS0NjHVI8YR2BeNRQPFQ0bAv/JgQHd2dqaioLIPFonpC2CtcY/468/EiZ/JN5fg5Afp94e2wxT9z13gria64XWPLB52wNjxSROYUMAGHoIswtNxc6eeNZwCFfHheFC40vkK0BEFa+evHFErffvp6DBzv5+MfHed/7Tmb5+biCZf6JNzydx+vIhlRSo3x73DcQhmvC3BN1PJs3fntolILJp3PC90YNfPzvFptSWaz8k/98bxbnsg9BpN0UMgD09fVlQ0FDQxrn/MPTdajKGdIuoXaPmTE2Npb++y6ef76LRx/t5rOf7adahfvvH2P79jG6u3tO68QNDWcYuhmOHY/siUsch0Y2BJHwhB++h1FD+b6BECTigJN/+m/U+Af5IJDPs59JH0AzGr1ZiEhrFTYAhDRQvIRjmJEbr6kbN77Lly/PGudSqcQTT/TxyU9u5IUXktTR1VdXuOeeCps2TTM5efqM0bgGS1zPJp70FBru+Ek+n28PDW/4HC+AHq/oVe9Y+RE5CzXi8bEWyueLSLEUMgDkJ4LF6ZeQ949r1gNZ3ZuQ/pmc7OCjH72Eri7j05+e4LrrpnnVq5JAMT4+m6V+4kU1whN4OEY80qZenZyQHgrCucQzecPfh7cHmEtrxXVl8mUO4u0LOdspHhG5MDQVAMxsNXA/8Grg58Dvu/tQnf2qwL7064vufmMzx11IvI5r6DwNn+P68mE2cDyUMgyT/OIXL+Lw4S4efHCIt799rgJl3FEbtuUnW8VP+Xlx1cz8zNwglHqIhTRVaPzjIJJ/Ws8PuxQRqafZBO+dwB53vxTYk36v55S7vyH909LGH2oXhMnXpA8lnsMbQBjhExplM+Pw4TL33beOHTsmeNvb5lI9cSOcr2RZb7hmPKQyP6s2HnUTOqLzC6aEN4EwwzekpuI5A/VWSgpvHgoAIjKfZgPADmB3+nk38O4mf99ZES8IY2ZZx24o5xxG95TL5WySVxj+2dPTw2c+s5HOTvjYx5KO4Eqlks0LCPME4k7l0NCHxVLikTP1auDkUy5xYMgHDZhbcnC+xe5FRM5Usy3KRe5+BMDdj5jZ+gb7lc1sLzADfMrdH2zyuPPaunUrx44dyyZJhfx/V1dXtlJXPCFrz55VfOtbK+jv76Cjw3j88eV8+MMn2LhxbvH3uDRDCDDhzSGfcgpCwx0+xyOA4lnA8ee4EzqM3VeOXkRaYcEAYGaPAxfX+au7zuA4W9z9sJltBb5nZvvc/fkGx9sJ7ATYsmXLGRxiTjyEst6s1tCoJ4u3OJ/4xFpOnTJWrIDRUeN1r5tm586TdHbWLrkY5+ZDP0C1Wq1ZqCS/lGFICeXLFscjg/Izf+P+AzX8ItIqCwYAd7+20d+Z2ctmtiF9+t8AHG3wOw6nP18ws38D3gjUDQDuvgvYBTA4ONh4Tbx55MfghwY4jMePG+pHHy3z8sud3HffK1x//Wz2RG9Wyt4UJiYmsrkD4ek87leIR/uEYBOKuKXXdFo9/0YzY+vV1hcRaYVmW5qHgdvSz7cBD+V3MLMBM+tJP68F3go80+Rx5zU1NZU9bcdVOONSECGH/+Uv97N58zTXXjuTPeHH/QXhc+gvCL8jLjscfl+81GS+Ec/X6wkdwXFACR3WIiLnQrMB4FPAO83sZ8A70++Y2aCZ3Zvu81pgr5k9BXyfpA+gpQFg9erVLF++/LRO256enqwBn5mZ4cCBHp54YgW33jpER8fcerceFYwLOfmenp7sTzzBKy6lEDfe+Rm64e0hHCOubdOKcgsiIgtpqhPY3Y8D76izfS/wvvTzfwCvb+Y4Z2rlypU1jTXULn4d0jy7d/eybNksN900DPQxOTmZlYQOI4fC20PcKRuGZIaRQXEd//BmEPoZYOGFRkRElkIhk83T09M1I3DijtlQX39kpMRDD63gxhtHGRiYSwvFi6nEs3VDyiYunRDPxI3X4IXahVHU+IvI+aiQA8vDqJxk2cXOLBiEZSDdna9/vZepqQ7e+94xyuVyzYze+Ik+NPr5ej7T09M1bwTxm0I8fl+pHRE5XxUyAIyOjjI9PV1TqTN+Ixgfn2X37tVs23aKK66Ajo7OLGUTRgqF3H9cQyjuwA1pnvA783WBQEM4ReT8VsgAMD4+jrtTLpeZnJzMOoLDKJ6vfKWPY8e6uPvuEzWjcUKZh5DeCVU4wwxfIGvkw4geIHv6V4MvIheSQgaAUqmUzfgNq3BB0nifOOHs2tXPNddMsH17lY6OzuzpPfQD5PP5obM3ntUbd+yq8ReRC1FhA0Bc7z/UA+ro6ODzn1/F2FgHH/nIeLYcZHgDCI1/XM0zNPShfyC8HahEg4hc6AoZAHp7e5mZmeHkyZM1E7WGhlbwpS8NcPPNp3h9OjA1rskfDxkNpSTyASGM69dTv4hc6Ao5DLRSqdSUTw6LwN9zz8XMzhp33DGa7Rca97i0Q5zeyef369XfFxG5EBUyAIT8f7xWr1kHjz3Wx7vedZKtW+eGdZZKpaxOT34FrXjmblBvAXMRkQtRIVNAGzZsoFKpMDExkTXgL720jOHhEtu2Tdcs/hIXcgvbQo4/LvYGc42/nv5FpAgK+QYwPT1NpVLJCr7NzMywb99KAN7ylmQ4Z5jlG8STtvJvBfE+oAAgIsVQyAAQFm+Jl2nct6+XVatmuewyqxnXH5eLiMtAhPw/UJP/V+MvIkVRyBTQ8uXLs0Y8zOx98snlDA5WKJUsS/WEyVz55Rbj4Z1K/4hIURXyDaBcLmfpH4DJyTLPP1/mqqumavYLwz3jKqFQGwDioZ/hu4hIERQyAIQUECQN9jPP9AFw9dWVrFIokI0Uikf+5JdiDDOC8/uJiFzoCpkCCsXbwiifp55aQUeHc+WVU8BcAx8//efFbwVasEVEiqiQj7STk5PZW0BnZyf796/kssumWLEiKexWqVRqxvY3quCp1bpEpMgKGwDmGu5O9u1bwZveNJ2N7Ono6KBcLgOnP+nHtJKXiBRZIQNAvBDML37Ry8REiauumswa8jDkU5U8RaSdFTIA9Pb2smzZMsyMZ59dDcDg4HTduj+BSjyISLtpKgCY2XvM7GkzmzWzwXn2u87MDprZc2Z2ZzPHXIxQurmjo4Onn17FunUVtmzxbLx/POErDgR6ExCRdtLsG8B+4GbgB412MLMS8DngeuBy4FYzu7zJ485r1apVdHV1Ua1WOXiwjyuuOAX4aTN988XfRETaSVOtn7sfcPeDC+z2ZuA5d3/B3aeBrwE7mjnuIs4rmwdw/HiZzZtnsu35ap9hO+gNQETay7l4/N0EvBR9P5Rua5mJiYl0TYBOJic7Wbt2NivwNjMzkz35xx3AavxFpN0sOBHMzB4HLq7zV3e5+0OLOEa9lrVhj6uZ7QR2AmzZsmURv/50Idc/OpoM9ezvry3v3NXVlaWAwpuCUkEi0m4WDADufm2TxzgEbI6+XwIcnud4u4BdAIODg7/U0Jyw1u/4eBIABgZmgGTN32q1mj35h9SPxvqLSDs6F4+9PwYuNbPXmFk3cAvwcCsPGPoAxsaSALB2rWcTwEJHcHj6V0ewiLSrZoeB3mRmh4DtwHfM7Lvp9o1m9giAu88Afwx8FzgA/LO7P93cac8vBICRkWSx93Xr6q/xq8ZfRNpZU8Xg3P0B4IE62w8DN0TfHwEeaeZYZ3heVKtVRkZ6AFizZpZSqaumsFto+JX6EZF2VchqoKEQ3Ph4mVLJ6e2t0t3djbvXlIAQEWlnhQwAs7OzVKtVRke7WbWqgtnc0o9a1lFEJFHIBPiyZcsolUqMjPSkI4AScYkIEZF2V8iWMHT2jo11098/k43+iReKFxFpd4UMACHNMzraw+rV1ZqCbxrzLyKSKGQACOv4jo72sGaN09nZmW0TEZFEIQNAsuyjMzbWzdq1ni0OoxW+RETmFDIAVKtVxsaSSWBr13qWAgr1gEREpMDDQIeHQwBIloDU07+ISK1CBgB3Z2SkG4D16+204m8KAiIiBU0BVSoVhoaS2LZ+venpX0SkjkIGgFOnTjE8PBcAQuOvPgARkTmFbA27uroYGwuF4JJtegsQEalVyD6Avr4+Rkdh5coZenrmFoBX4y8iMqeQAcDMGB7uor+/ki3/GLaLiEiikCmgZC2AJACEnH9I/ygIiIgkChsARke7Wb26quJvIiINFDIATE1NMTLSzcBAVR2/IiINFDIAzM46Y2M9rFlTrZkAJiIicwoZAIaGqszMdDAwMKvZvyIiDRQyABw9mjT669bNLQWpACAiUqupAGBm7zGzp81s1swG59nv52a2z8yeNLO9zRxzMY4dS36uX29aA1hEpIFm5wHsB24G/mER+/6Wu7/S5PEW5ZX0KOvWqeEXEWmkqQDg7gfg/EuvnDiRpH1CITh1AouInO5c9QE48K9m9hMz2znfjma208z2mtneYyGXc4aOH08uKy4EJyIitRZ8AzCzx4GL6/zVXe7+0CKP81Z3P2xm64HHzOxZd/9BvR3dfRewC2BwcPCXenQ/fryD7u4Z+vu7VAdIRKSBBQOAu1/b7EHc/XD686iZPQC8GagbAM6GoaEO+vqms7WARUTkdC1PAZnZCjPrDZ+B3ybpPG6ZsbFl9PfPZHWA9PQvInK6ZoeB3mRmh4DtwHfM7Lvp9o1m9ki620XAv5vZU8CPgO+4+6PNHHchQ0OdDAxUsjkAIiJyumZHAT0APFBn+2HghvTzC8CVzRznTA0Pd7Jp07hW/xIRmUchW8jh4U4GBmYUAERE5lG4BWHc4Y47DrF58yiwAXdXIBARqaNwAcAMbrnlJFDKGn91AouInK6Qj8arVq2iu7sbQE//IiINFLJ1nJ6exsw0CkhEZB6FDADVqlYCExFZSOH6AAB6e3vV+IuILKCQAaBcLi/1KYiInPcKmQISEZGFFTIAVKvVpT4FEZHzXiEDQKVSWepTEBE57xUyAJTLZfUDiIgsoJCdwP39/Ut9CiIi571CvgGIiMjCFABERNqUAoCISJtSABARaVMKACIibUoBQESkTSkAiIi0KQUAEZE2Ze6+1OfQkJkdA35xBv9kLfBKi07nfNWO1wzted3teM3QntfdzDW/yt3XLWbH8zoAnCkz2+vug0t9HudSO14ztOd1t+M1Q3te97m6ZqWARETalAKAiEibKloA2LXUJ7AE2vGaoT2vux2vGdrzus/JNReqD0BERBavaG8AIiKySIUIAGZ2nZkdNLPnzOzOpT6fVjGzzWb2fTM7YGZPm9kH0+2rzewxM/tZ+nNgqc/1bDOzkpn9l5l9O/3+GjP7YXrN95tZ91Kf49lmZv1m9g0zeza959uLfq/N7M/S/9v7zeyrZlYu4r02sy+a2VEz2x9tq3tvLfH3afv2UzO76mydxwUfAMysBHwOuB64HLjVzC5f2rNqmRngDnd/LbAN+KP0Wu8E9rj7pcCe9HvRfBA4EH3/S+Bv0mseAm5fkrNqrb8DHnX3y4ArSa6/sPfazDYBfwIMuvuvAiXgFop5r+8Drstta3RvrwcuTf/sBO4+WydxwQcA4M3Ac+7+grtPA18DdizxObWEux9x9yfSz2MkDcImkuvdne62G3j30pxha5jZJcDvAPem3w24BvhGuksRr7kP+A3gCwDuPu3uwxT8XpOsUrjMzDqB5cARCniv3f0HwInc5kb3dgfwT574T6DfzDacjfMoQgDYBLwUfT+Ubis0M3s18Ebgh8BF7n4EkiABrF+6M2uJvwX+HJhNv68Bht19Jv1exHu+FTgG/GOa+rrXzFZQ4Hvt7v8L/BXwIknDPwL8hOLf66DRvW1ZG1eEAGB1thV6aJOZrQT+BfhTdx9d6vNpJTP7XeCou/8k3lxn16Ld807gKuBud38jcJICpXvqSXPeO4DXABuBFSTpj7yi3euFtOz/exECwCFgc/T9EuDwiVf/CgAAAXpJREFUEp1Ly5lZF0nj/xV3/2a6+eXwSpj+PLpU59cCbwVuNLOfk6T3riF5I+hP0wRQzHt+CDjk7j9Mv3+DJCAU+V5fC/yPux9z9wrwTeDXKP69Dhrd25a1cUUIAD8GLk1HCnSTdBo9vMTn1BJp7vsLwAF3/+vorx4Gbks/3wY8dK7PrVXc/S/c/RJ3fzXJvf2eu/8B8H3g99LdCnXNAO7+f8BLZvYr6aZ3AM9Q4HtNkvrZZmbL0//r4ZoLfa8jje7tw8AfpqOBtgEjIVXUNHe/4P8ANwD/DTwP3LXU59PC6/x1kle/nwJPpn9uIMmJ7wF+lv5cvdTn2qLr/03g2+nnrcCPgOeArwM9S31+LbjeNwB70/v9IDBQ9HsNfBx4FtgPfAnoKeK9Br5K0s9RIXnCv73RvSVJAX0ubd/2kYySOivnoZnAIiJtqggpIBER+SUoAIiItCkFABGRNqUAICLSphQARETalAKAiEibUgAQEWlTCgAiIm3q/wHH+0r193bUDAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(np.arange(1, n+1)[:, None], yb, c='grey', alpha=0.02)\n", "plt.plot(np.arange(1, n+1), yb[:, 0], c='red', linewidth=1)\n", "plt.plot(np.arange(1, n+1), upper, 'b', np.arange(1, n+1), lower, 'b')\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Variance Reduction\n", "\n", "With independent samples, the variance of the Monte Carlo estimate is \n", "\n", "\n", "$$\n", "\\begin{align}\n", "\\text{Var}[\\bar{g_n}] &= \\text{Var} \\left[ \\frac{1}{N}\\sum_{i=1}^{N} \\frac{f(x_i)}{p(x_i)} \\right] \\\\\n", "&= \\frac{1}{N^2} \\sum_{i=1}^{N} \\text{Var} \\left[ \\frac{f(x_i)}{p(x_i)} \\right] \\\\\n", "&= \\frac{1}{N^2} \\sum_{i=1}^{N} \\text{Var}[Y_i] \\\\\n", "&= \\frac{1}{N} \\text{Var}[Y_i]\n", "\\end{align}\n", "$$\n", "\n", "where $Y_i = f(x_i)/p(x_i)$. In general, we want to make $\\text{Var}[\\bar{g_n}]$ as small as possible for the same number of samples. There are several variance reduction techniques (also colorfully known as Monte Carlo swindles) that have been described - we illustrate the change of variables and importance sampling techniques here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Change of variables\n", "\n", "The Cauchy distribution is given by \n", "$$\n", "f(x) = \\frac{1}{\\pi (1 + x^2)}, \\ \\ -\\infty \\lt x \\lt \\infty \n", "$$\n", "\n", "Suppose we want to integrate the tail probability $P(X > 3)$ using Monte Carlo. One way to do this is to draw many samples form a Cauchy distribution, and count how many of them are greater than 3, but this is extremely inefficient." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Only 10% of samples will be used" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.10241638234956674" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scipy.stats as stats\n", "\n", "h_true = 1 - stats.cauchy().cdf(3)\n", "h_true" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.13, 0.26932817794994063)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 100\n", "\n", "x = stats.cauchy().rvs(n)\n", "h_mc = 1.0/n * np.sum(x > 3)\n", "h_mc, np.abs(h_mc - h_true)/h_true" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### A change of variables lets us use 100% of draws\n", "\n", "We are trying to estimate the quantity\n", "\n", "$$\n", "\\int_3^\\infty \\frac{1}{\\pi (1 + x^2)} dx\n", "$$\n", "\n", "Using the substitution $y = 3/x$ (and a little algebra), we get\n", "\n", "$$\n", "\\int_0^1 \\frac{3}{\\pi(9 + y^2)} dy\n", "$$\n", "\n", "Hence, a much more efficient MC estimator is \n", "\n", "$$\n", "\\frac{1}{n} \\sum_{i=1}^n \\frac{3}{\\pi(9 + y_i^2)}\n", "$$\n", "\n", "where $y_i \\sim \\mathcal{U}(0, 1)$." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.10219440906830025, 0.002167361082027339)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = stats.uniform().rvs(n)\n", "h_cv = 1.0/n * np.sum(3.0/(np.pi * (9 + y**2)))\n", "h_cv, np.abs(h_cv - h_true)/h_true" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importance sampling\n", "\n", "Suppose we want to evaluate\n", "\n", "$$\n", "I = \\int{h(x)\\,p(x) \\, dx}\n", "$$\n", "\n", "where $h(x)$ is some function and $p(x)$ is the PDF of $y$. If it is hard to sample directly from $p$, we can introduce a new density function $q(x)$ that is easy to sample from, and write\n", "\n", "$$\n", "I = \\int{h(x)\\, p(x)\\, dx} = \\int{h(x)\\, \\frac{p(x)}{q(x)} \\, q(x) \\, dx}\n", "$$\n", "\n", "In other words, we sample from $h(y)$ where $y \\sim q$ and weight it by the likelihood ratio $\\frac{p(y)}{q(y)}$, estimating the integral as\n", "\n", "$$\n", "\\frac{1}{n}\\sum_{i=1}^n \\frac{p(y_i)}{q(y_i)} h(y_i)\n", "$$\n", "\n", "Sometimes, even if we can sample from $p$ directly, it is more efficient to use another distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Example\n", "\n", "Suppose we want to estimate the tail probability of $\\mathcal{N}(0, 1)$ for $P(X > 5)$. Regular MC integration using samples from $\\mathcal{N}(0, 1)$ is hopeless since nearly all samples will be rejected. However, we can use the exponential density truncated at 5 as the importance function and use importance sampling. Note that $h$ here is simply the identify function." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xt82/V1//HXkXy/xHF8Tezcb+QCJMSEcE1oKPcBa4EmHRstrNCtULqytbD1Nvb7bb1uXQtbyygDeuFeINCUQLm1BAIJJJA7Mbk6V+fqxIkvkj77Q3IQjhMrjuyPJb+fj4cfluRvpKOqvH380dHna845REQkvQR8FyAiIsmncBcRSUMKdxGRNKRwFxFJQwp3EZE0pHAXEUlDCncRkTSkcBcRSUMKdxGRNJTh64FLS0vdsGHDfD28iEhKeuedd3Y658o6O67TcDez+4HLgR3OuYkd/NyA/wQuBQ4Cn3POvdvZ/Q4bNoxFixZ1dpiIiMQxsw2JHJfIsswDwMXH+PklwOjY103AfyfywCIi0n06DXfn3B+B3cc45ErgIRe1AOhvZgOTVaCIiBy/ZLyhWgVsirteF7vtCGZ2k5ktMrNF9fX1SXhoERHpSDLC3Tq4rcN9hJ1z9zrnapxzNWVlnb4fICIiXZSMcK8DBsddrwa2JOF+RUSki5IR7nOAv7KoacA+59zWJNyviIh0USKjkA8DM4BSM6sDvg1kAjjnfgbMJToGWUt0FPLz3VWsiIgkptNwd87N7uTnDvhS0irqYyIRx+PvbOLKSVXkZAZ9lyMiaULbD3i2att+vv7kUp58t853KSKSRhTunjWHwgC8UbvLcyUikk4U7p6FI9Gp0Tc+3Ekk0uEEqYjIcVO4exaKBfqeg62s2NrguRoRSRcKd8/Ccd36/NqdHisRkXSicPesLdwDBq8r3EUkSRTunrWF+6TB/Vm4fvfhN1hFRE6Ewt2ztjX36WPKaWqN8O6GvZ4rEpF0oHD3LByJAHD2qBKCAdO6u4gkhcLds7bOvX9eJqdWF2ndXUSSQuHuWduaezAQ4JxRpbxft5eGplbPVYlIqlO4exYKR8M9I2CcPaqUiIM3P9SnVUXkxCjcPfuoczcmDykmPyvIn9boLFUicmIU7p61rblnBIysjABnjizl1dX1RDfbFBHpGoW7Z23TMsFA9GyF08eWUbfnEOt2NvosS0RSnMLds4869+hLMX109Nyyr32gpRkR6TqFu2eH19yD0c59SEkeI0rzFe4ickIU7p61de5Bs8O3nTemjAVrd9HUqq0IRKRrFO6exU/LtJk+toym1ghvr9vtqywRSXEKd8/i59zbTBteQlZGgD9qaUZEukjh7lk4EsEMAnHhnpsV5IzhA7TuLiJdpnD3LBRxH+va20wfU8aaHQfYvPeQh6pEJNUp3D0LR9zH1tvbTB8TG4lcre5dRI6fwt2zaOd+5MswqryA6uJcXl61w0NVIpLqFO6eHa1zNzNmnlTO67X1GokUkeOmcPcsFIl0uOYO8IlxFTS1RrRLpIgcN4W7Z0fr3AGmjRhAXlaQP6zc3sNViUiqU7h7Fgp3PC0DkJ0R5NzRpby8aod2iRSR46Jw9ywccYf3lenIzJMq2LqviZVb9/dgVSKS6hTunh1tWqbN+SeVA/CSlmZE5Dgo3D071po7QFlhNqcO7s9LGokUkeOQULib2cVmttrMas3sjg5+PsTMXjGzxWb2vpldmvxS09OxpmXaXHBSOe/V7aV+f3MPVSUiqa7TcDezIHAPcAkwHphtZuPbHfYN4DHn3GRgFvBfyS40XXXWuQN8Ylw5zsEr6t5FJEGJdO5TgVrn3FrnXAvwCHBlu2Mc0C92uQjYkrwS09vR9paJN35gPwYV5fDCCq27i0hiEgn3KmBT3PW62G3xvgNcZ2Z1wFzg1qRU1wck0rmbGRdOqORPa+o52BLqocpEJJUlEu4dJU/7oevZwAPOuWrgUuCXZnbEfZvZTWa2yMwW1ddrQyxom3Pv/GW4cEIFzaGINhITkYQkEu51wOC469UcuexyI/AYgHPuTSAHKG1/R865e51zNc65mrKysq5VnGYS6dwBpg4bQHFeJvOWb+uBqkQk1SUS7guB0WY23MyyiL5hOqfdMRuBmQBmNo5ouKvFTEAoEiHjGB9iapMRDHDBuApeWrWDllCkByoTkVTWabg750LALcA8YCXRqZjlZnaXmV0RO+x24Atm9h7wMPA5p8/LJyTRzh3gogmV7G8K8eZabSQmIseWkchBzrm5RN8ojb/tW3GXVwBnJ7e0viGRaZk254wuJS8ryLzl2w6fzENEpCP6hKpnx9O552QGOX9sOS+u2E4koj+MROToFO6edba3THsXTqigfn8zizft6caqRCTVKdw9O57OHaIbiWUGjeeXaWpGRI5O4e5ZInvLxOuXk8m5o8uYu3Sb9ngXkaNSuHsWDh9f5w5w2ckD2bz3EIs37e2mqkQk1SncPQtFXEJz7vE+OaGCrGCA372/tZuqEpFUp3D37HjX3CG6NHPemDLmLt2qqRkR6ZDC3bPjnZZpc/kpA9m6r4l3N2pqRkSOpHD3rCudO8AF4yvIygjwnJZmRKQDCnfPjndapk1Bdgbnj9XSjIh0TOHuWVc7d4DLThnEjv3NLFy/O8lViUiqU7h7djx7y7Q386RycjK1NCMiR1K4exSJOJyDYBfeUAXIz85g5rgKfrd0K61hbQMsIh9RuHsUiq2VH++ce7yrJlWxu7GF19fsTFZZIpIGFO4ehWPh3tU1d4DpY8ron5fJU4s3J6ssEUkDCnePQpHoUkpX19wBsjICXH7KQF5YsY0DzTp5tohEKdw9SkbnDtGlmabWCC/o/KoiEqNw96gt3E+kcweYMrSY6uJcLc2IyGEKd48+6txP7GUwM/58chXza3eyY39TMkoTkRSncPcolKTOHeDKSVVEHDz7nmbeRUTh7lWy1twBRpUXcHJVEb99t+6E70tEUp/C3aNkzLnHu3pKNcu3NLBiS0NS7k9EUpfC3aNwbBQyGZ07wJWTBpEVDPD4O5uScn8ikroU7h4lc80doH9eFp8cX8HTizfTEtJ2BCJ9mcLdo1A4OdMy8a6pqWbPwVZeWrk9afcpIqlH4e7RR2+oJu8+zx1dRmW/HB5bpKUZkb5M4e5RKElz7vGCAeNTp1Xx2gf1bG/QzLtIX6Vw9yhZn1Bt75qawUQcPKmxSJE+S+HuUSjJ0zJthpfmc/qwYh5fVIdzOgWfSF+kcPeouzp3gNlTh7BuZyNvfrgr6fctIr2fwt2jUBI/odrepScPpCg3k1+/vTHp9y0ivZ/C3aNwuK1zT/7LkJMZ5Oop1bywfBv1+5uTfv8i0rsllCpmdrGZrTazWjO74yjHXGtmK8xsuZn9Jrllpqfu7NwhujTTGnb6xKpIH9RpuJtZELgHuAQYD8w2s/HtjhkN3Amc7ZybAHylG2pNO+Ek7y3T3qjyAqaNGMDDb28kEtEbqyJ9SSKd+1Sg1jm31jnXAjwCXNnumC8A9zjn9gA453Ykt8z01F3TMvE+e8ZQNu0+xJ9qdQJtkb4kkXCvAuL/rq+L3RZvDDDGzOab2QIzuzhZBaaz7pyWaXPRhApK8rP49YIN3fYYItL7JBLuHSVP+7/xM4DRwAxgNnCfmfU/4o7MbjKzRWa2qL6+/nhrTTvdveYOkJ0R5Jqawby0ageb9x7qtscRkd4lkXCvAwbHXa8GtnRwzDPOuVbn3DpgNdGw/xjn3L3OuRrnXE1ZWVlXa04bH3Xu3Tu09JdnDsU5x6/UvYv0GYmkykJgtJkNN7MsYBYwp90xTwPnA5hZKdFlmrXJLDQd9UTnDlDVP5eLJlTy8NsbaWoNd+tjiUjv0Gm4O+dCwC3APGAl8JhzbrmZ3WVmV8QOmwfsMrMVwCvAPzjn9NHIToTD0TdUu3PNvc3nzhrG3oOtPLNkc7c/loj4l5HIQc65ucDcdrd9K+6yA74a+5IEHe7cu2kUMt7U4QMYN7Af/zt/PdfWDMas+x9TRPzRJ1Q96olpmTZmxufPGsaqbft5a93ubn88EfFL4e5RT625t7li0iCK8zJ5YP76Hnk8EfFH4e5RT03LtMnJDDJ76hBeWLGNDbsae+QxRcQPhbtHbZ17DzXuAFx/1jCCAeMXr6/ruQcVkR6ncPcoHImQEbAefXOzol8OV02q4rFFm9jd2NJjjysiPUvh7lEo4npsvT3eF84bQVNrRB9qEkljCnePwmHXI5My7Y2pKOT8sWU8+MZ6fahJJE0p3D3y1bkD3HTeSHY1tugk2iJpSuHuUTjiyAj6eQmmjRjAyVVF3PendYendkQkfSjcPfLZuZsZN08fwbqdjfx+2VYvNYhI91G4e9Q2LePLJRMHMqIsn7tfrtWZmkTSjMLdI5+dO0Q/GfulGaNYtW0/L63SybNE0onC3aNwxM+0TLwrJw1i8IBc7n55DdH930QkHSjcPfLduQNkBAP87YxRvFe3jz+t0XlWRdKFwt2j6Jy7/5fgU6dVMbAoh7tfrvVdiogkif9k6cN6Q+cO0fOs3nzeCN5ev5s3atW9i6QDhbtH4UiEjB44UUciZk0dQmW/HH704gdaexdJAwp3j3pL5w7R7YBvnTmKdzbs4dUP6n2XIyInSOHuUW+Ylol3zZTBDB6Qy49eWK3uXSTFKdw96k2dO0BWRoDbZo5h2eYG5i3f7rscETkBCnePop1773oJrpo0iBFl+fz7i6u154xICutdydLH9LbOHaJz7393wRg+2H6AZ5Zs9l2OiHSRwt0j33vLHM1lJw/k5KoifjhvtfZ7F0lRCnePQuHe17kDBALGnZeexJZ9TTz4xnrf5YhIFyjcPYru5977wh3grJGlnD+2jLtfqWWPzrUqknIU7h6FI45gL3tDNd4dl4yjsTnEPa9oWwKRVNN7k6UPCPWyOff2xlYWcvWUah56cwMbdx30XY6IHAeFu0fhXjgt095XPzmWYMD417krfZciIsdB4e5RqJdOy8SrLMrhb2eM5Pnl27SpmEgKUbh7FI7Q6zt3gC+cN4Lq4lz++dkVhMIR3+WISAIU7h711jn39nIyg3zjsnGs3r6fX7+10Xc5IpIAhbtHoV4+LRPvogmVnDWyhH9/8QONRoqkgISSxcwuNrPVZlZrZncc47irzcyZWU3ySkxfvXnOvT0z49t/NoEDzSG+P2+V73JEpBOdhruZBYF7gEuA8cBsMxvfwXGFwJeBt5JdZLoKRRwBS41wh+ho5I3nDOfhtzfxzobdvssRkWNIpHOfCtQ659Y651qAR4ArOzjuX4DvA01JrC+t9bb93BNx28zRDCrK4R9/u4xWvbkq0mslEu5VwKa463Wx2w4zs8nAYOfcc8e6IzO7ycwWmdmi+vq+fbYf51xKzLm3l5+dwXeumMDq7fu5//V1vssRkaNIJNw7Sp/DG32bWQD4D+D2zu7IOXevc67GOVdTVlaWeJVpqG2v9FTr3AEunFDJBeMq+PEf1lC3R59cFemNEgn3OmBw3PVqYEvc9UJgIvCqma0HpgFz9KbqsYVi4R5MkTdU2/vOFeMxg396aplOySfSCyUS7guB0WY23MyygFnAnLYfOuf2OedKnXPDnHPDgAXAFc65Rd1ScZpI5c4doLo4j69dNJbXPqjnyXd1Ug+R3qbTcHfOhYBbgHnASuAx59xyM7vLzK7o7gLT1eHOPUXm3DvyV2cO4/Rhxdz17HJ2NOh9dJHeJKFkcc7Ndc6Ncc6NdM79/9ht33LOzeng2Bnq2juX6p07RE/q8b1Pn0JzKMI/Pa3lGZHeJHXbxhQXikTHCFNtWqa9EWUF3H7hGF5csZ05723p/B+ISI9QuHuSDp17mxvPGcHkIf355tPL2LZPyzMivYHC3ZNQuG3NPfXDPRgw/uPaSbSGHX//+HtEIlqeEfFN4e7J4c49RUch2xtWms83Lx/P67U7efDN9b7LEenzFO6epMO0THuzpw5m5knlfPf3q1izfb/vckT6tPRJlhSTTmvubcyM7376FAqyM7j14cU0tYZ9lyTSZyncPUmXaZn2ygqz+dG1p7Jq237uem6F73JE+iyFuyfp2Lm3mTG2nC9OH8lv3trIc+9rPFLEB4W7Jx+tuadfuAPcfuEYThvSnzufXMqGXY2+yxHpcxTunnzUuafnS5AZDPCT2ZMxg7/99btafxfpYemZLCkgnebcj6a6OI//+Mwklm9p0O6RIj1M4e5Jus25H83McRXcNnM0T75bx6/e2ui7HJE+Q+HuSbpOy3TktpmjOX9sGXc9u1znXhXpIQp3T9J5Wqa9QMD48WcmM7Aol5t/+S5b9h7yXZJI2lO4e5Lu0zLtFeVlct/1NTS1hrnxwUU0Nod8lySS1hTunqT7tExHxlQU8tPPTmb1tgb+7tEl2mBMpBv1nWTpZfpa597m/LHlfOOy8bywYjvfn7fadzkiaSvDdwF9VTj2hmpfWHNv7/NnD6O2/gA/e+1Dqopz+ctpQ32XJJJ2FO6e9IU596MxM+66YgLb9zXx7WeWUVGYzYUTKn2XJZJWtCzjSV+Zcz+ajGCAn352MidX9+fWhxfzzoY9vksSSSsKd0/66pp7vLysDO6/voaBRTnc8MBCVm1r8F2SSNpQuHvSF6dlOlJSkM0vbzyDnMwA1933Nut3apMxkWTo28nikTr3jwwekMevbjyDiHP8xX1v6UNOIkmgcPekL0/LdGR0RSEP3TCVhkOtXHffW+xoaPJdkkhKU7h7os79SBOrinjghtPZ3tDErHsXsF0BL9JlCndPwuG+s7fM8ZgydAAP3jCV7Q1NzFbAi3SZwt0Tde5HVzNsAA/dOPVwB79Za/Aix03h7kk44ggGDDOFe0emDB3AQzeewc4DzVzz32/wYf0B3yWJpBSFuyehWLjL0U0ZWswjN02jJRzh2p+9yfIt+3yXJJIyFO6ehCMRrbcnYMKgIh67+UyyMwLMuncBb364y3dJIilB4e6JOvfEjSgr4PG/OYvKfjlcf//bPLNks++SRHo9hbsn4YhT534cqvrn8sQXz2LSkP7c9sgSfv7ahzrhtsgxJBTuZnaxma02s1ozu6ODn3/VzFaY2ftm9pKZaQ/XTkQ7d/1uPR5FeZk8dMNULjtlIP/2+1Xc+dultIQivssS6ZU6TRczCwL3AJcA44HZZja+3WGLgRrn3CnAE8D3k11ougmH1bl3RU5mkJ/OmsyXzh/JIws38Ze/eIvdjS2+yxLpdRJpHacCtc65tc65FuAR4Mr4A5xzrzjnDsauLgCqk1tm+tGae9cFAsY/XHQSP/7MJBZv2stV98xn5VbtKCkSL5FwrwI2xV2vi912NDcCv+/oB2Z2k5ktMrNF9fX1iVeZhsKRSJ/dyz1ZrppcxaM3TaOpNcyf/9d8nl6sN1pF2iQS7h0lUIfvZJnZdUAN8IOOfu6cu9c5V+OcqykrK0u8yjSkzj05Jg8p5rkvn8Mp1f35yqNL+M6c5VqHFyGxcK8DBsddrwa2tD/IzC4A/gm4wjnXnJzy0pemZZKnvDCHX//1Gfz1OcN54I31XP2zN9iwS/vCS9+WSLgvBEab2XAzywJmAXPiDzCzycDPiQb7juSXmX40LZNcmcEA37h8PD+77jTW72zksp+8zrPvHdGDiPQZnaaLcy4E3ALMA1YCjznnlpvZXWZ2ReywHwAFwONmtsTM5hzl7iRGnXv3uHjiQObedi5jKgq49eHF3P7YezQ0tfouS6THZSRykHNuLjC33W3firt8QZLrSnvhiCOgcO8W1cV5PHrzmfzkpTXc80otC9bu4kfXnsq0ESW+SxPpMVoX8ESde/fKDAa4/cKxPP7Fs8gMGrP/ZwH//OxyDraEfJcm0iMU7p6EIhFNy/SAKUOLmXvbuVx3xlD+d/56LvrxH5lfu9N3WSLdTuHuiTr3npOXlcG/XDWRR2+aRtCMv7jvLf7h8ff0yVZJawp3TzTn3vPOGFHC8185jy9OH8lTizfziR+9yqMLNxKJaAMyST8Kd0/UufuRkxnkjktO4ndfPpcx5YV8/cmlfPpnb7Bk017fpYkklcLdk1BYc+4+ja0s5NGbp/Gja06lbs8hrrpnPrc/9p5OyC1pQ+niiTp3/8yMT0+p5pW/n8HfzBjJs+9tYcYPXuWH81azX7PxkuIU7p6EIhGC2jisVyjIzuDrF5/EH746nQvGV3D3K7VM/8Gr3P/6Oppaw77LE+kShbsn6tx7nyElefx09mTm3HI2J1UWctdzK5jxg1f51YIN2oxMUo7C3RNNy/Rep1T35zdfmMZv/voMqopz+cbTyzj/h6/y0Jvr1clLylC4e6LOvfc7a1QpT3zxTB74/OlUFuXwrWeWc873XuHnr32o/Wqk10tobxlJPu0KmRrMjBljy5k+powFa3dz9ytr+Lffr+KnL9cye+pgPn/2cAb1z/VdpsgRFO6eqHNPLWbGmSNLOHNkCUvr9vE/f1rL/fPXc//89Vw0oYLPnTWc04cVY6bXVHoHhbsnobD2lklVJ1cX8ZPZk/naxWP55ZsbeGThJuYu3ca4gf347BlDuGrSIApzMn2XKX2c1gU8Ueee+qqL87jz0nEsuHMm//apkzHgm08v44x/fYk7nnyfdzbswTltbSB+qHP3JBRxmnNPE7lZQWZPHcKs0wfzft0+fvPWRp5ZsoVHFm5iRFk+V0+p5qpJVVqblx6lcPdEnXv6MTNOHdyfUwf355t/Np65S7fyxKI6vv/8ar7//GqmDh/AVZOquGRiJcX5Wb7LlTSncPfAOadpmTRXkJ3BtTWDubZmMBt3HeSZJZt5eslm/vGppXzzmWWcNbKEy08ZyCfHVzJAQS/dQOHuQdsOs+rc+4YhJXncOnM0t3xiFMu3NPC7pVv53ftb+fqTS7nzt0s5fdgALppQyQXjKhhSkue7XEkTCncPQpHoR9k1LdO3mBkTq4qYWFXE1y4ay/ItDcxbvo0Xlm/nrudWcNdzKxhVXsDMk8qZMbacKUOLycrQX3fSNQp3D8Kx1l2de98VH/S3XziW9TsbeXnVDl5etYP756/j539cS35WkDNHlnLu6FLOHlXCyLICzdFLwhTuHoRi4a7OXdoMK83nhnOGc8M5w9nf1MqbH+7itQ/q+eOaev6wcjsAFf2yOXNECdNGlHDGiBKGleQp7OWoFO4ehMPq3OXoCnMyuXBCJRdOqARg466DzP9wJ/Nrd/J67S6eXrIFgLLCbE4fVsyUoQOoGVrMuIH9tIwjhyncPTjcuQf1H6J0bkhJHkNKhjB76hCcc3xY38iCtbtYtH43C9fvYe7SbQBkZQQ4uaqISYP7c0p1EadW92eouvs+S+HugdbcpavMjFHlBYwqL+C6aUMB2LrvEIs37mXxxj28u3Evv1qwgebY/vP9cjKYMKiIiVX9mDCoiHED+zGiLJ9MNRZpT+HugaZlJJkGFuUy8ORcLj15IACt4QgfbN/P+3X7WLp5H8u3NPDgmx+dcCQrGGBUeQFjKwsZU1HI2MoCRpcXUtU/l4D+P5k2FO4eqHOX7pQZDDBhUBETBhUxO3ZbazjC2vpGVm5tYOW2BlZu3c+Ctbt4avHmw/8uJzPAiNICRpYXMKI0nxFl+QwvzWdYaT79tBFaylG4e6BpGelpmcEAYysLGVtZyFVUHb5936FW1mzfT+2OA6zZcYDaHQdYsmkPz72/hfg9zwbkZzFkQB5DS/IYMiCPwcV5VA/IZXBxHpVFOVrm6YUU7h581LnrPwjxqyg3k5phA6gZNuBjtze1htm4+yDrdjayfmcj63c1smHXQd7ZsIdn39ty+FPWAAGDyn45DOqfy6D+uQwsymFgUQ6VRblUFuVQ2S+H0oIsMvQLoEcp3D0IhdW5S++WkxlkTEV0Tb69llCEbfua2LTnIJt2H2TL3kPU7T3E5j2HWLJpL88va6Il/PETigcMSgqyqeiXTXlhDmUF2ZQVZlNakEVpYTalBdHLA/Kz6Z+bqbX/JFC4e6A1d0llWRmB2Hhmx/vgRCKOXY0tbG9oYtu+JrY1NLGjoYntDc3s2B+9bdnmfew80PyxvwDaBCy6DFScl0VxfhbFeZkU52XRPy96uX9eJkW5WRTlZka/8jLpl5NBQXaGxj7jJBTuZnYx8J9AELjPOffddj/PBh4CpgC7gM8459Ynt9T0cXhaRvu5SxoKBIyywmhnPrGq6KjHhSOOPQdb2HWghV0Hmqk/0Mzuxtj1xhb2Hmxhd2ML63Y28u7Bvew92EJr+OgnPwlY9ANghTkZh7/3i13Ozw5SkJ1JQXaQguwM8rOjvwzysjPIzwqSl5VBfnaQ3Kwg+VkZ5GYGU/6vh07D3cyCwD3AJ4E6YKGZzXHOrYg77EZgj3NulJnNAr4HfKY7Ck4H6txFosuS0eWYbODI5Z/2nHM0toTZd6iVvQdb2HewlX2HWmloin7f3xSi4VArDU0h9jdFv2/e20Rj8wEONEdvO9Yvh/ZyMgPkxYI+JzNAblYwdjnuKyMQuxwgO+Oj79mZAbIzAmRlRK9nBQNkZwbICkZvGzIgj5KC7BP4X69ziXTuU4Fa59xaADN7BLgSiA/3K4HvxC4/AdxtZuZ0jrEOaVpG5PiZGQWxjruqi2e1ag6FaWwO09gcorElRGNziAPNYQ61hGhsDnOwNczB5hAHW8I0tYY52BLmUGuYQ7HvTa1hDjSHqN/fTHMoQlNr9Pbm1ghNoTCJJt7/u2ri4Q+hdZdEwr0K2BR3vQ4442jHOOdCZrYPKAF2JqPIeIue/HcGLfs5AIf/d4xbZ3Mc7XK8zkPVJXBMV1U4x4tZjuo5uZAZjJWkoBfpbtmxrwGdHdiZzNhX3O8YBzgHDhf97txHt7W73GR/D/gP945Sp/3vp0SOwcxuAm4CGDJkSAIPfaRA0SA2FUzsMLbtY782427/WKGJ/Grt/j84MgIBMgb2iy4U9sDjiUj3MhJpG6PyS8q7sxQgsXCvAwbHXa8GthzlmDozywCKgN3t78g5dy9wL0BNTU2XEu20C2bBBbO68k9FRPqMRD5VsBAYbWbDzSwLmAXMaXfMHOD62OWrgZe13i4i4k+nnXtsDf0WYB7RUcj7nXPLzewuYJFzbg4X1qEgAAAD+0lEQVTwC+CXZlZLtGNXay0i4lFCc+7OubnA3Ha3fSvuchNwTXJLExGRrtJmDyIiaUjhLiKShhTuIiJpSOEuIpKGFO4iImnIfI2jm1k9sKGL/7yUbtjawBM9l94nXZ4H6Ln0VifyXIY658o6O8hbuJ8IM1vknKvxXUcy6Ln0PunyPEDPpbfqieeiZRkRkTSkcBcRSUOpGu73+i4gifRcep90eR6g59JbdftzSck1dxERObZU7dxFROQYUjLczSxoZovN7DnftZwIM1tvZkvNbImZLfJdT1eZWX8ze8LMVpnZSjM703dNXWFmY2OvRdtXg5l9xXddXWVmf2dmy81smZk9bGY5vmvqCjO7LfYclqfa62Fm95vZDjNbFnfbADN70czWxL4Xd8djp2S4A7cBK30XkSTnO+cmpfiI138CzzvnTgJOJUVfG+fc6thrMQmYAhwEnvJcVpeYWRXwZaDGOTeR6HbdKbcVt5lNBL5A9FzOpwKXm9lov1UdlweAi9vddgfwknNuNPBS7HrSpVy4m1k1cBlwn+9aBMysH3Ae0T39cc61OOf2+q0qKWYCHzrnuvpBu94gA8iNnR0tjyPPoJYKxgELnHMHnXMh4DXgzz3XlDDn3B858qx0VwIPxi4/CFzVHY+dcuEO/Bj4GhDxXUgSOOAFM3sndn7ZVDQCqAf+N7ZUdp+Z5fsuKglmAQ/7LqKrnHObgR8CG4GtwD7n3At+q+qSZcB5ZlZiZnnApXz8tJ+pqMI5txUg9r1bTqiaUuFuZpcDO5xz7/iuJUnOds6dBlwCfMnMzvNdUBdkAKcB/+2cmww00k1/ZvaU2OkkrwAe911LV8XWca8EhgODgHwzu85vVcfPObcS+B7wIvA88B4Q8lpUikipcAfOBq4ws/XAI8AnzOxXfkvqOufcltj3HUTXdqf6rahL6oA659xbsetPEA37VHYJ8K5zbrvvQk7ABcA651y9c64V+C1wlueausQ59wvn3GnOufOILnGs8V3TCdpuZgMBYt93dMeDpFS4O+fudM5VO+eGEf2z+WXnXMp1IwBmlm9mhW2XgQuJ/gmaUpxz24BNZjY2dtNMYIXHkpJhNim8JBOzEZhmZnlmZkRfl5R8o9vMymPfhwCfIvVfmznA9bHL1wPPdMeDJHQOVekWFcBT0f/uyAB+45x73m9JXXYr8OvYcsZa4POe6+my2LruJ4GbfddyIpxzb5nZE8C7RJcxFpO6n/B80sxKgFbgS865Pb4LSpSZPQzMAErNrA74NvBd4DEzu5HoL+FuOf+0PqEqIpKGUmpZRkREEqNwFxFJQwp3EZE0pHAXEUlDCncRkTSkcBcRSUMKdxGRNKRwFxFJQ/8H3L0q3Xgj1rgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(4, 10, 100)\n", "plt.plot(x, stats.expon(5).pdf(x))\n", "plt.plot(x, stats.norm().pdf(x))\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Expected answer\n", "\n", "We expect about 3 draws out of 10,000,000 from $\\mathcal{N}(0, 1)$ to have a value greater than 5. Hence simply sampling from $\\mathcal{N}(0, 1)$ is hopelessly inefficient for Monte Carlo integration." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'%.10f'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%precision 10" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2.866515719235352e-07" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v_true = 1 - stats.norm().cdf(5)\n", "v_true" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using direct Monte Carlo integration" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 1.0)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "y = stats.norm().rvs(n)\n", "v_mc = 1.0/n * np.sum(y > 5)\n", "# estimate and relative error\n", "v_mc, np.abs(v_mc - v_true)/v_true " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using importance sampling" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2.8290057563382236e-07, 0.01308555981236137)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "y = stats.expon(loc=5).rvs(n)\n", "v_is = 1.0/n * np.sum(stats.norm().pdf(y)/stats.expon(loc=5).pdf(y))\n", "# estimate and relative error\n", "v_is, np.abs(v_is- v_true)/v_true" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.7.7" } }, "nbformat": 4, "nbformat_minor": 1 }