{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Numerical Evaluation of Integrals\n", "====" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quadrature\n", "----\n", "\n", "You may recall from Calculus that integrals can be numerically evaluated using quadrature methods such as Trapezoid and Simpson's's rules. This is easy to do in Python, but has the drawback of the complexity growing as $O(n^d)$ where $d$ is the dimensionality of the data, and hence infeasible once $d$ grows beyond a modest number." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Integrating functions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from scipy.integrate import quad" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def f(x):\n", " return x * np.cos(71*x) + np.sin(13*x)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 1, 100)\n", "plt.plot(x, f(x))\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exact solution" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.0202549" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import sin, cos, symbols, integrate\n", "\n", "x = symbols('x')\n", "integrate(x * cos(71*x) + sin(13*x), (x, 0,1)).evalf(6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using quadrature" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.02025493910239419" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y, err = quad(f, 0, 1.0)\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Multiple integration\n", "\n", "Following the `scipy.integrate` [documentation](http://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html), we integrate\n", "\n", "$$\n", "I=\\int_{y=0}^{1/2}\\int_{x=0}^{1-2y} x y \\, dx\\, dy\n", "$$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.0104166666666667" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x, y = symbols('x y')\n", "integrate(x*y, (x, 0, 1-2*y), (y, 0, 0.5))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.010416666666666668" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy.integrate import nquad\n", "\n", "def f(x, y):\n", " return x*y\n", "\n", "def bounds_y():\n", " return [0, 0.5]\n", "\n", "def bounds_x(y):\n", " return [0, 1-2*y]\n", "\n", "y, err = nquad(f, [bounds_x, bounds_y])\n", "y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Monte Carlo integration\n", "----\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", "\\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[h(X)] = \\int_X h(x) f(x) dx\n", "$$\n", "\n", "with\n", "\n", "$$\n", "\\bar{h_n} = \\frac{1}{n} \\sum_{i=1}^n h(x_i)\n", "$$\n", "where $x_i \\sim f$ is a draw from the density $f$.\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 (h(x_i) - \\bar{h_n})^2)\n", "$$\n", "\n", "Also, from the Central Limit Theorem,\n", "\n", "$$\n", "\\frac{\\bar{h_n} - E[h(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." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example\n", "\n", "We want to estimate the following integral $\\int_0^1 e^x dx$. The minimum value of the function is 1 at $x=0$ and $e$ at $x=1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "x = np.linspace(0, 1, 100)\n", "plt.plot(x, np.exp(x));\n", "pts = np.random.uniform(0,1,(100, 2))\n", "pts[:, 1] *= np.e\n", "plt.scatter(pts[:, 0], pts[:, 1])\n", "plt.xlim([0,1])\n", "plt.ylim([0, np.e])\n", "pass" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nfCSb4r6HPwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 1, 100)\n", "plt.plot(x, np.exp(x));\n", "pts = np.random.uniform(0,1,(100, 2))\n", "pts[:, 1] *= np.e\n", "plt.scatter(pts[:, 0], pts[:, 1])\n", "plt.xlim([0,1])\n", "plt.ylim([0, np.e])\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Analytic solution" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.71828182845905" ] }, "execution_count": 9, "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": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.7182818284590453" ] }, "execution_count": 10, "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": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 10 1.902797\n", " 100 1.658152\n", " 1000 1.731546\n", " 10000 1.716595\n", " 100000 1.715508\n", " 1000000 1.719207\n", " 10000000 1.718699\n", " 100000000 1.718137\n" ] } ], "source": [ "for n in 10**np.array([1,2,3,4,5,6,7,8]):\n", " pts = np.random.uniform(0, 1, (n, 2))\n", " pts[:, 1] *= np.e\n", " count = np.sum(pts[:, 1] < np.exp(pts[:, 0]))\n", " volume = np.e * 1 # volume of region\n", " sol = (volume * count)/n\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 7x + \\sin 13x, \\ \\ 0 \\le x \\le 1\n", "$$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def f(x):\n", " return x * np.cos(71*x) + np.sin(13*x)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.094883119956087489" ] }, "execution_count": 14, "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" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "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": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "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" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "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": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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", "----" ] }, { "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" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.10241638234956674" ] }, "execution_count": 19, "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": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.16, 0.56225006516915765)" ] }, "execution_count": 20, "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": [ "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": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.10202273260522265, 0.0038436208672210301)" ] }, "execution_count": 21, "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": [ "### Monte Carlo swindles \n", "\n", "Apart from change of variables, there are several general techniques for variance reduction, sometimes known as Monte Carlo swindles since these methods improve the accuracy and convergence rate of Monte Carlo integration without increasing the number of Monte Carlo samples. Some Monte Carlo swindles are:\n", "\n", "- importance sampling\n", "- stratified sampling\n", "- control variates\n", "- antithetic variates\n", "- conditioning swindles including Rao-Blackwellization and independent variance decomposition\n", "\n", "Most of these techniques are not particularly computational in nature, so we will not cover them in the course. I expect you will learn them elsewhere. We will illustrate importance sampling and antithetic variables here as examples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importance sampling\n", "\n", "Basic Monte Carlo sampling evaluates\n", "\n", "$$\n", "E[h(X)] = \\int_X h(x) f(x) dx\n", "$$\n", "\n", "Using another distribution $g(x)$ - the so-called \"importance function\", we can rewrite the above expression\n", "\n", "$$\n", "E_f[h(x)] \\ = \\ \\int_X h(x) \\frac{f(x)}{g(x)} g(x) dx \\ = \\ E_g\\left[ \\frac{h(X) f(X)}{g(X)} \\right]\n", "$$\n", "\n", "giving us the new estimator\n", "\n", "$$\n", "\\bar{h_n} = \\frac{1}{n} \\sum_{i=1}^n \\frac{f(x_i)}{g(x_i)} h(x_i)\n", "$$\n", "\n", "where $x_i \\sim g$ is a draw from the density $g$.\n", "\n", "Conceptually, what the likelihood ratio $f(x_i)/g(x_i)$ provides an indicator of how \"important\" the sample $h(x_i)$ is for estimating $\\bar{h_n}$. This is very dependent on a good choice for the importance function $g$. Two simple choices for $g$ are scaling\n", "\n", "$$\n", "g(x) = \\frac{1}{a} f(x/a)\n", "$$\n", "\n", "and translation\n", "\n", "$$\n", "g(x) = f(x - a)\n", "$$\n", "\n", "Alternatively, a different distribution can be chosen as shown in the example below." ] }, { "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." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "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": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'%.10f'" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%precision 10" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.0000002867" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h_true =1 - stats.norm().cdf(5)\n", "h_true" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using direct Monte Carlo integration" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0000000000, 1.0000000000)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "y = stats.norm().rvs(n)\n", "h_mc = 1.0/n * np.sum(y > 5)\n", "# estimate and relative error\n", "h_mc, np.abs(h_mc - h_true)/h_true " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Using importance sampling" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0000002841, 0.0088200435)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "y = stats.expon(loc=5).rvs(n)\n", "h_is = 1.0/n * np.sum(stats.norm().pdf(y)/stats.expon(loc=5).pdf(y))\n", "# estimate and relative error\n", "h_is, np.abs(h_is- h_true)/h_true" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Antithetic variables\n", "\n", "The idea behind antithetic variables is to choose two sets of random numbers that are negatively correlated, then take their average, so that the total variance of the estimator is smaller than it would be with two sets of IID random variables." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def f(x):\n", " return x * np.cos(71*x) + np.sin(13*x)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.02025493910239406" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import sin, cos, symbols, integrate\n", "\n", "x = symbols('x')\n", "sol = integrate(x * cos(71*x) + sin(13*x), (x, 0,1)).evalf(16)\n", "sol" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0230464194, 0.1378172660206196)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10000\n", "u = np.random.random(n)\n", "x = f(u)\n", "y = 1.0/n * np.sum(x)\n", "y, abs(y-sol)/sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Antithetic variables use first half of `u` supplemented with `1-u`" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0268858498, 0.3273725341840888)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u = np.r_[u[:n//2], 1-u[:n//2]]\n", "x = f(u)\n", "y = 1.0/n * np.sum(x)\n", "y, abs(y-sol)/sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quasi-random numbers\n", "----\n", "\n", "Recall that the convergence of Monte Carlo integration is $\\mathcal{0}(n^{1/2})$. It turns out that if we use quasi-random or low discrepancy sequences (which fill space more efficiently than random sequences), we can get convergence approaching $\\mathcal{0}(1/n)$. There are several such generators, but their use in statistical settings is limited to cases where we are integrating with respect to uniform distributions. The regularity can also give rise to errors when estimating integrals of periodic functions. However, these quasi-Monte Carlo methods are used in computational finance models." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run \n", "```\n", "! pip install ghalton\n", "```\n", "if `ghalton` is not installed." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import ghalton\n", "\n", "gen = ghalton.Halton(2)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nA3WvNgHOfBxcAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,5))\n", "plt.subplot(121)\n", "xs = np.random.random((100,2))\n", "plt.scatter(xs[:, 0], xs[:,1])\n", "plt.axis([-0.05, 1.05, -0.05, 1.05])\n", "plt.title('Pseudo-random', fontsize=20)\n", "plt.subplot(122)\n", "ys = np.array(gen.get(100))\n", "plt.scatter(ys[:, 0], ys[:,1])\n", "plt.axis([-0.05, 1.05, -0.05, 1.05])\n", "plt.title('Quasi-random', fontsize=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Quasi-Monte Carlo integration can reduce variance" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "h_true = 1 - stats.cauchy().cdf(3)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(0.1020030639, 0.4035666902),\n", " (0.1011716917, 1.2153237752),\n", " (0.1029823526, 0.5526169416),\n", " (0.1042195045, 1.7605798453),\n", " (0.1033874412, 0.9481479851)]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = 10\n", "x = stats.uniform().rvs((n, 5))\n", "y = 3.0/(np.pi * (9 + x**2))\n", "h_mc = np.sum(y, 0)/n\n", "list(zip(h_mc, 100*np.abs(h_mc - h_true)/h_true))" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(0.1026632536, 0.2410466633),\n", " (0.1023042949, 0.1094428682),\n", " (0.1026741252, 0.2516617574),\n", " (0.1029118212, 0.4837496311),\n", " (0.1026111501, 0.1901724534)]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gen1 = ghalton.Halton(1)\n", "x = np.reshape(gen1.get(n*5), (n, 5))\n", "y = 3.0/(np.pi * (9 + x**2))\n", "h_qmc = np.sum(y, 0)/n\n", "list(zip(h_qmc, 100*np.abs(h_qmc - h_true)/h_true))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }