{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#Performing Maximum Likelihood Estimates (MLEs) in IPython\n", "By Delaney Granizo-Mackenzie\n", "\n", "Notebook released under the Creative Commons Attribution 4.0 License.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial notebook we'll do the following things:\n", "1. Compute the MLE for a normal distribution.\n", "2. Compute the MLE for an exponential distribution.\n", "3. Fit a normal distribution to asset returns using MLE." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we need to import some libraries" ] }, { "cell_type": "code", "execution_count": 249, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import math\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import scipy\n", "import scipy.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Normal Distribution\n", "We'll start by sampling some data from a normal distribution." ] }, { "cell_type": "code", "execution_count": 250, "metadata": { "collapsed": true }, "outputs": [], "source": [ "TRUE_MEAN = 40\n", "TRUE_STD = 10\n", "X = numpy.random.normal(TRUE_MEAN, TRUE_STD, 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll define functions that given our data, will compute the MLE for the $\\mu$ and $\\sigma$ parameters of the normal distribution.\n", "\n", "Recall that\n", "\n", "$$\\hat\\mu = \\frac{1}{T}\\sum_{t=1}^{T} x_t$$\n", "\n", "$$\\hat\\sigma = \\sqrt{\\frac{1}{T}\\sum_{t=1}^{T}{(x_t - \\hat\\mu)^2}}$$" ] }, { "cell_type": "code", "execution_count": 251, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def normal_mu_MLE(X):\n", " # Get the number of observations\n", " T = len(data)\n", " # Sum the observations\n", " s = sum(X)\n", " return 1.0/T * s\n", "\n", "def normal_sigma_MLE(X):\n", " T = len(X)\n", " # Get the mu MLE\n", " mu = normal_mu_mle(X)\n", " # Sum the square of the differences\n", " s = sum( math.pow((X - mu), 2) )\n", " # Compute sigma^2\n", " sigma_squared = 1.0/T * s\n", " return math.sqrt(sigma_squared)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's try our functions out on our sample data and see how they compare to the built-in `np.mean` and `np.std`" ] }, { "cell_type": "code", "execution_count": 252, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Estimation\n", "39.8835023788\n", "39.8835023788\n", "Standard Deviation Estimation\n", "9.87441843629\n", "9.87441843629\n" ] } ], "source": [ "print \"Mean Estimation\"\n", "print normal_mu_mle(X)\n", "print np.mean(X)\n", "print \"Standard Deviation Estimation\"\n", "print normal_sigma_mle(X)\n", "print np.std(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's estimate both parameters at once with scipy's built in `fit()` function." ] }, { "cell_type": "code", "execution_count": 253, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mu estimate: 39.8835023788\n", "std estimate: 9.87441843629\n" ] } ], "source": [ "mu, std = scipy.stats.norm.fit(X)\n", "print \"mu estimate: \" + str(mu)\n", "print \"std estimate: \" + str(std)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's plot the distribution PDF along with the data to see how well it fits. We can do that by accessing the pdf provided in `scipy.stats.norm.pdf`." ] }, { "cell_type": "code", "execution_count": 254, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n4qLbyxAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pdf = scipy.stats.norm.pdf\n", "# We would like to plot our data along an x-axis ranging from 0-80 with 80 intervals\n", "# (increments of 1)\n", "x = np.linspace(0, 80, 80)\n", "h = plt.hist(X, bins=x, normed='true')\n", "l = plt.plot(pdf(x, loc=mu, scale=std))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Exponential Distribution\n", "Let's do the same thing, but for the exponential distribution. We'll start by sampling some data." ] }, { "cell_type": "code", "execution_count": 255, "metadata": { "collapsed": true }, "outputs": [], "source": [ "TRUE_LAMBDA = 5\n", "X = np.random.exponential(TRUE_LAMBDA, 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`numpy` defines the exponential distribution as\n", "$$\\frac{1}{\\lambda}e^{-\\frac{x}{\\lambda}}$$\n", "\n", "So we need to invert the MLE from the lecture notes. There it is\n", "\n", "$$\\hat\\lambda = \\frac{T}{\\sum_{t=1}^{T} x_t}$$\n", "\n", "Here it's just the reciprocal, so\n", "\n", "$$\\hat\\lambda = \\frac{\\sum_{t=1}^{T} x_t}{T}$$" ] }, { "cell_type": "code", "execution_count": 256, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def exp_lamda_MLE(X):\n", " T = len(X)\n", " s = sum(X)\n", " return s/T" ] }, { "cell_type": "code", "execution_count": 257, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lambda estimate: 4.87198861083\n" ] } ], "source": [ "print \"lambda estimate: \" + str(exp_lamda_MLE(X))" ] }, { "cell_type": "code", "execution_count": 258, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# The scipy version of the exponential distribution has a location parameter\n", "# that can skew the distribution. We ignore this by fixing the location\n", "# parameter to 0 with floc=0\n", "_, l = scipy.stats.expon.fit(X, floc=0)" ] }, { "cell_type": "code", "execution_count": 259, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pdf = scipy.stats.expon.pdf\n", "x = range(0, 80)\n", "h = plt.hist(X, bins=x, normed='true')\n", "l = plt.plot(pdf(x, scale=l))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##MLE for Asset Returns\n", "\n", "Now we'll fetch some real returns and try to fit a normal distribution to them using MLE." ] }, { "cell_type": "code", "execution_count": 260, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2015-04-07 04:37:54.376769] INFO: requests.packages.urllib3.connectionpool: Starting new HTTP connection (1): localhost\n", "[2015-04-07 04:37:54.418188] DEBUG: requests.packages.urllib3.connectionpool: \"POST /api/pricing HTTP/1.1\" 200 5796\n" ] } ], "source": [ "prices = get_pricing('TSLA', fields='price', start_date='2014-01-01', end_date='2015-01-01')\n", "# This will give us the number of dollars returned each day\n", "absolute_returns = np.diff(prices)\n", "# This will give us the percentage return over the last day's value\n", "# the [:-1] notation gives us all but the last item in the array\n", "# We do this because there are no returns on the final price in the array.\n", "returns = absolute_returns/prices[:-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use `scipy`'s fit function to get the $\\mu$ and $\\sigma$ MLEs." ] }, { "cell_type": "code", "execution_count": 261, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAHiCAYAAAA+iolsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3WmYXfldH/jvrU1VJclqdavVbne33baxDrbbEFvYbAMm\nCTAGJ0BeJBkzYUuG5Akhw2xMMHnizIt5hoRkZhhCyDMesB8g4MAQ4gFDMmMMBgMG7MJb2+0jbEty\nL1JrbUm13rrLvKi6pbW2W/fWrXPr83nTVXc7v27p1Olv/f7/36m12+0AAABU0cigCwAAAOiWQAMA\nAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFTW2EZPFkXxriRvTXKhLMvXrT72piQ/lWQ8SSPJD5Rl\n+ZF+FwoAAHCnzTo0707yljse+/Ek/6Qsy9cnecfq9wAAALtuw0BTluWHkly94+FzSY6sfn1fkmf7\nUBcAAMCmNlxyto4fSfIHRVH8y6wEoq/ubUkAAABb002g+dkk/3VZlv+hKIq/nuRdSb5pozfMzMy0\nuykOAADYP06ePFnb7nu6CTRvKsvyG1e//tUkP7OVN508ebKLQ8HwmZmZcT5AnAvQ4VyAFTMzM129\nr5uxzZ8riuLNq1//pSSnujoyAADADm02tvk9Sd6c5FhRFE9nZarZ303yr4uiOJBkYfV7AACAXbdh\noCnL8m3rPPWVfagFAABgW7pZcgYAALAnCDQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQA\nAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBlCTQAAEBljQ26AACG\nX71ez5kzZ2577OzZszl8+PDa948//ngmJiZ2uTIAqk6gAaDvzpw5k+96+y9l+sjx25943/kkyfy1\nC/mFH/vOnDhxYgDVAVBlAg0Au2L6yPEcOvrIoMsAYMjYQwMAAFSWQAMAAFSWQAMAAFSWQAMAAFSW\nQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMA\nAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFSWQAMAAFTW\n2EZPFkXxriRvTXKhLMvX3fL4P0zyA0maSX6zLMt/1NcqAQAA7mGzDs27k7zl1geKoviLSb4tyZeV\nZflEkn/Zp9oAAAA2tGGgKcvyQ0mu3vHw30/yY2VZLq++5mKfagMAANhQN3toXpXk64ui+OOiKD5Y\nFMVX9LooAACArdhwD80G7zlaluVXFUXxxiS/kuQVm71pZmami0PBcHI+sN+cPXt209c8+eSTuXHj\nxi5UA3uP6wJ0r5tA80ySX0uSsiw/UhRFqyiKB8qyvLzRm06ePNlNfTB0ZmZmnA/sO4cPH07ed37D\n1zzxxBM5ceLELlUEe4frAqzoNth3s+TsvUn+UpIURXEiycRmYQYAAKAfNhvb/J4kb07yQFEUTyd5\nR5J3JXlXURSfSlJP8t19rxIAAOAeNgw0ZVm+bZ2nvqsPtQAAAGxLN0vOAAAA9gSBBgAAqCyBBgAA\nqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyB\nBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAA\nqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyB\nBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqCyBBgAAqKyxjZ4s\niuJdSd6a5EJZlq+747n/Psm/SHKsLMsr/SsRAADg3jbr0Lw7yVvufLAoiseSfFOSs/0oCgAAYCs2\nDDRlWX4oydV7PPW/Jfkf+1IRAADAFm17D01RFN+e5JmyLD/Zh3oAAAC2bMM9NHcqimI6yY9mZblZ\nR62nFQEAAGzRtgJNklcmeTzJJ4qiSJJHk8wURfGmsiwvbPTGmZmZrgqEYeR8YL85e3bzLZdPPvlk\nbty4sQvVwN7jugDd21agKcvyU0ke6nxfFMXpJCe3MuXs5MmT268OhtDMzIzzgX3n8OHDyfvOb/ia\nJ554IidOnNilimDvcF2AFd0G+w330BRF8Z4kf5TkRFEUTxdF8X13vKTd1VEBAAB6YMMOTVmWb9vk\n+Vf0thwAAICt2/aUMwAAgL1CoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEA\nACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpLoAEAACpL\n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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mu, std = scipy.stats.norm.fit(returns)\n", "pdf = scipy.stats.norm.pdf\n", "x = np.linspace(-1,1, num=100)\n", "h = plt.hist(returns, bins=x, normed='true')\n", "l = plt.plot(x, pdf(x, loc=mu, scale=std))" ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 0 }