{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open(\"../styles/custom.css\", \"r\").read()\n", " return HTML(styles)\n", "css_styling()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "
\n", "\n", "# [Physics 411](http://jklymak.github.io/Phy411/) Time Series Analysis\n", "*Jody Klymak*\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lecture 1: Statistics of Random Variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before we delve into time series analysis proper, it helps to review (? Hopefully it is a review!) some concepts about the statistics of random variables. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Random Variable Definitions " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A **[Random Variable](http://en.wikipedia.org/wiki/Random_variable)** is a random outcome of an experiment. For instance, the results of a dice roll are one realization of a random variable associated with that dice. If I weigh myself on a scale and take a reading, the result is a random variable associated with my real weight at that point in time, and any randomness of the scale.\n", "\n", "If we have a series of discrete measurements of the random variable ${x}$, we might index these by $k$, and call each realization $x(k)$. So the first coin flip would be $x(1)$, the second $x(2)$. \n", "\n", "Underlying these realizations of the random variable is a **[Probability Distribution](http://en.wikipedia.org/wiki/Probability_distribution)**. This is defined as:\n", "\n", "$$P(x) = \\mathrm{prob} \\left[x(k)\\leq x\\right]$$\n", "\n", "For a well defined random variable $P(-\\infty)=0$ and $P(+\\infty)=1$, and $0\\leq P(x)\\leq 1$. Note that $P(x)$ is dimensionless. \n", "\n", "As an example, consider the dice roll random variable. The probability of getting $x(k)\\lt 1$ is zero. The probabilty of $x\\lt 2$ is $1/6$, $x\\lt 3$ is $2/6$, etc. We might plot this as a series of stair steps:\n", "\n", "
\"Hi\"
\n", "\n", "(note for the code used to make these plots, see [lectures/Notes01](http://nbviewer.ipython.org/github/jklymak/Phy411/blob/master/lectures/Notes01.ipynb). I'm not including the code to maintain readibility)\n", "\n", "Closely related to this is the **Probability Density Function** which is just the derivative of the *probability distribution*:\n", "\n", "$$p(x) = \\displaystyle\\lim_{\\Delta x\\to 0} \\frac{1}{\\Delta x}\\mathrm{prob}\\left[x\\lt x(k)\\lt x+\\Delta x\\right] $$\n", "\n", "Note that $p(x)$ has units of $(\\Delta x)^{-1}$. Also note that it is related to the *probabilty distribution* as:\n", "\n", "$$ P(x) = \\int_{-\\infty}^x p(x)\\ \\mathrm{d}x.$$\n", "\n", "and over a limited interval:\n", "\n", "$$ \\mathrm{prob}(a\\leq x \\leq b) = \\int_{a}^b p(x)\\ \\mathrm{d}x.$$\n", "\n", "\n", "Because the result of the dice rolls $x(k)$ are discrete, the *probability density function* for the dice is formally undefined, but it can be represented as the sum of six delta functions centered at $x_0=1,2,3,4,5,6$:\n", "\n", "$$p(x) = \\frac{1}{6}\\sum_{x_0=1}^6 \\delta (x-x_0)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Uniform Distribution: $U[a,b]$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The uniform distribution has a *probability density function* that is uniform between $a$ and $b$, and zero elsewhere:\n", "\n", "$$p(x) = \\frac{1}{b-a}\\ \\ \\mathrm{if}\\ \\ a\\leq x\\leq b $$ \n", "\n", "The *probability distribution* is just the integral:\n", "\n", "$$P(x) = \\begin{cases}\n", " 0, & x\\leq a\\\\\n", " \\frac{x-a}{b-a},& \\text{if } a\\leq x\\leq b\\\\\n", " 1, & b\\leq x\\\\\n", " \\end{cases} $$\n", "\n", "
\"Hi\"
\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What questions might we ask about measurements or realizations of random variables?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is often desireable to repeat an experiment a number of times (generate a large set of $x(k)$) in order to determine the underlying statistics of the random variable. There are a number of questions scientists ask about the distribution, and it is helpful to consider a few of them here before we delve into more definitions.\n", "\n", "
\n", "\n", "
\n", "\n", "Consider the dice as an easy example. If we didn't know anything about dice, how would we quantify the statistics of the random variable? Or perhaps more relevantly, what would we do to check if this dice agreed with what we think we know about dice? \n", "\n", " 1. The simplest thing would be to plot or tabulate the dice rolls and see if each value from 1 to 6 came up the same number of times as we would expect. This would give a good feel for if the dice was fair. \n", "\n", " 2. We might calculate the *mean* of the dice rolls and compare that mean to the *mean* we expect (what mean do you expect?)\n", " \n", " 3. We might calculate higher moments like the *variance* (or the *skew*, or the *kurtosis*), and again compare them to the theoretical values we expect. \n", "\n", "The *expected* value of the various statistics is something we would like to calculate theoretically, and *estimate* emperically from our data set. \n", "\n", "This is all fine, but how do we know we have a fair dice? What if the dice is biased towards a six by 1%? A very important (and difficult) question is how confident are we that the dice is fair? Or relatedly, how many times would we have to roll the dice in order to assert that it is fair with some degree of confidence? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Theoretical Statistical definitions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we know the probability density function $p(x)$ then we can calculate a number of statistical quantities. \n", "\n", "**Mean**: is defined the expected value of x. This can be calculated as\n", " \n", "$$ \\mu_x=E[x(k)]=\\int_{-\\infty}^{\\infty} x\\, p(x)\\ \\mathrm{d}x$$\n", "\n", "For the dice:\n", "\n", "$$ \\mu_x = \\sum_{x_0=1}^6 \\frac{1}{6} x_0 = 3.5$$\n", "\n", "For the uniform distribution:\n", "\n", "$$ \\mu_x = \\int_a^b x \\frac{1}{b-a}\\ \\mathrm{d}x = \\frac{1}{b-a} \\frac{(b^2-a^2)}{2} = \\frac{b+a}{2}$$\n", "\n", "both of which are hopefully what you expected.\n", "\n", "**Variance** is the expected value of the second momment:\n", "\n", "$$ \\mathrm{var}(x)=E\\left[(x(k)-\\mu_x)^2\\right]=\\int_{-\\infty}^{\\infty} (x-\\mu_x)^2\\, p(x)\\ \\mathrm{d}x$$\n", "\n", "For the dice:\n", "\n", "$$ \\mathrm{var}(x) \\sum_{x_0=1}^6 \\frac{1}{6} (x_0-3.5)^2 = 2.92 $$\n", "\n", "For the uniform distribution this gets a little messy, but is more elgant if we assume the distribution is uniform over [-a/2,+a/2]. \n", "\n", "$$ \\mathrm{var}(x) = \\int_{-a/2}^{a/2} x^2 \\frac{1}{a}\\ \\mathrm{d}x = \\frac{a^2}{12}$$\n", "\n", "** Skew ** is the expected value of the third momment:\n", "\n", "$$ \\mathrm{skew}(x)=E\\left[(x(k)-\\mu_x)^3\\right]=\\int_{-\\infty}^{\\infty} (x-\\mu_x)^3\\, p(x)\\ \\mathrm{d}x$$\n", "\n", "and can represent how assymetrical the distribution is. It is relatively straight forward to show that both the examples here have $\\mathrm{skew}(x)=0$.\n", "\n", "** Kurtosis ** is the expected value of the fourth momment:\n", "\n", "$$ \\mathrm{kurtosis}(x)=E\\left[(x(k)-\\mu_x)^4\\right]=\\int_{-\\infty}^{\\infty} (x-\\mu_x)^4\\, p(x)\\ \\mathrm{d}x$$\n", "\n", "and represents how \"peaked\" the distribution is, or how long the tails at high and low distances from the mean are. \n", "\n", "For the uniform distribution over $[-a/2,+a/2]$:\n", "\n", "$$ \\mathrm{kurtosis}(x) = \\int_{-a/2}^{a/2} x^4 \\frac{1}{a}\\ \\mathrm{d}x = \\frac{a^4}{80}$$\n", "\n", "** Median ** \n", "\n", "This is the value at which the *probability distribution* reaches 1/2, i.e. $\\mathrm{prob}(x\\leq m) = 0.5$, where $m$ is the median.\n", "\n", "For the uniform distribution, and any symmetrical distribution, the median is the same as the mean. For the discrete dice distribution the meaning of the median is formally undefined, as it can lie anywhere between 3 and 4. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parameter estimation from data populations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets return to the question of the dice, and if it is \"fair\". We might roll it a number of times and build a \"population\" of rolls, which we may represent as $\\{x_k\\}$. For example, we roll it 20 times, and tabulate the results. Then we roll it 200 times, etc:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Numer of rolls: 20\n", "1 2 3 4 5 6 \n", "0.250 0.250 0.050 0.200 0.200 0.050 \n", "Mean: 3.000\n", "Variance: 2.700\n", "Skewness: 0.203\n", "Kurtosis: -1.395\n", "\n", "Numer of rolls: 200\n", "1 2 3 4 5 6 \n", "0.160 0.175 0.135 0.210 0.185 0.135 \n", "Mean: 3.490\n", "Variance: 2.740\n", "Skewness: -0.058\n", "Kurtosis: -1.221\n", "\n", "Numer of rolls: 2000\n", "1 2 3 4 5 6 \n", "0.158 0.169 0.169 0.173 0.160 0.171 \n", "Mean: 3.521\n", "Variance: 2.882\n", "Skewness: -0.002\n", "Kurtosis: -1.250\n", "\n", "Numer of rolls: 20000\n", "1 2 3 4 5 6 \n", "0.165 0.166 0.165 0.172 0.165 0.168 \n", "Mean: 3.509\n", "Variance: 2.906\n", "Skewness: -0.006\n", "Kurtosis: -1.261\n", "\n", "Numer of rolls: 2000000\n", "1 2 3 4 5 6 \n", "0.166 0.167 0.166 0.167 0.167 0.167 \n", "Mean: 3.502\n", "Variance: 2.918\n", "Skewness: -0.001\n", "Kurtosis: -1.269\n", "\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "def getrolls(N,doprint=False,theseed=None):\n", " import numpy as np\n", " import scipy.stats as stats\n", " np.random.seed(seed=theseed) # This just makes the \"random\" result the same everytime \n", " # I run the code.\n", " xx=np.random.rand(N)*5.999999999+0.99999999 # this will be from 1. to 6.99999999\n", " xx=np.floor(xx) # this will return integers from 1 to 6\n", " if doprint:\n", " st=''\n", " hd=''\n", " for i in range(1,7):\n", " inds = np.where(xx==i)[0]\n", " hd = hd+'%d '%i\n", " st+='%1.3f '%(float(len(inds))/float(N))\n", " print 'Numer of rolls: %d' % N\n", " print hd\n", " print st\n", " print 'Mean: %1.3f'%np.mean(xx)\n", " print 'Variance: %1.3f'%np.var(xx)\n", " print 'Skewness: %1.3f'%stats.skew(xx)\n", " print 'Kurtosis: %1.3f'%stats.kurtosis(xx)\n", " print ''\n", " return xx\n", "xx=getrolls(20,doprint=True,theseed=789)\n", "xx=getrolls(200,doprint=True,theseed=789)\n", "xx=getrolls(2000,doprint=True,theseed=789)\n", "xx=getrolls(20000,doprint=True,theseed=789)\n", "xx=getrolls(2000000,doprint=True,theseed=789)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hopefully it is clear that the bigger the sample size the better we are at estimating the parameters of the underlying distribution $\\{x_k\\}$. 20 rolls does a poor job (or you would have to be very lucky for 20 rolls to do a good job), and 2 million rolls does a good job (or you would have to be exceedingly *unlucky* for it to do a poor job). \n", "\n", "What did we do here? We *estimated* the parameters, like the mean, from the population $\\{x_k\\}$. For the mean, the **Sample Mean** it is what you would expect:\n", "\n", "$$\\overline{x} = \\frac{1}{N}\\sum_{i=1}^N x_i$$\n", "\n", "We might guess that the **Sample Variance** is:\n", "\n", "$$\\sigma^2_b = \\frac{1}{N}\\sum_{i=1}^N \\left(x_i-\\overline{x}\\right)^2$$\n", "\n", "but we will show below that this is a **biased estimator**.\n", "\n", "Hopefully it is clear that $\\overline{x}$ is itself a random variable. If we repeat the test of rolling the dice 200 times, we will get different values of the sample mean. This random varibale $\\{\\overline{x}_n\\}$ will have a distribution, and its own mean and variance.\n", "\n", "To see what the distribution of $\\{\\overline{x}_n\\}$ is, lets run the 200-dice-roll experiment 2000 times and tabulate the results:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "means=np.zeros(Nexpts)\n", "for i in range(Nexpts):\n", " xx=getrolls(200)\n", " means[i]=np.mean(xx)\n", "means200=means" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean of the means: 3.495\n", "Standard deviation of the means: 0.121\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure();ax=fig.add_subplot(1,1,1); \n", "ax.hist(means,30)\n", "ax.set_xlabel('$\\overline{x}\\ \\ N=200$');ax.set_ylabel('Occurences');ax.set_xlim([3.0,4.])\n", "print 'Mean of the means: %1.3f' % np.mean(means)\n", "print 'Standard deviation of the means: %1.3f' % np.std(means)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Se we see that running the 200-roll experiement yields a great variety of outcomes in the calculated mean, with means as low as 3.1, and as high as 3.9. However, the nice thing is that the mean of the estimates is very close to the expected value of 3.5. This gives us some hope that the *sample mean*, $\\overline{x}$, is a good estimator of the *distribution mean*, $\\mu_x$. \n", "\n", "What happens for 2000 2000-roll experiments? Hopefully each experiment will yield a better esitmate of $\\mu_x$ than the 200-roll experiments. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "means=np.zeros(Nexpts)\n", "for i in range(Nexpts):\n", " xx=getrolls(2000)\n", " means[i]=np.mean(xx)\n", "means2000=means" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean of the means: 3.499\n", "Standard deviation of the means: 0.037\n" ] }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1); \n", "ax.hist(means,30)\n", "ax.set_xlabel('$\\overline{x}\\ \\ N=2000$');ax.set_ylabel('Occurences');ax.set_xlim([3.0,4.])\n", "ax.set_title('Number of rolls=2000')\n", "print 'Mean of the means: %1.3f' % np.mean(means)\n", "print 'Standard deviation of the means: %1.3f' % np.std(means)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, the distribution of the means is *much* tighter, and the sample mean of the means is exactly what we would expect theoretically. \n", "\n", "So for the 200-roll experiments we would say that we know the mean from any single experiment as $\\overline{x}\\pm0.122$. For the 2000-roll experiments it is $\\overline{x}\\pm0.039$. For a 20-roll experiment, the mean would be determined within one standard deviation as $\\overline{x}\\pm0.39$. How do I know this? Because the standard deviation is simply changing by a factor of $\\sqrt{N}$ each time, and indeed is just equal to $\\sqrt{var(x)}/\\sqrt{N} = \\sqrt{2.92/20}=0.39$. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "means=np.zeros(Nexpts)\n", "for i in range(Nexpts):\n", " xx=getrolls(20)\n", " means[i]=np.mean(xx)\n", "means20=means" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean of the means: 3.502\n", "Standard deviation of the means: 0.371\n" ] }, { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1); \n", "ax.hist(means,30)\n", "ax.set_xlabel('$\\overline{x}\\ \\ N=20$');ax.set_ylabel('Occurences');ax.set_xlim([3.0,4.])\n", "ax.set_title('Number of rolls=20')\n", "print 'Mean of the means: %1.3f' % np.mean(means)\n", "print 'Standard deviation of the means: %1.3f' % np.std(means)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Good Estimator?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is the *sample mean*, $\\overline{x}$, a good estimate of the underlying distribution mean, $\\mu_x$? What characteristics do we seek in an estimator?\n", "\n", " 1. \"unbiased\" i.e. $\\mathrm{E}\\left[\\overline{x}\\right]=\\mu_x$\n", " \n", " 2. \"consistent\": \n", " \n", " $$\\displaystyle\\lim_{N\\to\\infty} \\mathrm{E}\\left[\\left(\\overline{x}-\\mu_x\\right)^2\\right] =0$$\n", " \n", " i.e. the more data put into $\\overline{x}$ is, the closer it gets to the theoretical mean $\\mu_x$.\n", " \n", "We saw above that both of these were indeed the case for the *sample mean* of the uniform distribution. We can prove that it is true in general.\n", "\n", "**Unbiased?**\n", "From the definition of $\\overline{x}$, and the fact that the expected value of a sum of variables is the sum of the expected values:\n", "\n", "$$\\mathrm{E}\\left[\\overline{x}\\right] = \\frac{1}{N}\\sum_{i=1}^N \\mathrm{E}\\left[x_i\\right]$$\n", "\n", "$$= \\frac{1}{N}\\sum_{i=1}^N \\mu_x = \\mu_x$$\n", "\n", "So, yes, the sample mean is unbiased.\n", "\n", "**Consistent?**\n", "\n", "We want to show that $$\\displaystyle\\lim_{N\\to\\infty} \\mathrm{E}\\left[\\left(\\overline{x}-\\mu_x\\right)^2\\right] =0$$\n", "\n", "We can always remove the mean with a change of variables: $y_i=x_i-\\mu_x$ so that we just have to show that \n", "\n", " $$\\displaystyle\\lim_{N\\to\\infty} \\mathrm{E}\\left[\\left(\\overline{y}\\right)^2\\right] =0$$\n", " \n", " \n", " So:\n", " \n", "\\begin{align}\n", " \\displaystyle\\lim_{N\\to\\infty} \\mathrm{E}\\left[\\left(\\overline{y}\\right)^2\\right]&=\n", " \\displaystyle \\lim_{N\\to\\infty} \\mathrm{E}\\left[\\left(\\frac{1}{N}\\sum_{i=1}^N y_i\\right)^2\\right]\\\\\n", " &= \\displaystyle \\lim_{N\\to\\infty} \\frac{1}{N^2}\\left(\\sum_{i=1}^N \\mathrm{E}\\left[y_i^2\\right]\\right)\\\\\n", " &=\\displaystyle \\lim_{N\\to\\infty} \\frac{1}{N^2}N \\sigma_x^2\\\\\n", " &=\\displaystyle \\lim_{N\\to\\infty} \\frac{1}{N} \\sigma_x^2\\\\\n", " &=0\n", "\\end{align}\n", " \n", "So, the *sample mean* is a *consistent* estimator of the distribtion mean.\n", " \n", "Note that here, we also showed that the variance of the *sample mean* $\\overline{x}$ decreases as the sample size $N$ increases:\n", "\n", "$$\\sigma_{\\overline{x}}^2=E\\left[\\left(\\overline{x}-\\mu_x\\right)^2\\right]=\\frac{1}{N} \\sigma_x^2$$\n", "\n", "which is what we showed emperically above. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Is the sample variance biased?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we noted above, the sample variance might be:\n", "\n", "$$\\sigma^2_b = \\frac{1}{N}\\sum_{i=1}^N \\left(x_i-\\overline{x}\\right)^2$$ \n", "\n", "This turns out to be biased. Again, assume $\\mu_x=0.$ for simplicity. Then if we foloow through the definitions of $E$ we see that:\n", "\n", "\\begin{align}\n", " E\\left[\\sigma^2_b\\right] & = E\\left[\\frac{1}{N}\\sum_{i=1}^N \\left(x_i-\\overline{x}\\right)^2\\right]\\\\\n", " &= \\frac{1}{N}E\\left[\\sum_{i=1}^N \\left(x_i^2-2x_i\\overline{x}+\\overline{x}^2\\right)\\right]\\\\\n", " &=\\frac{1}{N}E\\left[\\left(\\sum_{i=1}^N x_i^2\\right)-2N\\overline{x}^2+N\\overline{x}^2\\right]\\\\\n", " &=E\\left[\\left(\\frac{1}{N}\\sum_{i=1}^N x_i^2\\right)-\\overline{x}^2\\right]\\\\\n", " &=E\\left[x_i^2\\right]-E\\left[\\overline{x}^2\\right]\\\\\n", " &=\\sigma_x^2-\\frac{1}{N}\\sigma_x^2\\\\\n", " &=\\sigma_x^2\\left(1-\\frac{1}{N}\\right)\\\\\n", "\\end{align}\n", "\n", "So we see that the naive estimator is biased low. \n", "\n", "We can test this emperically by playing the same randomized game as above. Here we calculate the variance of 6 rolls, 12 rolls, etc 2000 times each and then take the mean of the variances for the 2000 experiments:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "Nrolls=[6,12,24,200,2000]\n", "sampvarmean=np.zeros(6)\n", "for nn,Nroll in enumerate(Nrolls):\n", " sampvars=np.zeros(Nexpts)\n", " for i in range(Nexpts):\n", " xx=getrolls(Nroll)\n", " sampvars[i]=np.sum((xx-np.mean(xx))**2)/Nroll\n", " sampvarmean[nn]=np.mean(sampvars)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nrolls mean expected\n", " 6 2.446 2.433\n", " 12 2.675 2.677\n", " 24 2.797 2.798\n", " 200 2.897 2.905\n", " 2000 2.920 2.919\n" ] } ], "source": [ "print \"Nrolls mean expected\" \n", "for i in range(5):\n", " print \"%7d %1.3f %1.3f\"% (Nrolls[i],sampvarmean[i],2.92*(1.-1./Nrolls[i]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, as we see, the mean of the *sample variances* is biased low by a factor $(1-1/N_{rolls})$ (approximately). Note as $N_{rolls}$ gets large, the bias drops. \n", "\n", "The *unbiased* estimator of the variance is simply:\n", "\n", "$$\\sigma^2 = \\frac{1}{N-1}\\sum_{i=1}^N \\left(x_i-\\overline{x}\\right)^2$$ \n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "Nrolls=[6,12,24,200,2000]\n", "sampvarmean=np.zeros(6)\n", "for nn,Nroll in enumerate(Nrolls):\n", " sampvars=np.zeros(Nexpts)\n", " for i in range(Nexpts):\n", " xx=getrolls(Nroll)\n", " sampvars[i]=np.sum((xx-np.mean(xx))**2)/(Nroll-1)\n", " sampvarmean[nn]=np.mean(sampvars)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nrolls mean expected\n", " 6 2.929 2.920\n", " 12 2.944 2.920\n", " 24 2.912 2.920\n", " 200 2.916 2.920\n", " 2000 2.915 2.920\n" ] } ], "source": [ "print \"Nrolls mean expected\" \n", "for i in range(5):\n", " print \"%7d %1.3f %1.3f\"% (Nrolls[i],sampvarmean[i],2.92)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we see that the estimator is not biased (though of course it is never exactly 2.92)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Normal (Gaussian) distribution and the central limit theorem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Normal distribution (or Gaussian) is given by the probability density function:\n", "\n", "\\begin{equation}\n", " p(x) = N(a,b)=\\frac{1}{b\\sqrt{2\\pi}} \\exp \\left[ - \\frac{(x-a)^2}{2b^2}\\right]\n", "\\end{equation}\n", "\n", "
\n", "\n", "
\n", "\n", "\n", "The expected value of $N(a,b)$ is $ E\\left[x\\right]=a$, and the variance is \n", "\n", "\\begin{equation}\n", " E\\left[(x-a)^2\\right]=b^2\n", "\\end{equation}\n", "\n", "(these are both relatively easy to show using integral tables). The Normal distribution should be familiar to most scientists; it is symmetric about $a$ and the width of the peaks is given by $b$, specifically the peaks drop by $e^{-1}$ at $x=a\\pm \\sqrt{2}b$. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Central Limit Theorem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The central limit theorem states that the summation of realizations from a large number of *arbitrary* independent random variables will be normally distributed. So, if $x_1(k), x_2(k),... x_N(k)$ are independent realizations of $N$ independent random variables, then if we define $x(k)$ as the sum of those realizations:\n", "\n", "\\begin{equation}\n", " x(k)=\\sum_{i=1}^N a_i x_i(k)\n", "\\end{equation}\n", "\n", "and as $N\\to\\infty$, the summation $x(k)$ will be Normally distributed.\n", "\n", "The proof of this is one of the central results in statistics, and basically consists of showing that all the momments of $x(k)$ asymptote to the momments of a Normal distribution. This proof is beyond our scope, though there are a number of proofs to be found on the web. \n", "\n", "We basically saw this in the dice rolling simulations above. The sample mean of $N$ rolls can be written as \n", "\\begin{equation}\n", " \\overline{x}=\\frac{1}{N}\\sum_{i=1}^N x_i\n", "\\end{equation}\n", "and since the rolls ${x_i}$ are independent, the sample mean of each set of $N$ will approach a Normal distribution as $N$ gets large. " ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def getRollsExpt(Nrolls,Nexpt,theseed=None):\n", " np.random.seed(seed=theseed) # This just makes the \"random\" result the same everytime \n", " # I run the code.\n", " xx=np.random.rand(Nexpt,Nrolls)*5.999999999+0.99999999 # this will be from 1. to 6.99999999\n", " xx=np.floor(xx)\n", " return xx\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "xx=getRollsExpt(20000,Nexpts)\n", "means=np.mean(xx,axis=1)\n", "means2mil=means" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Nexpts = 2000\n", "Nrolls=3\n", "xx=getRollsExpt(Nrolls,Nexpts)\n", "means=np.mean(xx,axis=1)\n", "means5=means" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1)\n", "bins = 30\n", "ax.hist(means20,bins,label='20 rolls',histtype='step',normed=True)\n", "ax.hist(means200,bins,label='200 rolls',histtype='step',normed=True)\n", "ax.hist(means2000,bins,label='2000 rolls',histtype='step',normed=True)\n", "ax.hist(means2mil,bins,label='$2e^4$ rolls',histtype='step',normed=True)\n", "ax.set_xlabel('mean roll');ax.set_ylabel('PDF [per roll increment]')\n", "ax.set_xlim([3.,4.])\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, not only does the distribution get narrower, it looks more like a Normal distribution. The comparison is a bit hard to see if we do it this way, so lets remove the mean and divide by the standard deviation. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1)\n", "bins = 30\n", "td = [means5,means20,means200,means2000,means2mil]\n", "lab = ['3 rolls','20 rolls','200 rolls','2000 rolls','$2e5$ rolls']\n", "histos=list()\n", "for nn,me in enumerate(td):\n", " histo, bins, patches = ax.hist((me-np.mean(me))/np.std(me),bins,\n", " label=lab[nn],histtype='step',normed=True)\n", " histos.append(histo)\n", "ax.set_xlabel('mean roll');ax.set_ylabel('PDF [per roll increment]')\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looked at this way, we see that even the distribution of the mean of 20 rolls is quite similar to a Normal distribution. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Testing if a distribution is Normal." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Informally, we can simply plot a normal distribution on top of our observed distributions." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import matplotlib.mlab as mlab\n", "\n", "midbins=bins[0:-1]-np.diff(bins)[0]\n", "y = mlab.normpdf(midbins, 0, 1.)\n", "ax.plot(midbins,y,'k--',label='Normal Dist')\n", "ax.legend()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this we see that there is not a large difference between 200 rolls and 20,000 rolls in terms of the shape of the distribution. We have to have as few as three rolls for the difference to be very profound. We can quantify this by taking the square of the difference between the theoretical distribution and the observed:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 3 rolls: 7.4159\n", " 20 rolls: 7.3653\n", " 200 rolls: 7.3176\n", " 2000 rolls: 7.3693\n", " $2e5$ rolls: 7.3322\n" ] } ], "source": [ "for i in range(5):\n", " print '%12s: %2.4f' %(lab[i],np.sum((histos[i]-y)**2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note this is kind of a poor test because the $N_{rolls}=3$ distribution has some bins in it with zeros. A more fair test is to compare the cumulative distributions. " ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 3 rolls: 0.2855\n", " 20 rolls: 0.1912\n", " 200 rolls: 0.2001\n", " 2000 rolls: 0.1923\n", " $2e5$ rolls: 0.1986\n" ] }, { "data": { "image/png": "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\npZSqxv4fMyKAR85xg5MAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import scipy.stats as stats\n", "fig,ax=plt.subplots(1,1)\n", "bins = 30\n", "td = [means5,means20,means200,means2000,means2mil]\n", "histos=list()\n", "for nn,me in enumerate(td):\n", " histo, bins, patches = ax.hist((me-np.mean(me))/np.std(me),bins,\n", " label=lab[nn],histtype='step',normed=True,\n", " cumulative=True,align='right')\n", " histos.append(histo)\n", "ax.set_xlabel('mean roll');ax.set_ylabel('PDF [per roll increment]')\n", "y = stats.norm.cdf(midbins, 0, 1.)\n", "ax.plot(midbins,y,'k--',label='Normal Dist')\n", "ax.legend(loc=2)\n", "ax.set_ylim([0,1.1])\n", "for i in range(5):\n", " print '%12s: %2.4f' %(lab[i],np.sum((histos[i]-y)**2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we see that three rolls is a poorer fit to the cumulative distributions, but less than twice as bad. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Confidence intervals: How do we know if our dice is loaded?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The short answer is that we can never be sure! Its theoretically possible to roll the dice 200 times, and get 6 every time. It is very unlikely! And we can quantify exactly how unlikely. (In this case its $(1/6)^{200}=2.3\\times10^{-156}$). \n", "\n", "So, imagine we are only able to roll the dice 200 times, $N_{roll}=200$, before we run out of time, money, or patience. We know that the mean of those 200 rolls should be 3.5 for the average experiment. We also know however, that the variance of those means is $2.92/N_{rolls}=0.0146$, or that the standard deviation is $\\sigma_{200}=0.121$. From the central limit theorem, we know that the distribution of the means will be a Normal distribution, with mean 3.5, and standard deviation 0.121. \n", "\n", "Since we theoretically know the expected distribution in such pleasant detail, we can easily determine the interval in which we expect 95% of the means from the 200-roll experiments to fall in. We pick 2.5% and 97.5% off the theoretical cummulitive distribution of the normal curve:" ] }, { "cell_type": "code", "execution_count": 297, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.26338169085\n", "3.7376188094\n", "(3.2628443578706534, 3.7371556421293466)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 297, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(3.5-1,3.5+1,2000)\n", "y=stats.norm.cdf(x,loc=3.5,scale=0.121)\n", "\n", "fig,axs=plt.subplots(2,1,sharex=True)\n", "ax=axs[0]\n", "ax.plot(x,y)\n", "ind = where(y>=0.025)[0][0]\n", "ax.plot(x[ind],y[ind],'gd')\n", "ax.text(x[ind],y[ind],' CDF=0.025')\n", "print x[ind]\n", "ind = where(y>=1.-0.025)[0][0]\n", "ax.plot(x[ind],y[ind],'rd')\n", "ax.text(x[ind],y[ind],' CDF=0.975')\n", "\n", "ax.set_ylabel('P(x): CDF')\n", "print x[ind]\n", "# we can also get this from the stats.norm.interval:\n", "interval=stats.norm.interval(0.95,loc=3.5,scale=0.121)\n", "print interval\n", "\n", "# plot the pdf. Fill in 95% of the distribution...\n", "y2=stats.norm.pdf(x,loc=3.5,scale=0.121)\n", "ax=axs[1]\n", "ax.plot(x,y2)\n", "inds=where((x>interval[0]) & (x" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0.,65.,1000)\n", "fig,ax=plt.subplots(1,1)\n", "for ndeg in [1,2,4,8,16,32]:\n", " y=stats.chi2.pdf(x,ndeg)\n", " ax.plot(x,y,label=('n=%2d'%ndeg))\n", "ax.legend();ax.set_title(r'$\\chi^2_n$ distribution'); ax.set_xlabel('$s_x^2$');\n", "ax.set_ylabel(r'$p\\left(s_x^2 \\right)$: PDF')\n", "ax.set_ylim([0.,0.4])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As $n\\to\\infty$ the sum approaches a Normal distribution, with mean $\\mu_{\\chi^2_n}=n$ and variance $\\sigma_{\\chi^2_n}^2=2n$.\n", "\n", "The ratio of these two distributions is called the **student-t distribution**, and governs the distribution of the *sample mean* normalized by the *sample variance*. " ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(0.0, 0.4)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(-10,10.,1000)\n", "fig,ax=plt.subplots(1,1)\n", "for ndeg in [1,2,4,8,16,32]:\n", " y=stats.t.pdf(x,ndeg)\n", " ax.plot(x,y,label=('n=%2d'%ndeg))\n", "y=stats.norm.pdf(x)\n", "ax.plot(x,y,'k--',label='Normal')\n", "ax.legend();ax.set_title('$t_n$ distribution'); ax.set_xlabel(r'$x\\prime$')\n", "ax.set_ylabel('$p(x\\prime)$: PDF')\n", "ax.set_ylim([0.,0.4])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For large-N the student-t distribution of $x'$ looks just like the Normal distribution. for smaller values of N, the distribution has larger tails." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Applying student-t to the dice rolls?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rolling the dice 200 times means we have 199 degrees of freedom for the student-t distribution. So that gives us an idea what the 95% confidence intervals are for any value of $\\overline{x}_{200}\\sqrt{N}/s_x$ are. " ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(-1.9719565442493949, 1.9719565442493949)\n" ] } ], "source": [ "interval=stats.t.interval(0.95,df=199)\n", "print interval" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So we do one experiment, report the mean, and compute the 95% confidence intervals:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.575\n", "2.71796482412\n", "3.58 +/- 0.38\n" ] } ], "source": [ "xx=getrolls(200,theseed=4590)\n", "xbar = np.mean(xx)\n", "sx = np.var(xx,ddof=1)\n", "\n", "print xbar\n", "print sx\n", "inter = interval[1]*sx/np.sqrt(200)\n", "print '%1.2f +/- %1.2f'%(xbar,inter)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, this says that the mean of the underlying distribution lies between 3.2 and 3.96 95% of the time. \n", "\n", "Of course with fewer rolls, these 95% confidence intervals get much larger:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.30 +/- 1.95\n" ] } ], "source": [ "Nrolls=20\n", "xx=getrolls(Nrolls,theseed=467)\n", "xbar = np.mean(xx)\n", "sx = np.var(xx,ddof=1)\n", "\n", "inter = interval[1]*sx/np.sqrt(Nrolls)\n", "print '%1.2f +/- %1.2f'%(xbar,inter)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Monte Carlo simulations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What we have been doing with the dice example is performing simple [Monte Carlo](http://en.wikipedia.org/wiki/Monte_Carlo_method) simulations. All this means is that we simulated random realizations of our experiments and looked at the statistics of the results. When possible, it is always desireable to determine the statistical character of an experiment analytically from first principals. For instance, we can pretty readily deduce that the mean roll of a six-sided dice will be 3.5, and that the variance of the rolls will be 2.92, and that if we average $N$ rolls together, the average will have a variance of $2.92/N$. However, if the function we want to know the distribution of was a lot more complicated than a simple mean of variables with a known distribution, we can resort to Monte Carlo simulations to determine the structure of the resulting distribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose instead of wanting to know the distribution of $\\overline{x}$ we want to know the distribution of $\\overline{\\exp(x)}$, where again $x(k)$ are dice rolls from a six-sided dice? The very simple form of the dice rolls makes the answer easy to calculate, but lets infer it from running Monte Carlo experiments just like we did above." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nrolls mean +/- std; std*sqrt(N)\n", " 1 104.918 +/- 141.687; 141.687\n", " 3 103.867 +/- 80.197; 138.905\n", " 30 106.527 +/- 25.562; 140.007\n", " 300 105.888 +/- 8.265; 143.152\n", "3000 106.206 +/- 2.603; 142.546\n" ] }, { "data": { "image/png": "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\nREREsvb/AdJviyyymWynAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1)\n", "print 'Nrolls mean +/- std; std*sqrt(N)'\n", "for Nrolls in [1,3,30,300,3000]:\n", " xx = getRollsExpt(Nrolls,2000)\n", " means = np.mean(np.exp(xx),axis=1)\n", " \n", " ax.hist(means,50,histtype='step',normed=True)\n", " print '%4d %1.3f +/- %7.3f; %5.3f'%(Nrolls,np.mean(means),np.sqrt(np.var(means)),\n", " np.sqrt(Nrolls*np.var(means)))\n", "ax.set_xlabel('$e^x$');ax.set_ylabel('$pdf(e^x$)');" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }