Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
CompMech02-Analyze-data/notebooks/03_Linear_Regression_with_Real_Data.ipynb
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
974 lines (974 sloc)
182 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"###### Content modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Linear regression with real data" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Earth temperature over time\n", | |
"\n", | |
"In this lesson, we will analyze real data of Earth temperature over time.\n", | |
"\n", | |
"Is global temperature rising? How much? This is a question of burning importance in today's world!\n", | |
"\n", | |
"Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", | |
"\n", | |
"The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", | |
"\n", | |
"The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/jpeg": "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\n", | |
"text/html": [ | |
"\n", | |
" <iframe\n", | |
" width=\"400\"\n", | |
" height=\"300\"\n", | |
" src=\"https://www.youtube.com/embed/gGOzHVUQCw0\"\n", | |
" frameborder=\"0\"\n", | |
" allowfullscreen\n", | |
" ></iframe>\n", | |
" " | |
], | |
"text/plain": [ | |
"<IPython.lib.display.YouTubeVideo at 0x7f2e4a375290>" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from IPython.display import YouTubeVideo\n", | |
"YouTubeVideo('gGOzHVUQCw0')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"How would we go about understanding the _trends_ from the data on global temperature?\n", | |
"\n", | |
"The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", | |
"\n", | |
"We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", | |
"\n", | |
"Let's get started!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 1: Read a data file\n", | |
"\n", | |
"We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", | |
"\n", | |
"\n", | |
"We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", | |
"\n", | |
"\n", | |
"Let's start by importing NumPy and pandas" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import pandas as pd\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", | |
"\n", | |
"temp_data = pd.read_csv(fname,skiprows=4)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Exercise\n", | |
"\n", | |
"Inspect the data by printing `temp_data`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 2: Plot the data\n", | |
"\n", | |
"Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"#Import rcParams to set font styles\n", | |
"from matplotlib import rcParams\n", | |
"\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#Set font style and size \n", | |
"rcParams['font.family'] = 'sans'\n", | |
"rcParams['font.size'] = 16\n", | |
"rcParams['lines.linewidth'] = 3" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 720x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#You can set the size of the figure by doing:\n", | |
"plt.figure(figsize=(10,5))\n", | |
"\n", | |
"#Plotting\n", | |
"plt.plot(temp_data['Year'], temp_data['Value'], color='#2929a3', linestyle='-', linewidth=1) \n", | |
"plt.title('Land global temperature anomalies. \\n')\n", | |
"plt.xlabel('Year')\n", | |
"plt.ylabel('Land temperature anomaly [°C]')\n", | |
"plt.grid();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 3: Least-squares linear regression \n", | |
"\n", | |
"In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", | |
"\n", | |
"Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", | |
"\n", | |
"$$ \n", | |
" f(x) = f(x; a_0, a_1, ... , a_m) \n", | |
"$$\n", | |
"\n", | |
"The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ _a priori_, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", | |
"\n", | |
"1. Choosing the form of $f(x)$.\n", | |
"2. Computing the parameters that will give us the \"best fit\" to the data. \n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### What is the \"best\" fit?\n", | |
"\n", | |
"When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit** [2], which minimizes the function\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation} \n", | |
" S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", | |
"\\end{equation}~~~~~~(1) \n", | |
"$$\n", | |
"\n", | |
"with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation}\n", | |
" \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", | |
"\\end{equation}~~~~~~(2)\n", | |
"$$\n", | |
"\n", | |
"Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", | |
"\n", | |
"Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", | |
"\n", | |
"$$\n", | |
"\\begin{equation*}\n", | |
" f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", | |
"\\end{equation*}~~~~~~(3)\n", | |
"$$\n", | |
"\n", | |
"which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Linear regression \n", | |
"\n", | |
"When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation}\n", | |
" f(x) = a_0 + a_1x\n", | |
"\\end{equation}~~~~~~(4)\n", | |
"$$\n", | |
"\n", | |
"The function that we'll minimize is:\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation}\n", | |
" S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", | |
"\\end{equation}~~~~~~(5) \n", | |
"$$\n", | |
"\n", | |
"Equations (2) become:\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation}\n", | |
" \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", | |
"\\end{equation}~~~~~~(6) \n", | |
"$$\n", | |
"\n", | |
"$$\n", | |
"\\begin{equation}\n", | |
" \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", | |
"\\end{equation}~~~~~~(7) \n", | |
"$$\n", | |
"\n", | |
"Let's divide both equations by $2(n+1)$ and rearrange terms.\n", | |
"\n", | |
"Rearranging (6) and (7):\n", | |
"\n", | |
"$$\n", | |
"\\begin{align}\n", | |
" 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", | |
" \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", | |
"\\end{align}~~~~~~(8)\n", | |
"$$\n", | |
"\n", | |
"$$\n", | |
"\\begin{align}\n", | |
" a_0 = \\bar{y} - a_1\\bar{x}\n", | |
"\\end{align}~~~~~~(9)\n", | |
"$$\n", | |
"\n", | |
"where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", | |
"\n", | |
"Rearranging (7):\n", | |
"\n", | |
"$$\n", | |
"\\begin{align}\n", | |
" 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", | |
" a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", | |
"\\end{align}~~~~~~(10)\n", | |
"$$\n", | |
"\n", | |
"Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", | |
"\n", | |
"$$\n", | |
"\\begin{align*}\n", | |
" (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", | |
"\\end{align*}~~~~~~(11)\n", | |
"$$\n", | |
"\n", | |
"Replacing the definitions of the mean values into the equation, \n", | |
"\n", | |
"$$\n", | |
"\\begin{align*}\n", | |
" \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", | |
" \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", | |
"\\end{align*}~~~~~~(12)\n", | |
"$$\n", | |
"\n", | |
"Leaving everything in terms of $\\bar{x}$, \n", | |
"\n", | |
"$$\n", | |
"\\begin{align*}\n", | |
" \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", | |
"\\end{align*}~~~~~~(13)\n", | |
"$$\n", | |
"\n", | |
"Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", | |
"\n", | |
"$$\n", | |
"\\begin{align*}\n", | |
" a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", | |
" a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", | |
" a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", | |
"\\end{align*}~~~~~~(14)\n", | |
"$$\n", | |
"\n", | |
"Finally, we get that:\n", | |
"\n", | |
"$$\n", | |
"\\begin{align}\n", | |
" a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", | |
"\\end{align}~~~~~~(15)\n", | |
"$$\n", | |
"\n", | |
"Then our coefficients are:\n", | |
"\n", | |
"$$\n", | |
"\\begin{align}\n", | |
" a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", | |
"\\end{align}~~~~~~(16)\n", | |
"$$" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Let's fit!\n", | |
"\n", | |
"Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", | |
"\n", | |
"$y = a_1x+a_0$\n", | |
"\n", | |
"that fits our data.\n", | |
"\n", | |
"In our case, the `x`-data corresponds to `Year`, and the `y`-data is `Value`. To calculate our coefficients with the formula above, we need the mean values of our data. Since we'll need to compute the mean for both `x` and `y`. \n", | |
"\n", | |
"It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", | |
"\n", | |
"Remember the _key concept_ from [02_Working_with_Python](../../CompMech01-Getting-started/notebooks/02_Working_with_Python.ipynb): A function is a compact collection of code that executes some action on its arguments. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Exercise \n", | |
"\n", | |
"Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, `np.mean`.\n", | |
"\n", | |
"Assign the means to `mean_x` and `mean_y`." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true, | |
"jupyter": { | |
"outputs_hidden": true | |
} | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", | |
"\n", | |
"Our coefficients are:\n", | |
"\n", | |
"$$\n", | |
" a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", | |
"$$ \n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"\n", | |
"xi = temp_data['Year'].values\n", | |
"yi = temp_data['Value'].values\n", | |
"\n", | |
"x_mean = np.mean(xi)\n", | |
"y_mean = np.mean(yi)\n", | |
"\n", | |
"a_1 = np.sum(yi*(xi - x_mean)) / np.sum(xi*(xi - x_mean)) " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.01037028394347266\n" | |
] | |
} | |
], | |
"source": [ | |
"print(a_1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"a_0 = y_mean - a_1*x_mean" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"-20.148685384658464\n" | |
] | |
} | |
], | |
"source": [ | |
"print(a_0)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##### Exercise\n", | |
"\n", | |
"Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", | |
"\n", | |
"```python\n", | |
"def coefficients(x, y, x_mean, y_mean):\n", | |
" \"\"\"\n", | |
" Write docstrings here\n", | |
" \"\"\"\n", | |
"\n", | |
" a_1 = \n", | |
" a_0 = \n", | |
" \n", | |
" return a_1, a_0\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def coefficients(x, y, x_mean, y_mean):\n", | |
" \"\"\"\n", | |
" Write docstrings here\n", | |
" Arguments\n", | |
" ---------\n", | |
" ??\n", | |
" Returns\n", | |
" -------\n", | |
" ??\n", | |
" \"\"\"\n", | |
" # your code here\n", | |
" \n", | |
" return a_1, a_0" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", | |
"\n", | |
"Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"reg = a_0 + a_1 * xi" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", | |
"text/plain": [ | |
"<Figure size 720x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(10, 5))\n", | |
"\n", | |
"plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly') \n", | |
"plt.plot(xi, reg, 'k--', linewidth=2, label='Linear regression')\n", | |
"plt.xlabel('Year')\n", | |
"plt.ylabel('Land temperature anomaly [°C]')\n", | |
"plt.legend(loc='best', fontsize=15)\n", | |
"plt.grid();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 4: Apply regression using NumPy" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", | |
"\n", | |
"Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", | |
"\n", | |
"Check it out:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", | |
"a_1n, a_0n = np.polyfit(xi, yi, 1)\n", | |
"\n", | |
"f_linear = np.poly1d((a_1n, a_0n)) " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.010370283943472659\n" | |
] | |
} | |
], | |
"source": [ | |
"print(a_1n)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"-20.148685384658457\n" | |
] | |
} | |
], | |
"source": [ | |
"print(a_0n)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" \n", | |
"0.01037 x - 20.15\n" | |
] | |
} | |
], | |
"source": [ | |
"print(f_linear)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The assignment `f_linear = np.poly1d((a_1n,a_0n))` creates a 1D polynomial. This means that the function only has one independent variable i.e. f(x) = (some value). You can create your own polynomial functions in a similar way using _anonymous functions_ i.e. `lambda`.\n", | |
"\n", | |
"```python\n", | |
"f_linear = lambda x: a_1n*x + a_0n\n", | |
"```\n", | |
"\n", | |
"In the line of code given above, we create the same assignment for `f_linear(x)`. One benefit of writing this out yourself is that you can see how each input is used directly. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Exercise\n", | |
"\n", | |
"Use the `lambda` function to assign `f_linear` to our 1D polynomial instead of the `np.poly1d` assignment. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", | |
"text/plain": [ | |
"<Figure size 720x360 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(10, 5))\n", | |
"\n", | |
"plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly')\n", | |
"plt.plot(xi, f_linear(xi), 'k--', linewidth=2, label='Linear regression')\n", | |
"plt.xlabel('Year')\n", | |
"plt.ylabel('Land temperature anomaly [°C]')\n", | |
"plt.legend(loc='best', fontsize=15)\n", | |
"plt.grid();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## \"Split regression\"" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", | |
"\n", | |
"What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", | |
"\n", | |
"To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "NameError", | |
"evalue": "name 'numpy' is not defined", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-22-019124a4bf3b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myear\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0;36m1970\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;31mNameError\u001b[0m: name 'numpy' is not defined" | |
] | |
} | |
], | |
"source": [ | |
"numpy.where(year==1970)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"year[0:3]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", | |
"year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", | |
"\n", | |
"m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", | |
"m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", | |
"\n", | |
"f_linear_1 = numpy.poly1d((m1, b1))\n", | |
"f_linear_2 = numpy.poly1d((m2, b2))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"plt.figure(figsize=(10, 5))\n", | |
"\n", | |
"plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", | |
"plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", | |
"plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", | |
"\n", | |
"plt.xlabel('Year')\n", | |
"plt.ylabel('Land temperature anomaly [°C]')\n", | |
"plt.legend(loc='best', fontsize=15)\n", | |
"plt.grid();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Discussion exercise\n", | |
"We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. \n", | |
"\n", | |
"How would you fix this issue? \n", | |
"\n", | |
"What would your new function, $f(x)$, look like?" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## We learned:\n", | |
"\n", | |
"* Making our plots more beautiful\n", | |
"* Defining and calling custom Python functions\n", | |
"* Applying linear regression to data\n", | |
"* NumPy built-ins for linear regression\n", | |
"* The Earth is warming up!!!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## References\n", | |
"\n", | |
"1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", | |
"2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", | |
"3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Problems\n", | |
"\n", | |
"1. There is a csv file in '../data/primary-energy-consumption-by-region.csv' that has the energy consumption of different regions of the world from 1965 until 2018 [Our world in Data](https://ourworldindata.org/energy). \n", | |
"We are going to compare the energy consumption of the United States to all of Europe. Load the data into a pandas dataframe. *Note: we can get certain rows of the data frame by specifying what we're looking for e.g. \n", | |
"`EUR = dataframe[dataframe['Entity']=='Europe']` will give us all the rows from Europe's energy consumption.*\n", | |
"\n", | |
" a. Plot the total energy consumption of the United States and Europe\n", | |
" \n", | |
" b. Use a linear least-squares regression to find a function for the energy consumption as a function of year\n", | |
" \n", | |
" energy consumed = $f(t) = At+B$\n", | |
" \n", | |
" c. At what year would you change split the data and use two lines like we did in the \n", | |
" land temperature anomoly? Split the data and perform two linear fits. \n", | |
" \n", | |
" d. What is your prediction for US energy use in 2025? How about European energy use in 2025?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"energy = pd.read_csv('../data/primary-energy-consumption-by-region.csv')\n", | |
"CAN = energy[energy['Entity']=='Canada']\n", | |
"USA = energy[energy['Entity']=='United States']\n", | |
"EUR = energy[energy['Entity']=='Europe']\n", | |
"plt.plot(USA['Year'],USA['Primary Energy Consumption (terawatt-hours)'],'-o')\n", | |
"plt.plot(EUR['Year'],EUR['Primary Energy Consumption (terawatt-hours)'],'-s')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"2. We plotted Gordon Moore's empirical prediction that the rate of semiconductors on a computer chip would double every two years in [02_Seeing_Stats](./02_Seeing_Stats.ipynb). This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", | |
"\n", | |
"We can use a linear regression to find our own historical Moore's Law. \n", | |
"\n", | |
"Use your code from [02_Seeing_Stats](./02_Seeing_Stats.ipynb) to plot the semilog y-axis scatter plot \n", | |
"(i.e. `plt.semilogy`) for the \"Date of Introduction\" vs \"MOS transistor count\". \n", | |
"Color the data according to the \"Designer\".\n", | |
"\n", | |
"Create a linear regression for the data in the form of \n", | |
"\n", | |
"$log(transistor~count)= f(date) = A\\cdot date+B$\n", | |
"\n", | |
"rearranging\n", | |
"\n", | |
"$transistor~count= e^{f(date)} = e^B e^{A\\cdot date}$\n", | |
"\n", | |
"You can perform a least-squares linear regression using the following assignments\n", | |
"\n", | |
"$x_i=$ `dataframe['Date of Introduction'].values`\n", | |
"\n", | |
"and\n", | |
"\n", | |
"$y_i=$ as `np.log(dataframe['MOS transistor count'].values)`\n", | |
"\n", | |
"a. Plot your function on the semilog y-axis scatter plot\n", | |
"\n", | |
"b. What are the values of constants $A$ and $B$ for our Moore's law fit? How does this compare to Gordon Moore's prediction that MOS transistor count doubles every two years?\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.5" | |
}, | |
"widgets": { | |
"state": {}, | |
"version": "1.1.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |