{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![title](header.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We've looked at Hypothesis testing and ANOVA, which can give us insights into continuous data that's categorically split. What if we have two continuous variables and we want to see the relationship between the two? We need to use regression. Regression using statistical libraries like scipy and statsmodels is different to scikit-learn's method due to the output being used for different things. Statistical libraries will output more analytical data and summary statistics, whereas scikit-learn's methodology is more about making a working model for predictions. By the end of this guide you should be comfortable with applying basic linear regression models to your own data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regression using Scipy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As with ANOVA, scipy gives us an easy way to come up with simple linear regression models at the price of having less customisation and output options. Let's look at an example of when we'd use regression analysis.\n", "\n", "First let's import all the libraries and data we'll be using:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy.stats as stats\n", "import matplotlib.pyplot as plt\n", "import statsmodels.api as sm\n", "import pandas as pd\n", "\n", "testData = pd.read_csv(\"testData.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at our test data:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x data y data\n", "0 10.262790 97.858634\n", "1 54.042887 373.536304\n", "2 24.821802 120.470881\n", "3 30.117078 242.484869\n", "4 59.304158 335.920346\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(testData.head())\n", "\n", "plt.scatter(testData['x data'], testData['y data'])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see here a general upward trend of our data - but how can we statistically analyse it? The linregress function under the scipy.stats library is the function we need:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "LinregressResult(slope=6.1914361788023147, intercept=43.146485599323341, rvalue=0.6912805901775535, pvalue=1.7066342530959711e-15, stderr=0.65375315815832835)\n" ] } ], "source": [ "print(stats.linregress(x,y))\n", "\n", "slope, intercept, r_value, p_value, std_err = stats.linregress(x,y) #Storing the output values for later use" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we get a load of ourputs - the slope and the intercept correspond to the line of best fit we're interested in. In fact, if we get a little clever with matplotlib, we can plot the datapoints and the line on the same graph:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngP8PavWKbV/JDiUAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xfit = np.linspace(5, 65, 101)\n", "yfit = slope * xfit + intercept #Equation of fitted line\n", "\n", "fig = plt.figure()\n", "ax = fig.add_axes([0,0,1,1])\n", "\n", "ax.plot(xfit, yfit, color=\"red\") #Plot fitted line\n", "ax.scatter(x,y, s=15) #Plot data again\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Great - we have the most important parts of our analysis - the model, but how useful is the model? The r_value will give us some insight:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.477868854356\n" ] } ], "source": [ "print(r_value ** 2) #Prints the R-Squared value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The R-Squared value is a measure of how well our model fits the data - it goes between 0 and 100%, so 0.47 means we might have problems with our model (i.e, it might not be linear!). In reality, it depends on the test we're trying to do. Psychology data for example typically has smaller R-Squared values than chemical data as humans are harder to predict than particles. You need to use your statistical experience to tell if this value is actually small.\n", "\n", "The p_value is the p-value for a hypothesis test with null hypothesis of the slope being equal to zero. In other words, this is the p-value for the data being related to some extent (if they weren't, we'd expect our slope to be around zero!). Here our p-value is very small, so we can say with confidence that our two variables are related.\n", "\n", "Finally, stderr is the standard error of the estimate. This gives us an idea about how \"wide\" the data is spread - i.e if we put a number into the model, what the standard error we can expect is." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regression using Statsmodels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As with ANOVA, statsmodels gives us far more control over what we're doing with linear regression, and lets us move to regression with more than one factor. For example, take the data below:" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " measurement x data y data z data\n", "0 162.067984 52.893388 48.853263 25.191883\n", "1 229.634127 3.391961 5.694731 76.401828\n", "2 157.195925 38.324961 23.015755 30.632007\n", "3 203.279546 21.297441 17.965501 51.450576\n", "4 260.999635 6.619755 47.818250 62.471135\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABC8AAAFsCAYAAADsRZNYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+UJedd3/nPV+oeAWpnxh1rZI1+IJNtA7InyOy0mgDN\nMQwEm0VRw+YYWZmgLM7KZ4/BsPEueJI9MVrijc8eIHYCy2YIigRibAswY9mL8doTC4Zg2jNyRMaS\nbLfANpIsaQTjkRmvmR/Ss39U1fTtO1V163c9T9X7paMzfavvvf3ce7uf7vrc5/l+zTknAAAAAAAA\nX13S9wAAAAAAAADyEF4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACv\nEV5gNMzsbjP7V32PAwDAnAwAvjCznzWze/seBzAL4QWQwsweMLN/2vc4AADMyQDgC4Jn9InwAgAA\nAAAAeI3wAsEws79jZifN7Fvjy7vM7Fkze3XG9V9lZp80s782s/dK+pqJz73YzD4Y3/5L8cfXxJ97\nu6RVSb9kZqfN7Jfi4+8ys8fN7Mtm9qCZrbb9mAHAV2b2v5rZ70wd+7dm9q6M6zMnA0BLzOxH4jky\n+f+MmT2Qcd2XmdkfxPPxRyS9ZOrzv2VmT5vZc2b2h2b2ivj4HZL+kaSfjr/GB+LjbzWzP4vv7xEz\n+6F2Hy3GivACwXDO/Zmkn5F0r5l9naT/KOke59wD09c1s22SDkn6DUmLkn5L0n8/cZVL4tt/vaTr\nJH1V0i/FX+dfSDoi6cedcwvOuR+Pb3NU0o3x/R2U9Ftm9jUCgHG6V9JrzGyHJJnZnKRbJf369BWZ\nkwGgXc6598Zz5IKkXZL+XNK7M65+UNKDikKLn5N0+9TnPyRpSdJOSZ+U9Jvx1zgQf/x/xl/r5vj6\nf6YoZN4u6U5Ff6tf1dRjAxLmnOt7DEApZna/pJdJcpKWnXNnUq7zXZLeI+lqF3+Tm9kfS/pPzrn/\nLeX6N0r6mHPuxfHlByTd65z7Dznj+JKkVzvn/rT+owKA8JjZhyS9zzn3q2b2g4r+oL0h5XrMyQDQ\nATO7RNL9kh53zv1PKZ+/TlGwsd0595X42EFJLzjn9qVcf4ekL0na4Zx7zszulvRE2tw9cZuHJL3N\nOff+Jh4TkGDlBUL0q5JeKenfpQUXsV2SnnRb07kvJB+Y2deZ2b83sy+Y2Zcl/aGkHWZ2adYXNbP/\nxcwejZfQnVKULr8k6/oAMAL3SEr+2N2naGVFGuZkAOjG2yW9SNKbMz6/S9KXkuAiNjkfX2pm74i3\ngXxZ0ufjT2XOr2b2o2b2kJmdiufjV+ZdH6iK8AJBMbMFSe+U9GuSftbMFjOu+pSkq83MJo5dN/Hx\nWyR9o6QV59zfkvRdyZeI/92yJCneS/3Tkl4n6cXOuR2Snpu4PgCM0SFJf9fMXinpBxUvLU7BnAwA\nLTOzWyW9XtI/dM6dy7jaU5JebGaXTxybnI9vk3SLpO9VFApfn9x9/O/0fPz1it5Y/HFJfzuejz8l\n5mO0gPACoXmXpGPOuX8q6f+R9H9nXO/jks5LerOZzZvZD0u6aeLzL1K0p/pUHIC8ber2z0j6hqnr\nn5f0rKQ5M/uXkv5W3QcDACFzzv2NpN9WtH/6E865v8i4KnMyALTIzF4l6d9JWnPOPZt1PefcFyQd\nk3SnmW0zs++UdPPEVV4k6Yykv5L0dZL+j6m7mJ6PL1cUaDwbj+N/ULTyAmgc4QWCYWa3SHqNpGT/\n3j+T9K1m9o+mr+ucOyvphyX9E0knJf2IpPdNXOWdkr5W0l9K+hNJvz91F++S9A/jqvf/VtKH4+t8\nVtHSur+R9HgjDwwAwnaPpN3K3jLCnAwA7btF0osl/dFEx5EPZVz3Nkkriubjt2lroeVfVzSvPinp\nEUVz8qRfk3RDvEXkkHPuEUm/oCikfkbR74P/3NBjAragYCcAAKgsLv72aUkvdc59ue/xAACAYWLl\nBQAAqCSuav/PJL2H4AIAALRpru8BAACA8MTF3p5RtLz4NT0PBwAADNzMlRdm9jVm9gkz+1Mze9jM\n7oyP/6yZPRm3xXnIzH5g4jb7zewxM/uMmX1/mw8AAMaC+Rg+cc59xTm34Jx7hXOOehMYHeZkAOjW\nzJoXcVuzy51zp81sXtIfSfpJRe+ynHbO/fzU9W+Q9G5FVcR3SfqopJc7555vYfwAMBrMxwDgD+Zk\nAOjWzG0jLko3TscX5+P/8xKPWxTtfT0j6XNm9piiSfrjWTd4yUte4q6//vqiYwaAID344IN/6Zy7\nourtu5iPJeZkAMNXdz6W+BsZAJpSdE4uVPPCzC6V9KCk/0bSLzvn1s3stZJ+wsx+VFGv4Lc4574k\n6WptbanzRHxs+j7vkHSHJF133XU6duxYkaEAQLDM7AsN3Efj83F8v8zJAEajifk4vh/+RgaAmorO\nyYW6jTjnnnfO3SjpGkk3mdkrJf2KpG+QdKOkpxT19y3MOXfAObfHObfniitqBd8AMBptzMfx/TIn\nA0BJ/I0MAN0p1SrVOXdK0sckvcY590w8Yb8g6VcVLXuTpCclXTtxs2viYwCAhjAfA4A/mJMBoH1F\nuo1cYWY74o+/VtL3Sfq0mV01cbUfkvSp+OP7Jd1qZpeZ2cskLUn6RLPDBoDxYT4GAH8wJwNAt4rU\nvLhK0j3xnr5LJN3nnPugmf2Gmd2oqDDR5yW9UZKccw+b2X2SHpF0XtKbqKIMAI1gPgYAfzAnA0CH\nZrZK7cKePXscxYgADJ2ZPeic29P3OGZhTgYwdMzHAOCPonNyqZoXAAAAAAAAXSO8AAAAAAAAXiO8\nAAAAAAAAXiO8AAAAAAAAXiO8AAAAAAAAXivSKhUAvHf8lHT4hPTcOWn7vLR3p7R7R9+jAgDMtL4u\nHToknTwpLS5Ka2vSykrfowKAYG1oQ0d1VKd1Wgta0LKWtaSlvodVG+EFgOAdPyV94IvSubjz83Pn\nossSAQYAeG19Xbr3Xuns2ejyyZPRZYkAAwAq2NCGjuiIzuu8JOm0TuuIjkhS8AEG20YABO/wic3g\nInHORccBAB47dGgzuEicPRsdBwCUdlRHLwQXifM6r6M62tOImkN4ASB4z50rdxwA4ImTJ8sdBwDk\nOq3TpY6HhPACQPC2z5c7DgDwxOJiueMAgFwLWih1PCSEFwCCt3enNG9bj81bdBwA4LG1NWnbtq3H\ntm2LjgMASlvWsuamSlvOaU7LWu5pRM2hYCeA4CVFOek2AgCBSYpy0m0EABqRFOWk2wgAeGr3DsIK\nAAjSygphBQA0aCn+b2jYNgIAAAAAALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAA\nALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAAALxGeAEAAAAAALxG\neAEAAAAAALxGeAEAAAAAALw21/cAAKBpx09Jh09Iz52Tts9Le3dKu3f0PSqgIevr0qFD0smT0uKi\ntLYmraz0PSoAADAiG9rQUR3VaZ3Wgha0rGUtaanVr0l4AQzYGE/ij5+SPvBF6ZyLLj93LrosDf+x\nYwTW16V775XOno0unzwZXZYIMNAMwjEA8FIfYUHeWI7oiM7rvCTptE7riI5IUqtjYtsIMFDJSfxz\n56LLyUn88VP9jqtth09sBheJcy46DgTv0KHN4CJx9mx0HKgrCcdOnowuJ+HY+nq/4wKAkUvCgtM6\nLWkzLNjQRi/jOaqjF4KLxHmd11EdbfXrEl4AAzXWk/gkrCl6HAhKclJZ9DhQBuEYAHipr7AgSxKi\nFD3eFMILYKDGehK/fb7ccSAoi4vljgNlEI4BgJf6CguyLGih1PGmEF4AAzXWk/i9O6V523ps3qLj\nQPDW1qRt27Ye27YtOg7URTgGAF7qKyzIsqxlzU2Vz5zTnJa13OrXJbwABmqsJ/G7d0g379oMabbP\nR5cp1olBWFmR9u3bPJlcXIwuU1ARTSAcAwAv9RUWZFnSkla1eiE8WdCCVrVKtxEA1SQn62PrNiJF\nj3EMjxMjtbJCWIF2JN9XdBsBAK8koYAv3UaSMXX99WeGF2b2NZL+UNJl8fV/2zn3NjNblPReSddL\n+ryk1znnvhTfZr+kN0h6XtKbnXMfbmX0AzbGFpdoHifxw8J8DKB1s8IxWqlewJwMoEt9hAVFdNnC\ntcjKizOSvsc5d9rM5iX9kZl9SNIPSzrsnHuHmb1V0lsl/YyZ3SDpVkmvkLRL0kfN7OXOuedbeQQD\nlLS4TDpFJC0uJU5E0xD0VDfG5y7wx8x8jPHhZNkfSSvVpCNJ0kpV2nxNpl+v3bul48eH+voxJwO4\nSJcn800qO+4NbeiP9cc6ozMXjiUtXCW18phnhhfOOSddKGM6H//vJN0i6dXx8XskPSDpZ+Lj73HO\nnZH0OTN7TNJNkj7e5MCHLK/FZUAnWZ0g6KkulOeuybAhlMechfkYo1PkZBnlVQ2E8lqprqykv15/\n8Aeb1x3Y68ecDGDahjZ0REcutDU9rdP6WPyfz0FG2rjzQojp609KWri28TgLFew0s0vN7CFJJyR9\nxDm3LulK59xT8VWelnRl/PHVkh6fuPkT8bHp+7zDzI6Z2bFnn3228gMYorG2uKwiL+hBvhCeuyRs\nSL73k7Dh+Klq9xfCY56ljfk4vl/mZPgn72QZ1SQBQ9L+NAkU1tdn33ZWK9W012vawF4//kYGMOmo\njqae0EubgcCGNjoe1Wxp405CiKLXn9RWC9dC4YVz7nnn3I2SrpF0k5m9curzTlHSXJhz7oBzbo9z\nbs8VV1xR5qaDN9YWl1UQ9FQXwnPXdNgQwmOepY35OL4dczL8M+tkGeXVCYRmtVIt+roM6PXjb2QA\nk2adtOcFAn3KGnfZ44m2WriWapXqnDsl6WOSXiPpGTO7SpLif5PTiSclXTtxs2viYyhorC0uqyDo\nqS6E567psCGEx1wU8zFGYdbJMsqrEwjNaqVa9HUZ4OvHnAxAKnbS3taqhDqyxl32uNRuC9eZ4YWZ\nXWFmO+KPv1bS90n6tKT7Jd0eX+12Se+PP75f0q1mdpmZvUzSkqRPND3wIdu9Q7p51+YJ1fb56HII\ne/K7RtBTXQjPXdNhQwiPOQ/zMUZn1skyyqsTCK2sSPv2bV53cTG6nNSvSHu9pg3o9WNOBjBtWcua\nm1FWsq1VCXWkjTsvhMh6nJfpMq1qtdduI1dJusfMLlUUdtznnPugmX1c0n1m9gZJX5D0Oklyzj1s\nZvdJekTSeUlv6ruKcojdBWhxWUzyHIX2+voghOdu786tBTalemFDCI95huDnY6CU5KSYbiPNWVvb\nWlRTKhco5LVSTXu9qnYbCaPLDHMygC2Sk/aka8e0NlcllDXdXWRJS3pcjxfqNjL9OLsqRmrRVrx+\n7dmzxx07dqyV+57uLiBFJz+sZADCEGL4mMXMHnTO7el7HLO0OScD8IDvwcB01xIpClgmV3nUxHwM\noAu+tk1N6xYyp7lWV03kKTonF1l5ETTajgJhYxUSADQsb/WED2a1ZAWAQCzF//kmr7uIj+NNlCrY\nGaIhdBcAAAAYDbrMAECrqnYR6dvgw4shdRcAAAAYPLrMAECrqnQR8cHgw4vQuwsAAACMCl1mAKBV\nZbuL+GLwNS8G0F0ALRlSIUgAAIKSVzSULjMAMFOdYqB9dQupa/DhhUTBP1xsugvNc+eiyxLfKwAA\ntGq6m8jJk9FlaWuAQVgBAKmmu4Wc1mkd0RFJKhVg+B5WTBv8thEgTV4XGgAA0KK8biIAgJnyuoUM\nGeEFRokuNAAA9IRuIgBQS6jdQuoivMAo0YUGAICe0E0EAGoJtVtIXaOoeQFM27tza80LiS402EQx\nVwAoIK/oZp61ta01LyS6iQAYhDpFNMtY1vKWmhdSGN1C6iK8wCjRhQZZKOYKAAUUKbqZhW4iAAao\niSKaRYXaLaQuwguMFl1okCavmCvfLwAQyyu6WSSEoJsIgIHJK6LZRqgQYreQuqh5AQATKOYKAAVQ\ndBMAthhrEc0uEV4AwASKuQJAARTdBIAtxlpEs0uEFwAwYe/OqHjrJIq5AsCUtbWoyOYkim4CGLFl\nLWtuqirDGIpodomaFwAwgWKuAFAARTcBYIuxFtHsEuEFAEyhmCsAFEDRTQDYYoxFNLvEthEAAAAA\nAOA1wgsAAAAAAOA1to0g0/FTfuz792UcAICa1tfDr5EwhMcAABiUDW1UqrVR9XZ9IbxAquOnpA98\nUTrnosvPnYsuS90GB76MAwBQ0/q6dO+90tmz0eWTJ6PLUjgn/0N4DACAQdnQho7oiM7rvCTptE7r\niI5IUm4QUfV2fSK8QKrDJzYDg8Q5Fx1vIzTIWl3R9TgAAC05dGjzpD9x9mx0PJQT/yqPgZUaAIAG\nZK2SOKqjFwKIxHmd11EdzQ0hqt6uT4QXSPXcuXLH68hbXdHlOAAALTp5stxxH5V9DKzUAAA0IG+V\nxGmdTr1N1vFZn591uz5RsBOpts+XO15H3uqKLscBAGjR4mK54z4q+xjyVmoAAFBQ3iqJBS2k3ibr\n+KzPz7pdnwgvkGrvTmneth6bt+h40/JWV3Q5DgBAi9bWpG3bth7bti06Hoqyj2EIq00AAL3LWyWx\nrGXNTW2omNOclrWce59Vb9cnto3kGHOXi+RxdvH4t8+nBxjb57sdBwCgRck2iZDrP5R9DIuL6UFF\nSKtN+kS9EACBaat7x4IWUgOMBS1cuP+yX7fq7fpEeJFhyF0uioYyu3d081j37tz6XEtbV1d0NQ4A\nwAx1TyZXVsI/+SzzGNbWtta8kMJbbdIX6oUACEyb3TuWtbzlvqWtqySW4v/Kqnq7SV22WyW8yDDU\nLhc+hjLJ1/3QU9JXX4g+nmNDk6Rxr/4BvNH0u7+hvpvMyWR5Q1ht0pchdKcBMCptdu/IWyXRdHhQ\n5v66brdKeJHBhy4XbZy4+hzKnJ8Y11ef7z9U6ZuPQRMwOk2fsIccAHAyWc0QVpv0Ia9eyBvfSBAE\nwDt1uncUCQzSVkk0HR6Uvb+u263y/naGvrtcJCeuSViSnLgeP1Xvfn0IZdLkhSpjxXMCeKDpbhEh\nd5+g+CS6NKsuSBL8ra93Mx4AmKFq944kMEhCjiQw2NDGzK+ZFx5UUfb+um63SniRoe8uF22duGaF\nL197ifTOz0p3Phz9WzckKcvXUKVPPCeAB5o+YQ85AOiz1en6urR/f/SO+/79nLCOQVpnl2mhBH8A\nRqFq9446AUReeHBAB3RQBwuFIEXuL03X7VYJLzLs3iHdvGvzZH/7fHS5q+X6bZ24poUyl0g665pf\n5VFG3ytdfMRzAnig6RP2PgOAuvpqdZpstUkCHt5xH4eVFWnfvmIrMADAA0ta0qpWL5y4L2hBq1qd\nuX2izuqFWSFBmVUcefeXdbzrdqvUvMjRZ5eLvPahdaS1Hj37QlRjYlLXdTBmdRwZI1+eE4qGYtSa\n7hbRRfeJtgqC9lV8klob4zVZL2T/ftrOAvBeXveOrLoWeW1QZ0nrQjKtTA2KWV1NpnXdbpXwwlNt\nnrhOhzJ3Ppx+vS63J6SFKmM/SfbhOaFoKEav6RP2tgOAtguC9lF8MuStNmgObWcBBCyvEGbZwGDS\ndHiQpWgNiiphRBPtVosivPBUlyeuba3yKKvPlS6+6vs58bk7DdCZpk/Y2wwAhrhKYXGRd9xB21kA\nQcura3GbbrtwnSqrFybDg4M6WHkVR9r9+WZmeGFm10r6dUlXSnKSDjjn3mVmPyvpf5T0bHzVf+6c\n+734NvslvUHS85Le7Jz7cAtjH7yuTlx92Z4A/1A01C/Mx5hpiKsUeMcdCc/azjInAyhqVl2LpgKD\nOqs4QlBk5cV5SW9xzn3SzF4k6UEz+0j8uX/jnPv5ySub2Q2SbpX0Ckm7JH3UzF7unJuqqgBf+LA9\nAX7yZVUOLmA+Rr4hrlLgHXf4izkZQCF16lqU0XUNiq7NDC+cc09Jeir++K/N7FFJV+fc5BZJ73HO\nnZH0OTN7TNJNkj7ewHjRkrxVHhRsHC9W5fiF+RgzDXWVgg/vuLdVCBXBYk4GUNS1ulaP6tEtx9pa\nEeHzto+6SrVKNbPrJb1KUtKf7CfM7L+a2V1m9uL42NWSHp+42RNKmcjN7A4zO2Zmx5599tnpT8MT\nScHGPtuooj99twxGtibn4/j+mJOHYLq95OJidJmT7Hpo14oZ+BsZQJaN+L9pQw4Z2lK4YKeZLUj6\nHUk/5Zz7spn9iqSfU7TH7+ck/YKkHyt6f865A5IOSNKePXvcjKujJxRsRN9FQ2cZ48qgpudjiTl5\nUHxYpdC0vlc9DLEQKhrD38jAuGS1PM2SVqxTkh7fkmWiiELhhZnNK5qUf9M59z5Jcs49M/H5X5X0\nwfjik5Kunbj5NfGxIIzxRCgPBRvhszG2ch3TfAxIar/9axFDLIQaur4DrRhzMhCusiFEcpuslqdZ\nt51VrBPFFek2YpJ+TdKjzrlfnDh+VbzXT5J+SNKn4o/vl3TQzH5RUTGiJUmfaHTULRnDiVDZcIaC\njfDZ2FYGjWk+xgRPTtJ648OqhyEWQg2ZD4GWmJOBkFUJIaT8lqdZtytSrLNKkDJGRVZefIekfyzp\nuJk9FB/755Jeb2Y3KloS93lJb5Qk59zDZnafpEcUVWF+UyhVlId+IlQlnNm7Uzr0pPTCxLFLRMFG\n+GGEK4NGMx8j5slJWq98WPUw1EKoTesqaPMh0IowJwOBKhpCTIcKVVZRzGpfWjVIGaMi3Ub+SJKl\nfOr3cm7zdklvrzGuXgz9RKhqOGOm6Nfv5GXAA2NbGTSm+Rgxf07S+uPDqgfatc7WZdDmQ6Al5mQg\nZEVCiLRQIUtey9NZ7UurrOYYq8IFO8dg6CdCVcKZwyek56cCj+cHtBoFYaOVKwbPk5O0Xvmy6mGI\nhVCb1GXQ5kOgBSBoRbZyZBXanFak5WleZxFqYhRXqlXq0O3dGZ34TBrSiVBWCJMXzgx9NQrCRitX\nDF7WydiYTtJo/xqGLoO2tbUowJrENh4AJSxrWXNT7+NPhxBFVlosaEGrWq21QiJr1Ubeao6xYuXF\nhOSEZ6jdRqq8Sz301ShDMPYOOb63cgVq8WXVQd9Y9eC/uqshytTLYBsPANUrcjlrK4eUvzrjNt3W\nzIPQ7JoY2ER4MWXIJ0JVwhmW5fttDB1ygFHjJA2hqBO0VamXQaAFjFoTRS7ztnJI3YUKRYIURAgv\nRqZsODP01SihG3qHHADiJA1hqBO0UZgWQEldFLnsMlSYFaQgQniBmbICj7FvV/ABNUkAAKm6als6\nqWrQRmFaACU1UeSyyLYTQgW/ULATlSTbFZKT5GS7wvFT/Y5rbKoUYQUADFyyDSM5+U+2Yayv9zuu\nLBSmBVBS3SKXybaTJOxItp1saKOxMaJ5hBeoJG+7Aroz9A45AIAK8rZh+IjuIQBKKtItJE/ethP4\naxTbRtje0Ly87Qrv/CzPdVeoSQKon+XxgM/a3IbRxs8bhWkBlFS3HkXdbSd1Op2EwNfHN/jwos9u\nDEMOTbJaqEoXbyWRhvO4fTTkDjnATFW6FGDcxhB21W1bmqXNnzcK0wIoqU49irw2qFkmT+gnVel0\n4rMmOrm0ZfDbRvra3jD0mhBp2xXSsJUEQKtCWx6PfoVWC6KqtrZh8PMGYCDKbjuZrpExbUhbTnze\nUjP48KKvbgxDrwmxe4d0867NwpB5BSLpfAGgNXQpQBljOfleWZH27dtcabG4GF2uu7KBnzcAA7Gk\nJa1q9cJKiwUtaFWrmSsL0k7op5XpdOKzJjq5tGXw20aytje03Y1hDC0sp7crJLUuptH5AkBr2loe\nj2Ea08l3G9sw+HkDMCBltp0UOXEv2unEd1W21HRl8Csv+urGMMYWlnS+ANA5uhSgDFpy1sPPG4CR\nmnXiXqbTie/qdnJp0+DDi7TtDTfvar/A4RhP5Pt6rgGMWFvL4zFMnHzXw88bgJFKO6FPzNpyEpqy\nW2q6NPhtI1I/3RjG2sKSzhcAOkeXAhRFS876+HkDMEJ1W7OGpk4nlzaNIrzoCyfyAAB4hpNvAEAF\nvp7Qj8ngt40AAAAAAICwEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAA\nAACv0SoVg3L8lHT4hPTcOWn7vLR3J+1qAaCS9XXp0CHp5ElpcVFaW6PFKAAAsQ1t6KiO6rROa0EL\nWtYyrVRbRniBwTh+SvrAF6VzLrr83LnosjQ7wCD0AIAJ6+vSvfdKZ89Gl0+ejC5LfgYYBC0AMAq+\nBAYb2tARHdF5nZckndZpHdERSSLAaBHbRjAYh09sBheJcy46nicJPZ47F11OQo/jp9oZJwB479Ch\nzeAicfZsdNw3SdBy8mR0OQla1tf7HRcAoFFJYHBapyVtBgYb2uh8LEd19EJwkTiv8zqqo52PZUxY\neZGBd+LDk4QPRY8n8kIPXnMA3mtj1UESBBQ93qe8oIXVFwAwGHmBQderHZIApehxNIPwIkXa9oP3\nPSl96CnptVdxQuur7fPpQcX2+fzbVQ09AKB3bW3vWFxMDyoWF6vfZ1tCClpQDtuBgNFK2x7iS2CQ\nt9JjQQsdjmR8CC9SpL0TL0lffaF4DQV0b+/OraGTJM1bdDxP1dADAHrX1qqDtbWtoYgkbdsWHfdN\nSEGLxAl5UaHVXQHQmKx6EpfpMp3RmYuuXyYwaKJmRt7WkGUtl7ovlEN4kSLvHXe2E3Sv6Bae5FjZ\n7T5VQw8A6F1bqw6Sk8MQTrJDClo4IS8uK5h773t5roAAlQkNsraHXKpLNae5LZ+b01zhwKCpIpt5\nKz0o1tkuwosUWe/EJ9hO0J2yHUR27ygfLFUNPQCgd22uOlhZCeMkMaSghfocxWUFcF/5ShQC8XwB\nwSgbGmSFA2d0Rt+t7668cqKpmhkLWkgdI1tG2kd4kWLvzqjGRZYhbyfwrVBpV8U0q4QeANC7IqsO\nxrBNIZSghfocxWUFcxJhDxCYsqFBW+FAUzUzlrW8JYyRyq0AQXWEFyl274iKc371hfTPD3U7QdlV\nDl1os5j0zxsYAAAgAElEQVSmb0ENAJQ2a9XBGLcp+BzWhFafo09ra9Jdd6V/jrAHCEpeaHBABy5a\nQZEVDlyra2tt+2gqFEm+Vt3aGSiP8CLDa6+6uA6CJO0Z8Dv0PrYMbauYpo9BDQBUkrfqYGzbFHwP\na0Kqz9G3lZWovsVXvnLx5wh7gKBkhQaJ6RAiKxyou+2jyRUTk+NEdy6ZdQUzu9bMPmZmj5jZw2b2\nk/HxRTP7iJltxP++eOI2+83sMTP7jJl9f5sPoC27d0g379o8Sd4+L/3w1dJ/d3W/42qTjy1D9+6M\nimdOaqKYZl5QA/hqrPMxahjbNoW8sMYHKyvSvn2bJ9+Li9FlH4IVH/3Ij0ThziSPwh7mZKCYZS1r\nbsZ75kkIkVjSkm7TbbpDd+g23aYlLdXe9rGkJa1q9cJKiwUtaFWrhBABKbLy4ryktzjnPmlmL5L0\noJl9RNI/kXTYOfcOM3urpLdK+hkzu0HSrZJeIWmXpI+a2cudc8+38xDaM7Y6CD62DG2rmKaPQQ3y\nsc1Hku/zsc/L9cdqbNsUQghrQqnP4QP/i7H6PScDnpheSZFlVghBoUzMDC+cc09Jeir++K/N7FFJ\nV0u6RdKr46vdI+kBST8TH3+Pc+6MpM+Z2WOSbpL08aYH3wWfT5iaHpuvLUPbCJF8DGqQjW0+Ea/n\n47aW6xOI1JO2TeHSS6UzZ6Q3vnF4z+nYwpox8Djs8XpOBjwzuc3ioA5WCiHqbvtoqlVq1n2n1cAo\n0yIWs5WqeWFm10t6laR1SVfGk7YkPS3pyvjjqyX9ycTNnoiPTd/XHZLukKTrrruuzDA64/MJUxtj\na7NlqG8hkK9BDdL5WI+lb03Ox/H91ZuT26it4Hv9gqq6DGSm37m+/HLpb/5ms47AUJ7TBDUl0JOx\n/Y0M1FE1hMiqhSFtBiJ5AUFTrVKnZYUiT+tpbWijlbBkrAqHF2a2IOl3JP2Uc+7LZpuFCJxzzsxc\n5o1TOOcOSDogSXv27Cl12650ccJU9aS+yNiq3Hcbqxx8DIHaDGrQPLb5bNX0fBzfrt6cXHS5fpkT\n9yEWm+wjkJl853r//osLIIb+nE7yf5uBX1jZ1Igx/o0M1FGmW0fayoXbdNuWzxddTTGrZkbVVRJZ\nocin9Wk5uYuO1w1LxqxQeGFm84om5d90zr0vPvyMmV3lnHvKzK6SlJQ6fFLStRM3vyY+Fpy2T5jq\nnNTPGptPgYGv75qPraZJyNjms8nb+bjIcv2yJ+4h1C8oq+9AZojP6TSPtxl4Zagrmzrm7ZwMeK5I\nt44iwUSZ1RR5NTPqbCnJCkWmg4tZ18dsRbqNmKRfk/Soc+4XJz51v6Tb449vl/T+ieO3mtllZvYy\nSUuSPtHckLuTdWLU1AlTnY4Xs8bmUzcN3jVHXW11nQmN1/Px2trsrgBlO0Fk1SkIuX5B3+HBEJ9T\nVON7Z5YAeD0nAwOQF0wkynQgSet6kmxXKfK1smTV6jBZ6nEKjFY3M7yQ9B2S/rGk7zGzh+L/f0DS\nOyR9n5ltSPre+LKccw9Luk/SI5J+X9KbQq2i3PYJU52T+llj8ykwaDsEwvCltS6+edcoV874Ox8X\naQFZ9sS9SCASmr7DgyE+p6im7yBtGPydk4EBKBJMZAUBacfzWqXWacOaFYp8k74pMyxBNUW6jfyR\nlBEbSXszbvN2SW+vMS4vtF0Xoc5S+Flj82mZPcUx0QS2+QQwH89arl+2E8QQ6xf0XVByiM8pqqEz\nS23ez8lA4Iq0Ri1b/DNru0qdNqx5NTxeqpfSbaRBpbqNjFGbJ0x1T+rzxuZTYEBxTACSqp24D61+\ngQ/hwdCeU1TTd5AGADMUCSbKFP+s+7XyZIUiRWp7oDjCix61eVLvW2DAu+YAvDhx9wHhAXzAzyMA\nzxUNJpoICJoKQdAuwouetXlST2CAsqq27gUK48Qd8EdbP4+0YAVaU7WdZ6i6XLnAKgn/EV4AkORX\ne10AQKBowQq0pk47T2AICC8ASMpvr+tTeMHqECAQvPs+TnktWHn9gVry2nnWCS/GtpoD4SK8ACDJ\nr/a6WVgdAgSCd9/HixasQGvqtPPMwmoOhOSSvgcAwA9ZbXT7aK+bJW91CACP5L37jmHLarVKC1ag\ntqy2nUXaeWbJW80B+IbwAoCkaPvF/FS3+r7a62YJYXUIAPHu+5itrUUtVyfRghVoxLKWNTe1cL5M\nO880bazmANrCthEAkvxrr5tm+3x6UOHT6hAAit5lTwsqePd9+GjBCrSmjXaeC1pIDSrqrOYA2kJ4\nAeAC39vr7t25teaF5N/qEACKTlYna15IvPs+JrREBlrTdDvPZS1vqXkh1V/NAbSF8AJAMEJYHQJA\nvPsOAIFoYzUH0BbCi4po1wj0w/fVIegY7Tj9xbvvABCEpldzhIy2sX4jvKiAdo0A4AHacQIAgIbQ\nNtZ/hBcV5LVrHEJ4waoSAEHIa8dJeAEMByusMGKsBOhOXttYnnM/EF5UMOR2jawqARAM2nECw8cK\nK4wYKwG6RdtY/13S9wBClNWWcQjtGvNWlQCAV7LabtKOExiOvBVWwMDlrQRA87Law9I21h+EFxXs\n3Rm1Z5w0lHaNQ15VAmBg1tai9puTaMcJDAsrrDBirATo1rKWNTe1MYG2sX5h20gFQ27XuH0+PagY\nwqoSAANDO05g+BYX04MKVlhhBBa0kBpUsBKgHbSN9R/hRUVDbde4d+fWmhfScFaVABgg2nECw7a2\ntrXmhcQKK4zGspa31LyQWAnQNtrG+o3wAlsMeVUJAAAIDCusMGKsBAC2IrzARYa6qmSIaGsLdIyW\njUD3WGGFEQt5JQBtXtE0wgugJ3WDB1/b2hKoYLBo2ZiPYAdl8P2Cno35xLqLx06bV7SBbiNAD5Lg\nISmOmgQPx08Vvw8f29o28bgAb9GyMVsS7CSFFZNgZ32933HBT3y/oGfJiXVSDDM5sd7QRs8ja19X\nj502r2gD4QXQgyaCBx/b2voYqACNoWVjNoIdlMH3C3o25hPrrh47bV7RBraNAD1oInjooq1t2S0g\nPgYqQGNo2ZiNYAdl1P1+YcsJaqp7Yh3ylpOuQgXavKINrLwAepAVMJQJHvbujNrYTmqyrW2VLSBN\nPC7AW2trUYvGSbRsjGQFOAQ7SFPn+4UtJ2hA1gl0kRPr0Lec1HnsZSxrWXNT75PT5hV1EV4APWgi\neNi9Q7p512YwsH0+utxUccwqW0DaDlSAXq2sSPv2bZ5gLS5Gl3nHl2AH5dT5fmHLCRpQ58Q69C0n\nXYUKS1rSqlYvhCILWtCqVoNZoQI/sW0E6EESMNTtytFmW9sqW0CaelyAt2jZmC55TljKjyLqfL+w\nRQkNSE6gq2z9CL2WQ53HXuVrEVagScGGF7Rj5DnoWtPPd5vBQxOq1tTw/XEBaEBWzYHJk8/1dWn/\nfn/CDOok+KVqEEjtGTSk6ol1G7Ucuq6h0UaoUPQxhFwvBP0LMrxI9uInS9qTvfjSeE6aeA66Ferz\nXSdw2btz62OW2AICQJs1B5Kl+0nNAWnzZLTIdfLuv+mQoc544Je1ta2vpcQWJXRqWcs6oiNbto7U\n2XaR1NBI7i+pofG0ntbjejyIk/ysxyBpy5iLXg/IEmR4kbcX3+cTySbxHHQrhOd7OqhYulz60+eq\nBy6hbwFhZRLQkryaA5PbAWZdJ01bIUPV8SBd2YCpyUCKLUqoqe47/9PbLky2peZF2ZPwrBoaj+rR\nC5d9P8nPqwMyOd6i1wOyBBle0I6R56Brvj/faStDjqV0BSkbuIS6BSTUlTJAEIrUHKhal6CtkIE6\nCc0pGzC1EUhRewYVNfXOf3LdJu6raK0Mn0/yi9YBCb1eCPoXZLcR2jHyHHTN9+c7bWVIFl8ClzZV\n6ZQCoKAibS6rtsJsK2SglWtzynb7oDsIPNJkp5Cm7qtMrQxfT/KLtl/tqk0rhivI8IJ2jDwHXfP9\n+S4TSPgSuLTJ95UyQNCKtLms2gqzrZCBVq7NKRswseoFHmnynf+m7iutdWkWX0/yi7Zf7apNK4Zr\nZnhhZneZ2Qkz+9TEsZ81syfN7KH4/x+Y+Nx+M3vMzD5jZt/fxqB375Bu3rV5ErZ9Pro8puXgPAfd\n8v35LhpI+BS4tKmtlTLHT0nv/Kx058PRv8dTtua0zcc5GQ1JunO88Y3Rv+vrfY8o3cqKtG/fZqCw\nuBhdnlzGX+Q6adoKGaqOBxcrGzANeNUL83F4yr7zv6ENHdRBHdABHdRBbWij8n1lWdKSVrV64XYL\nWtA365uDOslPewyrWr1oi0vR6wFZisR8d0v6JUm/PnX83zjnfn7ygJndIOlWSa+QtEvSR83s5c65\n5xsY6xah7sVvEs9Bt3x+vrM6g3zLdmnjK+MrWpn2fEjS2ReiwKHKc+BRHY275eGcPEhdttYMrRtG\nkZoDVeoStFmMkToJzSjb7WPY3UHuFvNxUMp0CplVH6PJriNZrUs/rU/LyclkrbQ3bVLR8fn+OOC3\nmeGFc+4Pzez6gvd3i6T3OOfOSPqcmT0m6SZJH688QiAAfXe26KIzSN+PsYxkXB96SvrqC5vHv/p8\n9cDBl44zzMkd6TpMaLpQZZfBS9OGGDKE/HpMKxswDbg7CPNxeKY7heR1G/lj/XFuZ4wy91XWRvyf\nU/SHh5PThjb0Ur30wv3X7ZoChKhOt5GfMLMflXRM0lucc1+SdLWkP5m4zhPxsYuY2R2S7pCk6667\nrsYwgOqaOCH35R35NleG+PIYy9i9I3ptJ8MLqXrgEEAdDebkJnXdWrPJugChreIYuiG+HmUDpunr\nJ1ukBhZmTGA+9liRd/43tKEzOpP6ucmaFmn31USoMKulaFNdU4DQVC3Y+SuSvkHSjZKekvQLZe/A\nOXfAObfHObfniiuuqDgMoLrkhDw5+UxOyMvWMRhDZ4tQH2OTgYPnHWeYk5vWdZHBJusC0N3BL7we\nWyVhTvKzlIQ5vtZ4KY/5eADyOobk1bRIQoUk4EhChclaGUXMKgbaZNcUICSVwgvn3DPOueedcy9I\n+lVFy94k6UlJ105c9Zr4GOCdpk7IA3hHvrZQH2OTgYPPHWeYk1vQdZHBJgtV0t3BL7weWw08zGE+\nHoa8jiF5NS3abp+aHG+yawoQkkrhhZldNXHxhyQlVZbvl3SrmV1mZi+TtCTpE/WGCLSjqRNyz9+R\nb0Soj7HJwMHnjjPMyS3ourVmk90wBtzdIUi8HlsNPMxhPh6GrPDgMl2Wuy2jzfapk8VAm+p0AoRm\nZs0LM3u3pFdLeomZPSHpbZJebWY3SnKSPi/pjZLknHvYzO6T9Iik85LeRBVl+Gr7fHpQUfaEPKvT\nhw/vyDcl1MfYdCFTHzrOMCd3pI8ig00Vqhx2d4fw8HpstbiYHlQEGOYwHw9XVieRb9e3595uQQup\nQUWV9qlSdjHQJjudACEx59zsa7Vsz5497tixY30Po1MhdW4YqukilFJ0Ql7l3fQxvJ5jeIxtM7MH\nnXN7+h7HLGOckwdnSN0thiDE16OtMU8XMJWiMKfqSqOKmI8xS5XCm9OFNKUoVFjVauZtqxb4pNsI\nhqTonEx40YO6J82cRDaH5xJd4o9lIEAhBg91tR0wePCcMh+jLWVChbSwQ4q2p3y7vp0wAqNRdE6u\n0yoVFeUVipx14hxiy0qf+bANAADgqSG2OS2i7VbBTW2RAjxUpBVrIq3ApySd0RlanwIpCC9ytPWu\nfJ1CkXWCDwDAwHjwDvagtX0S76uBF9UEfJFXyDPpUtJGeMGWE4SK8CJDmysc6hSKDLVlJZBgqw7Q\nkLGuCuhSFyfxPgZQAyqqifEI8YQ8q8Bnoo3Wp9NbVU7rNKs8EIxKrVLHIG+FQ1112jeG2rISkDZD\nwSRsS0LB46f6HRcQpLxVAWhG221OkwAqCQqSAGp9vZn7r6rrVsFATckJeXKyn5yQb2ij55HlS2uJ\nOqmN1qdpW1WSVR6A7wgvMrS5wmH3jqg4ZxI4bJ8vXqyzTvAB9K3NUBAYHZb2t6/tk3hfA6iVlag4\nZxLSLC523g0EKCPUE/IlLWlVq7pMl130ubZan2at5mhjlQfQNLaNZKiztaOIqoUik9sMfdk9WwuG\niW1PQINCWNrv45aIMpKxtvUYfA6gKKqJgIR0Qp62veV23d7ZtpesrSptrPIAmkZ4kWHvzvR2pj6s\ncBh6hww6qgxX26EgMCpra+ntLH1Z2j+UmhxtnsSHEEABAQjlhHxWvYkuak4sa/mi9qxtrfIAmkZ4\nkWEsKxz6kreygo4qw+VzKIiRCH0lwKS2VwXUNdZOHWX4HkABgfD9hHxyVcW0NruKpEm+TmjFTQGJ\n8CJXVyscqmyRCHlbxayVFWwtGC5CwYEKJRAYykqAST4v7a+yJSKU76Wm+B5AAYHw+YR8erVFmqa2\nt4TYcQUog/CiZ1W2SIS+rWLWygq2Fgzb0Lc9jU5IgQArAbpVdktESN9LTfI5gAIC0tW2i7LSiolO\na2J7S9EWqLRKRcjoNtKzKt0XQu/YMGtlBR1VgID42i0hjc/FEYeobKeOkL6XAKCgWasqmtreUrTj\nSqidWQCJlRe9q7JFIvRtFbNWVrC1AAhISIEAxRG7VXZLREjfSwBQUFYx0eRzTW3tKNpxJaTOLMA0\nwoueVdkiEfq2iiJFG9laAAQipECA4ojdK7MlIqTvJQAoKKuY6KpWG92mUbTjSiidWYA0bBvpWZUt\nEl1sqzh+SnrnZ6U7H47+PX6qufvevUO6eddm2LJ9PrpMWAEEqOzWgD6trEj79m2eDF9yyea2hPX1\nfseGsL6XAKCgJS1pVasXwoEFLRQOLja0oYM6qAM6oIM6qA1tZF53Wcuam3pfOm1LStHrAT5i5UXP\nqmyRaHtbRRcFQUNcWRFyhxegNaF1S0jG5UthyLF118gT2vcSgCD40IGjSjHRsoU1i3Zc8bkzCzAL\n4YUHqpzIt3nyP6sbyBiF3uEFaFVo3RJ86Toy1u4aeUL7XgLgtZA7a+QV1swae9GQxNfOLMAsbBvB\nRUIvCNqG0Du8AJjgS2FIumsAQKtC7qxBYU3gYqy8wEWyCoJKUf2LMW6XINABBqTpwpBVt374EqIA\nwECFHABUKazpwxYZoE2svMBF0gqCJpLtEk0W8AxBVieXUDq8AJjQZGHIZOtHEjgkWz+KFADNCkvo\nrgEAjcg60Q+hs0bZwprJFpkk8Ei2yOQV+QRCw8oLXGS6IOi0Mda/KNLeFRejyCm81GRhyKytH3fd\nFX0u735p3QoArcpqU5rXWcOX1QtlC2tWqZEBhIbwAqmSgqB3Ppz++bFtl2i7w8sQUeQUXmuqMGTe\nFo9ZBTjprgEArSobAPhW4LNMYc2Qt8gARQ0ivODd3fZk1b8Y43aJENu79omuNZhpCG1Cs+pnJGZ1\nMaG7BgC0qkwA4PvqhbxVIVVqZAChCb7mRfLubnKCPdaaDG1Jq3/BdgkUQZFT5KpTK8InafUzplGA\nEwCC4PPqhVk1LcrWyABCFHx4QQvLdu3eId28a3Olxfb56DLvnGMWipwi11DahK6sSPv25RfZpAAn\nAATB5wKfs9q+LmlJq1q9MNYFLWhVq16sGAGaEvy2Ed7dbR/bJVAFRU6Ra0htQpOtH8lqEgpwAkCQ\nqhT47EqRVSFltsgAIQo+vBhaTQbqd2AoKHKKXFm1IkJepUABTmC2IdS6gXea6hBStsBnl6hpAQwg\nvGjz3d2ug4Sq3RkIPOArVu0g01DbhPpWgJMTRb+N7fWZXp00qyMPUEBWh5Cn9bQe1+OlQ4giqxf6\naKfq86oQoCvBhxdtvbvbZpvHrLChSncG2lECCBKrFNrHiWJz2ggZxvj65NW6GepjRuuyakE8qkcv\nXJ7V8rRMGNFXO1WfV4UAXQk+vJDaeXe3rTaPeWFDlfodtKMMFytmMHq+rVIYGt9PFENZddBWyOD7\n69OGIdW6gTeKdgI5r/N6QA9I2hoylA0j+mynSk0LjF3w3Uba0lYh0LywoUp3BgqWhokWvwBa5/OJ\nYkitctvqjOPz69OWrJo2Ide6Qe/K1Hxwclvai0qzu3hM87mdKjB0hBcZ8oKE46ekd35WuvPh6N8y\nJ5x5YcPenVG9jkmz6nfQjjJMtPgF0DqfTxSzAoG77pL27/crxGgrZPD59WnL2lpU22bSEGrdoFfL\nWtZcicXk08FE2TDC53aqwNARXmTIChKWLq/3jnle2LB7h3Tzrs3rbJ+PLudtJagSeKB/rJgB0Dqf\nTxTzTvx9W4XRVsjg8+vTlpUVad++zeducTG6PNRtMujEkpa0qtUL4cGCFvTN+ubcQGMymLhMl6Ve\nJ+t4WlhC4UygG4OoedGGrEKgdWtMzOqOUrZ+B+0owzS0Fr8APORzUdSsVrkJn2o/tNUZx+fXp03U\nukEL0mpBvFQv1QN6QE7uouvXWSVB4UygP4QXOdKChPc9mX7dou+YtxE20I4yPG22+AWAC3w9UUwL\nBKb5UvuhzZDB19cHGIAkTJjVXvSMzqTePut4ct+EFUD3ZoYXZnaXpB+UdMI598r42KKk90q6XtLn\nJb3OOfel+HP7Jb1B0vOS3uyc+3ArI+9JE++YEzaAFTOoijkZgzAdCKTxqfYDIQNSMB/7r8gqiQUt\npNa3oIYF4J8iNS/ulvSaqWNvlXTYObck6XB8WWZ2g6RbJb0ivs3/ZWaXNjZaD1BjAk3ZvUP6qZdL\nb3tF9C/BBQq6W8zJGIKVFelf/2vpx35sfLUfMBR3i/nYe0ta0m26TXfoDt2m2y5aMUENCyAcM8ML\n59wfSpp+W+QWSffEH98jaW3i+Hucc2ecc5+T9JikmxoaqxeqFNUEgKYwJ2NwKOKIQDEfD0Nawc9V\nrbItBPBQ1ZoXVzrnnoo/flrSlfHHV0v6k4nrPREfu4iZ3SHpDkm67rrrKg6jH2z7AOCZUc/JGAC2\nZWA4mI8DRA0LIAy1C3Y655yZXVzGd/btDkg6IEl79uwpffsxO36KWgnYxPcDJjEnAyOxvl6uiGjZ\n66O2oc7HG9potNNG0/cHYLiqhhfPmNlVzrmnzOwqSSfi409KunbietfEx9CQ46e2dql47lx0WeKE\ndYz4fkCMORkYk/X1rd1aTp6MLkvpgUTZ66OOQc/HG9rY0r3jtE7riI5IUqXAoen7AzBsRQp2prlf\n0u3xx7dLev/E8VvN7DIze5mkJUmfqDdETDp8Ymt7TSm6fPhE+vUxbHw/IMacDIzJoUMXt5k9ezY6\n3sT1Uceg5+OjOrql7agkndd5HdVRL+4PwLAVaZX6bkmvlvQSM3tC0tskvUPSfWb2BklfkPQ6SXLO\nPWxm90l6RNJ5SW9yzj3f0thHKa1Na95xDBvfD+PDnAwgs71sU8dRyBjn47SWonnHu74/AMM2M7xw\nzr0+41N7M67/dklvrzMoZNs+n35imnQ/wbjw/TA+zMkAtLiYHjwkHVvqXh+FjHE+XtBCarCQdOro\n+/4ADFvtgp3I1kYhxb07t9Y4kKR5i45jfPh+wChQaBDYam1taw0LSdq2LTrexPWBDMta3lKjQpLm\nNKdlLXtxf76jOClQT7Dhhe8dFtoqpJjc1ufHju7w/YDBo9DgsBBENSN5zoo+l2WvD2RITrTLnoBn\nnbRXvb8QUZwUqC/I8CKEDgt5hRTrjnH3Dn8eJ/rH9wMGLa/QICdeYSGIatbKSrnnrez1gQyToUMR\ns07ay95fqPKKk47h8QNNCDK8aDMYaAqFFLfyfaUMAE9RaHA4CKLysSoFgSm6BYKT9gjFSYH6qrZK\n7VUIwUBWwcQxFlJMVsokr0+yUub4qX7HBSAAeQUIERaCqGzJqpTkuUhWpayv9zsuIEOymiI58U5W\nU2xo46LrctIeySpCSnFSoLggw4sQgoG9O6PCiZPGWkgxb6UMAORaW4sKC06i0GCYCKKy5a1KATyU\nt5piGiftkWUta25q0fuQi5MCbQhy20gIHRYopLgphJUy2MQWH3iFQoPN6nNrAh0vsrEqBZ4ouhWk\nzGqKsXUUyTKm4qRAW4IML0IJBiikGNk+nx5U+LRSBpEQiuFihCg02Iy+C2YSRGVbXEwPKliVgg6V\n6YaxoIXUoCJtNQUn7ZvGUpwUaEuQ4YVEMBCSEFbKIBJCMVwAFflQMJMgKh2rUuCBMoU1y66m4KQd\nQBOCDS8QjlBWyoAtPsCgsTXBX6xKgQfKbAVhNQWAPhBejFTXdQ1YKRMGtvgAA8bWhPbVqSnCqhT0\nrMhWkKI1MQCgDUF2G0E9tC5FFrrkAANG55Z20e4UgZvVDaNMe1QAaAMrL0aIugbIMtQtPnRQQWP6\n7NZRF1sT2uVDTRGghllbQcrUxCiCVRwAyiK8GCHqGiDP0Lb40EEFjem7W0cT2JrQHmqKYADyCmuW\nqYkxS5nOJgCQYNvICGXVL6CuAYYob6URUEreO+tAVu0QaopgINLaoOYdz5O3igMAshBejBB1DTAm\nrDRCY3hnHXmoKYKBm1UTo4wmV3EAGA+2jYzQUOsaAGnooILG0K0DeagpgoFrsj1qkc4mADCN8GKk\nhlbXAMNVt9jm3p1ba15IrDRCRWtrW2teSOXeWQ+52CeKoaYIPNBmIcy8mhhlLGt5S80LqfoqDgDj\nQXgBwFtNFNtkpREaU+ed9SEU+wTgvVAKYTa5igPAeBBeAPBWU219q6w0or0qUlV9Z30MbTRZWQL0\nLqsQ5gN6QJJ/AYZP4wHgP8ILAN7qq9gm7VXRuKEX+2RlCeCFrIKXTs7LFRgAUAbdRgB4q6+2vrRX\nReOG3kaTNrKAF/IKXtKKFEDoCC8AeKuvtr60V0Xjht5Gc+grS4BApLUznUQrUgAhY9sIAG/1VWyT\n9qpo3NDbaNJGFvBCsiXkAT0gJ3fR52lFCiBkow8vKMoH+K2Ptr60V0UrhtxGs24bWXSDoqqjkAQY\n061IL9ElOqdzOqADdPcAEKRRhxcU5QOQhvaqQElDX1kyBBRVHZXpVqSX6TKd1Vmd0RlJ/rZQBYA8\no4SfkwkAAA+NSURBVA4vmmrDCGB4+ljxAQRtyCtLhmAM7XqxxWQr0oM6eCG4SCQFPAkvAIRi1AU7\nKcoHAABGgaKqo5ZVqJMCngBCMurwoq82jAAAAJ0aerte5Moq1EkBTwAhGXV40VcbRgAAgE4NvV0v\ncqW1UJ3TnJa13NOIAKC8Ude8oCgfAAAYBYqqjtp0AU+6jQAI0ajDC4mifAAAYCQoqjpqkwU8ASBE\now8vAN8dP8XqICDT+jrvJANARza0weoNAL0ZbHjBCR+G4Pgp6QNf3Gzp+9y56LLE9zMGrGggsb4u\n3XvvZvvHkyejyxIBBgA0bEMbOqIjOq/zkqJOJUd0RNLmthTCDQBtqlWw08w+b2bHzewhMzsWH1s0\ns4+Y2Ub874ubGWpxyQlf0vI0OeE7fqrrkQD1HD6xGVwkzrnoODDN1zm5lCSQSNo3JoHE+vrF1z10\naDO4SJw9Gx0HgB4NYj6eclRHLwQXifM6r6M6Kmkz3EjarybhxoY2Oh8rgGFqotvIdzvnbnTO7Ykv\nv1XSYefckqTD8eVOccKHoUgCuKLHAXk4J5dSJpBIAo6ixwGgW2HPx1OSUCLr+KxwAwDqaqNV6i2S\n7ok/vkdS5z24OOHDUGyfL3ccSNH7nFxKmUBicTH9ulnHAaBfYc3HUxa0kHt8VrgBAHXVDS+cpI+a\n2YNmdkd87Ern3FPxx09LujLthmZ2h5kdM7Njzz77bM1hbMUJH4Zi705p3rYem7foOJDCyzm5lDKB\nxNqatG3b1mPbtkXHAaBf4c/HU5a1rLmpcnlzmtOyliXNDjcAoK664cV3OudulPRaSW8ys++a/KRz\nzimavC/inDvgnNvjnNtzxRVX1BzGVpzwYSh275Bu3rUZvG2fjy5TrBMZvJyTSykTSKysSPv2bQYb\ni4vRZYp1Auhf+PPxlCUtaVWrF8KIBS1oVasXCnLOCjcAoK5a3Uacc0/G/54ws9+VdJOkZ8zsKufc\nU2Z2laTOK00kJ3Z0G8EQ7N7B9y6K8XVOLiUJHoq2P11ZIawA4J1BzMcpluL/sj4niW4jAFpTObww\ns8slXeKc++v4478v6X+XdL+k2yW9I/73/U0MtKw+T/ho0wqga77PyaXkBRJF26gCQE8GNR+XlBdu\nlEHLVQBp6qy8uFLS75pZcj8HnXO/b2ZHJd1nZm+Q9AVJr6s/zHAkbVqTbidJm1aJAANAq4Y/Jydt\nVJNuJEkbVYkAA4BPhj8ftyhpuZp0LklarkoiwABGrnJ44Zz7c0nfknL8ryTtrTOokOW1aSW8ANCW\nUczJeW1UCS8AeGIU83GL8lquEl4A49ZGq9RRo00rALSkTBtVAECQaLkKIAvhRcNo0woALSnTRhUA\nECRargLIQnjRMNq0AkBLyrRRBQAEiZarALLUapWKi4XUppWuKACCUraN6jQ6lQBAYX11/KDlKoAs\nhBct6LNNa1F0RQEQpLw2qnnoVAIAhfXd8aOplqsAhoVtIyOV1xUFAAYnr1MJAGCLvI4fANAXwouR\noisKgFGhUwkAFEbHDwA+IrwYKbqiABgVOpUAQGF0/ADgI8KLkaIrCoBRoVMJABRGxw8APqJg50iF\n1BUFAGqr26kEAEaEjh8AfDTa8II2oWF0RQGAxlTtVOIz2r8CSNFEm1M6fgDwzSjDC9qEAgCCR/tX\nACn6bnMKAG0ZZc0L2oQCAIJH+1cAKWhzCmCoRhle0CYUABA82r8CSEGbUwBDNcrwgjahAIDg0f4V\nQAranAIYqlGGF7QJBQAEj/avAFLQ5hTAUI2yYCdtQgEAwaP9K4AUtDkFMFSjDC8k2oQCAAZgiO1f\nAdRGm1MAQzTKbSMAAAAAACAchBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcA\nAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAA\nAMBrhBcAAAAAAMBrhBcAAAAAAMBrhBcAAAAAAMBrc30PwGfHT0mHT0jPnZO2z0t7d0q7d/Q9KgBA\nUNbXpUOHpJMnpcVFaW1NWlnpe1QABmhDGzqqozqt01rQgpa1rCUt9T0sAGhEaysvzOw1ZvYZM3vM\nzN7a1tdpy/FT0ge+GAUXUvTvB74YHQeAkIQ+HwdtfV26994ouJCif++9NzoOYHTanI83tKEjOqLT\nOi1JOq3TOqIj2tBGk18GAHrTSnhhZpdK+mVJr5V0g6TXm9kNbXytthw+IZ1zW4+dc9FxAAjFEObj\noB06JJ09u/XY2bPRcQCj0vZ8fFRHdV7ntxw7r/M6qqNNfQkA6FVbKy9ukvSYc+7PnXNnJb1H0i0t\nfa1WJCsuih4HAE8FPx8HLVlxUfQ4gCFrdT5OVlwUPQ4AoWkrvLha0uMTl5+Ij11gZneY2TEzO/bs\ns8+2NIzqts+XOw4Anpo5H0v+z8nBWlwsdxzAkLU6Hy9oodRxAAhNb91GnHMHnHN7nHN7rrjiir6G\nkWnvTmneth6bt+g4AAyN73NysNbWpG3bth7bti06DgApqs7Hy1rW3FQt/jnNaVnLTQ8RAHrRVreR\nJyVdO3H5mvhYMJKuInQbARC44OfjoCVdReg2AqDl+TjpKkK3EQBD1VZ4cVTSkpm9TNGkfKuk21r6\nWq3ZvYOwAkDwBjEfB21lhbACgNTBfLwU/wcAQ9RKeOGcO29mPy7pw5IulXSXc+7hNr4WACAb8zEA\n+IH5GADqaWvlhZxzvyfp99q6fwBAMczHAOAH5mMAqK63gp0AAAAAAABFEF4AAAAAAACvEV4AAAAA\nAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvEV4AAAAAAACvmXOu7zHIzJ6V\n9IUSN3mJpL9saThNYpzNCmGcIYxRYpxNKzrOr3fOXdH2YOqqMCdL4bxWdY3lcUrjeaxjeZwSj3US\n83F3GM9svo2J8eRjPPmqjKfQnOxFeFGWmR1zzu3pexyzMM5mhTDOEMYoMc6mhTLONo3lORjL45TG\n81jH8jglHutY+PbYGc9svo2J8eRjPPnaHA/bRgAAAAAAgNcILwAAAAAAgNdCDS8O9D2Aghhns0IY\nZwhjlBhn00IZZ5vG8hyM5XFK43msY3mcEo91LHx77IxnNt/GxHjyMZ58rY0nyJoXAAAAAABgPEJd\neQEAAAAAAEaC8AIAAAAAAHgtqPDCzF5jZp8xs8fM7K19j2eSmd1lZifM7FMTxxbN7CNmthH/++Ke\nx3itmX3MzB4xs4fN7Cc9HefXmNknzOxP43He6eM4E2Z2qZn9FzP7YHzZu3Ga2efN7LiZPWRmxzwe\n5w4z+20z+7SZPWpmf8+3cZrZN8bPY/L/l83sp3wbZ1d8npfrCmFeb0IovxuaENrvl7pC+P3UhFB+\nx3Wh7znZt3nTt/nN1znIp7nCx59nn/4+9fHvUDP7n+Pv50+Z2bvj7/NWxhNMeGFml0r6ZUmvlXSD\npNeb2Q39jmqLuyW9ZurYWyUdds4tSTocX+7TeUlvcc7dIOnbJL0pfg59G+cZSd/jnPsWSTdKeo2Z\nfZv8G2fiJyU9OnHZ13F+t3Puxom+yz6O812Sft85902SvkXR8+rVOJ1zn4mfxxsl/beS/j9JvyvP\nxtmFAObluu6W//N6E0L53dCE0H6/1BXK76cmhPA7rlWezMl3y69507f5zdc5yLe5wrefZ2/+PvXt\n71Azu1rSmyXtcc69UtKlkm5tbTzOuSD+l/T3JH144vJ+Sfv7HtfUGK+X9KmJy5+RdFX88VWSPtP3\nGKfG+35J3+fzOCV9naRPSlrxcZySrol/IL9H0gd9fd0lfV7SS6aOeTVOSdslfU5xIWFfxzk1tr8v\n6T/7Ps4WH7/383IDjzGoeb2hx+z974aGHqfXv18aeHxB/H5q6LF6/zuuo+fBiznZ53nTp/nNlznI\nt7nCt59nn/8+9eHvUElXS3pc0qKkOUkfjMfVyniCWXmhzScm8UR8zGdXOueeij9+WtKVfQ5mkpld\nL+lVktbl4Tjj5WsPSToh6SPOOS/HKemdkn5a0gsTx3wcp5P0UTN70MzuiI/5Ns6XSXpW0n+Mly7+\nBzO7XP6Nc9Ktkt4df+zzONsS4rxc16BfZ99/NzQhoN8vdYXy+6kJIfyO64Kvc7IXr4Uv85uHc5Bv\nc4VvP88+/33a+9+hzrknJf28pL+Q9JSk55xz/29b4wkpvAiai2InL/rSmtmCpN+R9FPOuS9Pfs6X\ncTrnnnfRcqhrJN1kZq+c+nzv4zSzH5R0wjn3YNZ1fBhn7Dvj5/O1ipZMftfkJz0Z55ykb5X0K865\nV0n6iqaWmHkyTkmSmW2T9A8k/db053waJ9oztNc5hN8NTQjh90tdgf1+akIIv+Og/l4Ln+Y3n+Yg\nT+cK336evfz71Je/Q+NaFrcoCnl2SbrczPa1NZ6QwosnJV07cfma+JjPnjGzqyQp/vdEz+ORmc0r\nmrx/0zn3vviwd+NMOOdOSfqYov2Tvo3zOyT9AzP7vKT3SPoeM7tX/o0zSUXlnDuhaF/cTfJvnE9I\neiJ+B0KSflvRLwvfxpl4raRPOueeiS/7Os42hTgv1zXI1zm03w1N8Pz3S13B/H5qQiC/47rg65zc\n62vh6/zmyRzk3Vzh4c+zr3+f+vJ36PdK+pxz7lnn3DlJ75P07W2NJ6Tw4qikJTN7WZw03Srp/p7H\nNMv9km6PP75d0T673piZSfo1SY86535x4lO+jfMKM9sRf/y1ivYmflqejdM5t985d41z7npF34//\nyTm3T56N08wuN7MXJR8r2of2KXk2Tufc05IeN7NvjA/tlfSIPBvnhNdrc6me5O842xTivFzX4F7n\nUH43NCGU3y91hfL7qQmh/I7riK9zcm+vhW/zm29zkG9zhY8/zx7/ferL36F/IenbzOzr4p+3vYoK\nmrYznqLFMXz4X9IPSPqspD+T9C/6Hs/U2N6taJ/POUUJ3Rsk/W1FBXA2JH1U0mLPY/xORUt2/quk\nh+L/f8DDcf5dSf8lHuenJP3L+LhX45wa86u1WeTIq3FK+gZJfxr//3Dys+PbOOMx3SjpWPzaH5L0\nYk/Hebmkv5K0feKYd+Ps6Lnwdl5u4LF5P6839DiD+N3Q0GMN7vdLA4/Z299PDT2+YH7HdfR89Don\n+zZv+ja/+TwH+TBX+PrzLM/+PpVnf4dKulNRCPcpSb8h6bK2xmPxFwQAAAAAAPBSSNtGAAAAAADA\nCBFeAAAAAAAArxFeAAAAAAAArxFeAAAAAAAArxFeAAAAAAAArxFeAAAAAAAArxFeAAAAAAAAr/3/\nt9Jx+gb3vXkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "multReg = pd.read_csv(\"multiple.csv\")\n", "\n", "print(multReg.head())\n", "\n", "\n", "#Graphing our data\n", "\n", "fig, ax = plt.subplots(1,3)\n", "fig.set_size_inches(15,5) #Sneaky way of increasing the size of our plot for readablity\n", "plt.tight_layout()\n", "\n", "ax[0].scatter(multReg['x data'], multReg['measurement'], color = \"#80d4ff\")\n", "ax[1].scatter(multReg['y data'], multReg['measurement'], color = \"#ff6666\")\n", "ax[2].scatter(multReg['z data'], multReg['measurement'], color = \"#99ff99\")\n", "\n", "ax[0].set_title(\"x data\")\n", "ax[1].set_title(\"y data\")\n", "ax[2].set_title(\"z data\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can make some simple observations - it looks obvious that our z-data has some correlation with our measurement, but for our y and x data it's very unclear. We need a statistical model!" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: measurement R-squared: 0.997\n", "Model: OLS Adj. R-squared: 0.997\n", "Method: Least Squares F-statistic: 1.095e+04\n", "Date: Tue, 27 Jun 2017 Prob (F-statistic): 1.36e-122\n", "Time: 11:38:53 Log-Likelihood: -376.22\n", "No. Observations: 100 AIC: 758.4\n", "Df Residuals: 97 BIC: 766.3\n", "Df Model: 3 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "------------------------------------------------------------------------------\n", "x data 0.6976 0.045 15.445 0.000 0.608 0.787\n", "y data 1.1880 0.063 18.779 0.000 1.062 1.314\n", "z data 2.9738 0.039 76.740 0.000 2.897 3.051\n", "==============================================================================\n", "Omnibus: 2.655 Durbin-Watson: 1.963\n", "Prob(Omnibus): 0.265 Jarque-Bera (JB): 2.653\n", "Skew: 0.380 Prob(JB): 0.265\n", "Kurtosis: 2.754 Cond. No. 4.10\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "y = multReg[\"measurement\"] #Dependent variable\n", "x = multReg[[\"x data\", \"y data\", \"z data\"]] #Independent variables\n", "#x = sm.add_constant(x) #Typically we expect a non-0 y-intercept, this line deals with that.\n", "\n", "model = sm.OLS(y,x).fit()\n", "print(model.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's a lot of outputs! The most important ones to look at are the Prob(F-statistic), the R-Squared, the coef column, and the P>|t| column.\n", "\n", "The Prob(F-statistic) gives us the p-value corresponding to the null hypotheis of all slopes/coefficients being equal to 0. The R-Squared gives us an idea of how helpful out model is as before.\n", "\n", "The coeff column gives us an indication of what coefficient is associated with each variable, and the P>|t| gives us a p-value for the null hypothesis of the coefficient being equal to 0. To test this out more visually, we can graph the points of the measured data versus the variables with their associated coefficients:" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nCXL/D3scuxKjnnvCAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = 0.7 * multReg['x data'] + 1.2 * multReg['y data'] + 3 * multReg['z data']\n", "y = multReg['measurement']\n", "\n", "#We expect x to equal y, plus or minus a CONSTANT amount\n", "\n", "dummy = np.linspace(0,350, 100)\n", "\n", "fig, ax = plt.subplots()\n", "\n", "ax.scatter(x,y, s=2)\n", "ax.plot(dummy, dummy, color=\"black\") #The line x = y\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That looks pretty good! If the variable x and y are equal it means we've found the right coefficients for the data, and our model is complete." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mini Project" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we have some data and we want to see if it's linearly correlated. Try performing a linear regression test and interpret the results:" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " x y\n", "0 421.210608 5560.364046\n", "1 421.504662 5228.252219\n", "2 394.042457 5255.783030\n", "3 406.042636 5969.146412\n", "4 346.577200 9788.628920\n" ] } ], "source": [ "projectData = pd.read_csv(\"project.csv\")\n", "\n", "print(projectData.head())" ] }, { "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }