709 lines
90 KiB
Plaintext
709 lines
90 KiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"___\n",
|
||
|
"\n",
|
||
|
"<a href='http://www.pieriandata.com'> <img src='../Pierian_Data_Logo.png' /></a>\n",
|
||
|
"___\n",
|
||
|
"<center>*Copyright Pierian Data 2017*</center>\n",
|
||
|
"<center>*For more information, visit us at www.pieriandata.com*</center>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"# Introduction to Statsmodels\n",
|
||
|
"\n",
|
||
|
"Statsmodels is a Python module that provides classes and functions for the estimation of many different statistical models, as well as for conducting statistical tests, and statistical data exploration. An extensive list of result statistics are available for each estimator. The results are tested against existing statistical packages to ensure that they are correct. The package is released under the open source Modified BSD (3-clause) license. The online documentation is hosted at statsmodels.org.\n",
|
||
|
"\n",
|
||
|
"The reason we will cover it for use in this course, is that you may find it very useful later on when discussing time series data (typical of quantitative financial analysis).\n",
|
||
|
"\n",
|
||
|
"Let's walk through a very simple example of using statsmodels!"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 17,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import numpy as np\n",
|
||
|
"import pandas as pd\n",
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"%matplotlib inline"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 18,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"# You can safely ignore the warning:\n",
|
||
|
"# Please use the pandas.tseries module instead. from pandas.core import datetools\n",
|
||
|
"import statsmodels.api as sm"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 19,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"df = sm.datasets.macrodata.load_pandas().data"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 20,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"::\n",
|
||
|
" Number of Observations - 203\n",
|
||
|
"\n",
|
||
|
" Number of Variables - 14\n",
|
||
|
"\n",
|
||
|
" Variable name definitions::\n",
|
||
|
"\n",
|
||
|
" year - 1959q1 - 2009q3\n",
|
||
|
" quarter - 1-4\n",
|
||
|
" realgdp - Real gross domestic product (Bil. of chained 2005 US$,\n",
|
||
|
" seasonally adjusted annual rate)\n",
|
||
|
" realcons - Real personal consumption expenditures (Bil. of chained\n",
|
||
|
" 2005 US$, seasonally adjusted annual rate)\n",
|
||
|
" realinv - Real gross private domestic investment (Bil. of chained\n",
|
||
|
" 2005 US$, seasonally adjusted annual rate)\n",
|
||
|
" realgovt - Real federal consumption expenditures & gross investment\n",
|
||
|
" (Bil. of chained 2005 US$, seasonally adjusted annual rate)\n",
|
||
|
" realdpi - Real private disposable income (Bil. of chained 2005\n",
|
||
|
" US$, seasonally adjusted annual rate)\n",
|
||
|
" cpi - End of the quarter consumer price index for all urban\n",
|
||
|
" consumers: all items (1982-84 = 100, seasonally adjusted).\n",
|
||
|
" m1 - End of the quarter M1 nominal money stock (Seasonally\n",
|
||
|
" adjusted)\n",
|
||
|
" tbilrate - Quarterly monthly average of the monthly 3-month\n",
|
||
|
" treasury bill: secondary market rate\n",
|
||
|
" unemp - Seasonally adjusted unemployment rate (%)\n",
|
||
|
" pop - End of the quarter total population: all ages incl. armed\n",
|
||
|
" forces over seas\n",
|
||
|
" infl - Inflation rate (ln(cpi_{t}/cpi_{t-1}) * 400)\n",
|
||
|
" realint - Real interest rate (tbilrate - infl)\n",
|
||
|
"\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"print(sm.datasets.macrodata.NOTE)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 21,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/html": [
|
||
|
"<div>\n",
|
||
|
"<style>\n",
|
||
|
" .dataframe thead tr:only-child th {\n",
|
||
|
" text-align: right;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe thead th {\n",
|
||
|
" text-align: left;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe tbody tr th {\n",
|
||
|
" vertical-align: top;\n",
|
||
|
" }\n",
|
||
|
"</style>\n",
|
||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
||
|
" <thead>\n",
|
||
|
" <tr style=\"text-align: right;\">\n",
|
||
|
" <th></th>\n",
|
||
|
" <th>year</th>\n",
|
||
|
" <th>quarter</th>\n",
|
||
|
" <th>realgdp</th>\n",
|
||
|
" <th>realcons</th>\n",
|
||
|
" <th>realinv</th>\n",
|
||
|
" <th>realgovt</th>\n",
|
||
|
" <th>realdpi</th>\n",
|
||
|
" <th>cpi</th>\n",
|
||
|
" <th>m1</th>\n",
|
||
|
" <th>tbilrate</th>\n",
|
||
|
" <th>unemp</th>\n",
|
||
|
" <th>pop</th>\n",
|
||
|
" <th>infl</th>\n",
|
||
|
" <th>realint</th>\n",
|
||
|
" </tr>\n",
|
||
|
" </thead>\n",
|
||
|
" <tbody>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>0</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>1.0</td>\n",
|
||
|
" <td>2710.349</td>\n",
|
||
|
" <td>1707.4</td>\n",
|
||
|
" <td>286.898</td>\n",
|
||
|
" <td>470.045</td>\n",
|
||
|
" <td>1886.9</td>\n",
|
||
|
" <td>28.98</td>\n",
|
||
|
" <td>139.7</td>\n",
|
||
|
" <td>2.82</td>\n",
|
||
|
" <td>5.8</td>\n",
|
||
|
" <td>177.146</td>\n",
|
||
|
" <td>0.00</td>\n",
|
||
|
" <td>0.00</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>2.0</td>\n",
|
||
|
" <td>2778.801</td>\n",
|
||
|
" <td>1733.7</td>\n",
|
||
|
" <td>310.859</td>\n",
|
||
|
" <td>481.301</td>\n",
|
||
|
" <td>1919.7</td>\n",
|
||
|
" <td>29.15</td>\n",
|
||
|
" <td>141.7</td>\n",
|
||
|
" <td>3.08</td>\n",
|
||
|
" <td>5.1</td>\n",
|
||
|
" <td>177.830</td>\n",
|
||
|
" <td>2.34</td>\n",
|
||
|
" <td>0.74</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>2</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>3.0</td>\n",
|
||
|
" <td>2775.488</td>\n",
|
||
|
" <td>1751.8</td>\n",
|
||
|
" <td>289.226</td>\n",
|
||
|
" <td>491.260</td>\n",
|
||
|
" <td>1916.4</td>\n",
|
||
|
" <td>29.35</td>\n",
|
||
|
" <td>140.5</td>\n",
|
||
|
" <td>3.82</td>\n",
|
||
|
" <td>5.3</td>\n",
|
||
|
" <td>178.657</td>\n",
|
||
|
" <td>2.74</td>\n",
|
||
|
" <td>1.09</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>3</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>4.0</td>\n",
|
||
|
" <td>2785.204</td>\n",
|
||
|
" <td>1753.7</td>\n",
|
||
|
" <td>299.356</td>\n",
|
||
|
" <td>484.052</td>\n",
|
||
|
" <td>1931.3</td>\n",
|
||
|
" <td>29.37</td>\n",
|
||
|
" <td>140.0</td>\n",
|
||
|
" <td>4.33</td>\n",
|
||
|
" <td>5.6</td>\n",
|
||
|
" <td>179.386</td>\n",
|
||
|
" <td>0.27</td>\n",
|
||
|
" <td>4.06</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>4</th>\n",
|
||
|
" <td>1960.0</td>\n",
|
||
|
" <td>1.0</td>\n",
|
||
|
" <td>2847.699</td>\n",
|
||
|
" <td>1770.5</td>\n",
|
||
|
" <td>331.722</td>\n",
|
||
|
" <td>462.199</td>\n",
|
||
|
" <td>1955.5</td>\n",
|
||
|
" <td>29.54</td>\n",
|
||
|
" <td>139.6</td>\n",
|
||
|
" <td>3.50</td>\n",
|
||
|
" <td>5.2</td>\n",
|
||
|
" <td>180.007</td>\n",
|
||
|
" <td>2.31</td>\n",
|
||
|
" <td>1.19</td>\n",
|
||
|
" </tr>\n",
|
||
|
" </tbody>\n",
|
||
|
"</table>\n",
|
||
|
"</div>"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
" year quarter realgdp realcons realinv realgovt realdpi cpi \\\n",
|
||
|
"0 1959.0 1.0 2710.349 1707.4 286.898 470.045 1886.9 28.98 \n",
|
||
|
"1 1959.0 2.0 2778.801 1733.7 310.859 481.301 1919.7 29.15 \n",
|
||
|
"2 1959.0 3.0 2775.488 1751.8 289.226 491.260 1916.4 29.35 \n",
|
||
|
"3 1959.0 4.0 2785.204 1753.7 299.356 484.052 1931.3 29.37 \n",
|
||
|
"4 1960.0 1.0 2847.699 1770.5 331.722 462.199 1955.5 29.54 \n",
|
||
|
"\n",
|
||
|
" m1 tbilrate unemp pop infl realint \n",
|
||
|
"0 139.7 2.82 5.8 177.146 0.00 0.00 \n",
|
||
|
"1 141.7 3.08 5.1 177.830 2.34 0.74 \n",
|
||
|
"2 140.5 3.82 5.3 178.657 2.74 1.09 \n",
|
||
|
"3 140.0 4.33 5.6 179.386 0.27 4.06 \n",
|
||
|
"4 139.6 3.50 5.2 180.007 2.31 1.19 "
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 21,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"df.head()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 22,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"index = pd.Index(sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3'))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 23,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"df.index = index"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 24,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/html": [
|
||
|
"<div>\n",
|
||
|
"<style>\n",
|
||
|
" .dataframe thead tr:only-child th {\n",
|
||
|
" text-align: right;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe thead th {\n",
|
||
|
" text-align: left;\n",
|
||
|
" }\n",
|
||
|
"\n",
|
||
|
" .dataframe tbody tr th {\n",
|
||
|
" vertical-align: top;\n",
|
||
|
" }\n",
|
||
|
"</style>\n",
|
||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
||
|
" <thead>\n",
|
||
|
" <tr style=\"text-align: right;\">\n",
|
||
|
" <th></th>\n",
|
||
|
" <th>year</th>\n",
|
||
|
" <th>quarter</th>\n",
|
||
|
" <th>realgdp</th>\n",
|
||
|
" <th>realcons</th>\n",
|
||
|
" <th>realinv</th>\n",
|
||
|
" <th>realgovt</th>\n",
|
||
|
" <th>realdpi</th>\n",
|
||
|
" <th>cpi</th>\n",
|
||
|
" <th>m1</th>\n",
|
||
|
" <th>tbilrate</th>\n",
|
||
|
" <th>unemp</th>\n",
|
||
|
" <th>pop</th>\n",
|
||
|
" <th>infl</th>\n",
|
||
|
" <th>realint</th>\n",
|
||
|
" </tr>\n",
|
||
|
" </thead>\n",
|
||
|
" <tbody>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1959-03-31</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>1.0</td>\n",
|
||
|
" <td>2710.349</td>\n",
|
||
|
" <td>1707.4</td>\n",
|
||
|
" <td>286.898</td>\n",
|
||
|
" <td>470.045</td>\n",
|
||
|
" <td>1886.9</td>\n",
|
||
|
" <td>28.98</td>\n",
|
||
|
" <td>139.7</td>\n",
|
||
|
" <td>2.82</td>\n",
|
||
|
" <td>5.8</td>\n",
|
||
|
" <td>177.146</td>\n",
|
||
|
" <td>0.00</td>\n",
|
||
|
" <td>0.00</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1959-06-30</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>2.0</td>\n",
|
||
|
" <td>2778.801</td>\n",
|
||
|
" <td>1733.7</td>\n",
|
||
|
" <td>310.859</td>\n",
|
||
|
" <td>481.301</td>\n",
|
||
|
" <td>1919.7</td>\n",
|
||
|
" <td>29.15</td>\n",
|
||
|
" <td>141.7</td>\n",
|
||
|
" <td>3.08</td>\n",
|
||
|
" <td>5.1</td>\n",
|
||
|
" <td>177.830</td>\n",
|
||
|
" <td>2.34</td>\n",
|
||
|
" <td>0.74</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1959-09-30</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>3.0</td>\n",
|
||
|
" <td>2775.488</td>\n",
|
||
|
" <td>1751.8</td>\n",
|
||
|
" <td>289.226</td>\n",
|
||
|
" <td>491.260</td>\n",
|
||
|
" <td>1916.4</td>\n",
|
||
|
" <td>29.35</td>\n",
|
||
|
" <td>140.5</td>\n",
|
||
|
" <td>3.82</td>\n",
|
||
|
" <td>5.3</td>\n",
|
||
|
" <td>178.657</td>\n",
|
||
|
" <td>2.74</td>\n",
|
||
|
" <td>1.09</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1959-12-31</th>\n",
|
||
|
" <td>1959.0</td>\n",
|
||
|
" <td>4.0</td>\n",
|
||
|
" <td>2785.204</td>\n",
|
||
|
" <td>1753.7</td>\n",
|
||
|
" <td>299.356</td>\n",
|
||
|
" <td>484.052</td>\n",
|
||
|
" <td>1931.3</td>\n",
|
||
|
" <td>29.37</td>\n",
|
||
|
" <td>140.0</td>\n",
|
||
|
" <td>4.33</td>\n",
|
||
|
" <td>5.6</td>\n",
|
||
|
" <td>179.386</td>\n",
|
||
|
" <td>0.27</td>\n",
|
||
|
" <td>4.06</td>\n",
|
||
|
" </tr>\n",
|
||
|
" <tr>\n",
|
||
|
" <th>1960-03-31</th>\n",
|
||
|
" <td>1960.0</td>\n",
|
||
|
" <td>1.0</td>\n",
|
||
|
" <td>2847.699</td>\n",
|
||
|
" <td>1770.5</td>\n",
|
||
|
" <td>331.722</td>\n",
|
||
|
" <td>462.199</td>\n",
|
||
|
" <td>1955.5</td>\n",
|
||
|
" <td>29.54</td>\n",
|
||
|
" <td>139.6</td>\n",
|
||
|
" <td>3.50</td>\n",
|
||
|
" <td>5.2</td>\n",
|
||
|
" <td>180.007</td>\n",
|
||
|
" <td>2.31</td>\n",
|
||
|
" <td>1.19</td>\n",
|
||
|
" </tr>\n",
|
||
|
" </tbody>\n",
|
||
|
"</table>\n",
|
||
|
"</div>"
|
||
|
],
|
||
|
"text/plain": [
|
||
|
" year quarter realgdp realcons realinv realgovt realdpi \\\n",
|
||
|
"1959-03-31 1959.0 1.0 2710.349 1707.4 286.898 470.045 1886.9 \n",
|
||
|
"1959-06-30 1959.0 2.0 2778.801 1733.7 310.859 481.301 1919.7 \n",
|
||
|
"1959-09-30 1959.0 3.0 2775.488 1751.8 289.226 491.260 1916.4 \n",
|
||
|
"1959-12-31 1959.0 4.0 2785.204 1753.7 299.356 484.052 1931.3 \n",
|
||
|
"1960-03-31 1960.0 1.0 2847.699 1770.5 331.722 462.199 1955.5 \n",
|
||
|
"\n",
|
||
|
" cpi m1 tbilrate unemp pop infl realint \n",
|
||
|
"1959-03-31 28.98 139.7 2.82 5.8 177.146 0.00 0.00 \n",
|
||
|
"1959-06-30 29.15 141.7 3.08 5.1 177.830 2.34 0.74 \n",
|
||
|
"1959-09-30 29.35 140.5 3.82 5.3 178.657 2.74 1.09 \n",
|
||
|
"1959-12-31 29.37 140.0 4.33 5.6 179.386 0.27 4.06 \n",
|
||
|
"1960-03-31 29.54 139.6 3.50 5.2 180.007 2.31 1.19 "
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 24,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"df.head()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 26,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<matplotlib.text.Text at 0x21b98304860>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 26,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\nDcStb/Xd41u9XWN4v4u
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x21b9829e320>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"df['realgdp'].plot()\n",
|
||
|
"plt.ylabel(\"REAL GDP\")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Using Statsmodels to get the trend\n",
|
||
|
"The Hodrick-Prescott filter separates a time-series y_t into a trend τ_t and a cyclical component ζt\n",
|
||
|
"\n",
|
||
|
"$y_t = \\tau_t + \\zeta_t$\n",
|
||
|
"\n",
|
||
|
"The components are determined by minimizing the following quadratic loss function\n",
|
||
|
"\n",
|
||
|
"$\\min_{\\\\{ \\tau_{t}\\\\} }\\sum_{t}^{T}\\zeta_{t}^{2}+\\lambda\\sum_{t=1}^{T}\\left[\\left(\\tau_{t}-\\tau_{t-1}\\right)-\\left(\\tau_{t-1}-\\tau_{t-2}\\right)\\right]^{2}$"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 30,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"# Tuple unpacking\n",
|
||
|
"gdp_cycle, gdp_trend = sm.tsa.filters.hpfilter(df.realgdp)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 31,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"1959-03-31 39.511915\n",
|
||
|
"1959-06-30 80.088532\n",
|
||
|
"1959-09-30 48.875455\n",
|
||
|
"1959-12-31 30.591933\n",
|
||
|
"1960-03-31 64.882667\n",
|
||
|
"1960-06-30 23.040242\n",
|
||
|
"1960-09-30 -1.355312\n",
|
||
|
"1960-12-31 -67.462365\n",
|
||
|
"1961-03-31 -81.367438\n",
|
||
|
"1961-06-30 -60.167890\n",
|
||
|
"1961-09-30 -46.369224\n",
|
||
|
"1961-12-31 -20.695339\n",
|
||
|
"1962-03-31 -2.162153\n",
|
||
|
"1962-06-30 -4.718648\n",
|
||
|
"1962-09-30 -13.556457\n",
|
||
|
"1962-12-31 -44.369262\n",
|
||
|
"1963-03-31 -43.320274\n",
|
||
|
"1963-06-30 -44.546971\n",
|
||
|
"1963-09-30 -26.298758\n",
|
||
|
"1963-12-31 -44.261196\n",
|
||
|
"1964-03-31 -14.434412\n",
|
||
|
"1964-06-30 -20.266867\n",
|
||
|
"1964-09-30 -19.137001\n",
|
||
|
"1964-12-31 -54.824590\n",
|
||
|
"1965-03-31 -15.962445\n",
|
||
|
"1965-06-30 -13.740115\n",
|
||
|
"1965-09-30 13.254828\n",
|
||
|
"1965-12-31 56.030402\n",
|
||
|
"1966-03-31 103.074337\n",
|
||
|
"1966-06-30 72.175348\n",
|
||
|
" ... \n",
|
||
|
"2002-06-30 -95.260035\n",
|
||
|
"2002-09-30 -114.798768\n",
|
||
|
"2002-12-31 -190.025905\n",
|
||
|
"2003-03-31 -221.225647\n",
|
||
|
"2003-06-30 -207.139428\n",
|
||
|
"2003-09-30 -89.685415\n",
|
||
|
"2003-12-31 -61.895316\n",
|
||
|
"2004-03-31 -56.628782\n",
|
||
|
"2004-06-30 -49.616781\n",
|
||
|
"2004-09-30 -38.362890\n",
|
||
|
"2004-12-31 -8.956672\n",
|
||
|
"2005-03-31 39.070285\n",
|
||
|
"2005-06-30 18.652990\n",
|
||
|
"2005-09-30 42.798035\n",
|
||
|
"2005-12-31 39.627354\n",
|
||
|
"2006-03-31 141.269129\n",
|
||
|
"2006-06-30 125.653779\n",
|
||
|
"2006-09-30 70.676428\n",
|
||
|
"2006-12-31 110.887665\n",
|
||
|
"2007-03-31 99.564908\n",
|
||
|
"2007-06-30 157.161271\n",
|
||
|
"2007-09-30 231.874638\n",
|
||
|
"2007-12-31 263.554667\n",
|
||
|
"2008-03-31 204.422097\n",
|
||
|
"2008-06-30 221.373942\n",
|
||
|
"2008-09-30 102.018455\n",
|
||
|
"2008-12-31 -107.269472\n",
|
||
|
"2009-03-31 -349.047706\n",
|
||
|
"2009-06-30 -397.557073\n",
|
||
|
"2009-09-30 -333.115243\n",
|
||
|
"Name: realgdp, Length: 203, dtype: float64"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 31,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"gdp_cycle"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 29,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"pandas.core.series.Series"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 29,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"type(gdp_cycle)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 36,
|
||
|
"metadata": {
|
||
|
"collapsed": true
|
||
|
},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"df[\"trend\"] = gdp_trend"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 37,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<matplotlib.axes._subplots.AxesSubplot at 0x21b98541080>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 37,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "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\nfzFehjGGU6dO4edXwOf
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x21b9856ac18>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"df[['trend','realgdp']].plot()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 41,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/plain": [
|
||
|
"<matplotlib.axes._subplots.AxesSubplot at 0x21b98785390>"
|
||
|
]
|
||
|
},
|
||
|
"execution_count": 41,
|
||
|
"metadata": {},
|
||
|
"output_type": "execute_result"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtYAAAHVCAYAAADVbLz1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYlmX/x/H3xRZkCTgRceHeuGdppqU5y5Gm7fG09/q1\ne9r1tGyXZa4clZrmqhw5EtyKIm5wsgSUzfn740KzXKjAzfi8joMDuO5rfG9L/XjyPc/TMsYgIiIi\nIiKXx8nRBYiIiIiIlAUK1iIiIiIihUDBWkRERESkEChYi4iIiIgUAgVrEREREZFCoGAtIiIiIlII\nFKxFRERERAqBgrWIiIiISCFQsBYRERERKQQuji7gUgUGBprQ0FBHlyEiIiIiZVxkZGS8MSboQueV\n2mAdGhpKRESEo8sQERERkTLOsqy9BTlPrSAiIiIiIoXggsHasqyvLcs6YlnW5tOOvWxZ1kbLstZb\nlrXAsqzq+cdDLctKzz++3rKsT0+7po1lWZssy4qxLOsDy7Ks/OPulmVNzT++2rKs0MJ/myIiIiIi\nRasgI9bjgT7/OvaWMaa5MaYlMAd47rTXdhpjWuZ/3HXa8U+A24H6+R8n73krkGSMqQe8B7xx8W9D\nRERERMSxLthjbYxZ+u9RZGNMymnfegHmfPewLKsa4GOMWZX//XfAQGAeMAB4If/U6cBHlmVZxpjz\n3vNssrOziY2NJSMj42IvLTc8PDwIDg7G1dXV0aWIiIiIlCmXPHnRsqxXgZuAY8AVp71U27Ks9fnH\nnzXGLANqALGnnRObf4z8z/sBjDE5lmUdAwKA+LM88w7gDoCQkJAzaoqNjcXb25vQ0FDyO03kNMYY\nEhISiI2NpXbt2o4uR0RERKRMueTJi8aYZ4wxNYGJwL35hw8CIfktIg8DkyzL8rn8Mk8983NjTLgx\nJjwo6MwVTzIyMggICFCoPgfLsggICNCIvoiIiEgRKIxVQSYCQwCMMZnGmIT8ryOBnUAYEAcEn3ZN\ncP4x8j/XBLAsywXwBRIutRiF6vPTr4+IiIhI0bikYG1ZVv3Tvh0AbMs/HmRZlnP+13WwJynuMsYc\nBFIsy+qQvxrITcDP+dfPAsbkfz0U+O1S+qtFRERERBypIMvtTQZWAg0sy4q1LOtW4HXLsjZblrUR\n6A08kH96N2Bjfo/1dOAuY0xi/mv3AF8CMdgj2fPyj38FBFiWFYPdPvJk4by14pecnMy4ceOK7P4V\nK1YssnuLiIiIyOUpyKogI85y+KtznDsDmHGO1yKApmc5ngFcf6E6SoOTwfqee+75x/GcnBxcXErt\nJpciIiIiUgBlNu29OHsLWw+kXPjEi9C4ug/P929yzteffPJJdu7cScuWLXF1dcXDwwN/f3+2bdtG\ndHQ033//PR988AFZWVm0b9+ecePG4ezsTMWKFXnggQeYM2cOFSpU4Oeff6ZKlSrs3r2bkSNHkpaW\nxoABAwr1vYiIiIhI4dKW5oXo9ddfp27duqxfv5633nqLtWvX8v777xMdHU1UVBRTp07lzz//ZP36\n9Tg7OzNx4kQAjh8/TocOHdiwYQPdunXjiy++AOCBBx7g7rvvZtOmTVSrVs2Rb01ERERELqDMjlif\nb2S5uLRr1+7UetGLFy8mMjKStm3bApCenk7lypUBcHNzo1+/fgC0adOGhQsXAvDnn38yY4bdWTN6\n9GieeOKJ4n4LIiIiIlJAZTZYlwReXl6nvjbGMGbMGF577bUzznN1dT21DJ6zszM5OTmnXtPyeCIi\nIiKlg1pBCpG3tzepqalnfa1nz55Mnz6dI0eOAJCYmMjevXvPe7/OnTszZcoUgFNtIyIiIiJSMilY\nF6KAgAA6d+5M06ZNeeyxx/7xWuPGjXnllVfo3bs3zZs356qrruLgwYPnvd/777/Pxx9/TLNmzYiL\nizvvuSIiIiLiWFZp3YslPDzcRERE/ONYVFQUjRo1clBFpYd+nURERMqQ3BxwVndvUbIsK9IYE36h\n8zRiLSIiIlLaGAN7V8APN8GrVWHRC5CX6+iqyj3980ZERESktMjJhM0zYNUncGgjePhB7a6w/D04\nvAWGfAkevo6ustxSsBYREREp6VIPwZqvIPIbOH4UghpBv/9B82Hg5mm/Nu9x+KInjJgMgfUdXXG5\npGAtIiIicjGy0+3R4cAw8PAp2mfFRcKqT2HLj5CXA2F9oP2dUKcHnL4kb9tbIaih3RryxZUw5CsI\n6120tckZFKxFRERECipmMfzyMCTtASyo3AiCwyG4LdQIh6AG4OR8ec/IzYatP8PqzyD2L3Dzhra3\nQbvbIaDuua8L7Qx3/AFTRsKkG6Dn/0GXh/8ZwKVIKViLiIiIXEjaEZj/NGyaBgH1YOAnkLwfYtfA\n1lmw9jv7PDdvqNHaDtrBbe3Q7RVYsGccT7BbPdZ8BakHoFId6PMGtBxZ8JFxv5pwy3yYdS8sfgkO\nbYYBH4Gb14WvlcumYF3CjB07ln79+jF06NACXxMaGkpERASBgQX8jSsiIiIFk5cH6ybAwucg+wR0\nfxK6PASuHn+fYwwk7LRDdlyE/Xn5e2DyV+nwr/13yA4OhyrNwMXt7+sPbYbVn9qhPScD6lwB/f8H\n9a4Cp0tYwM3N024FqdrcXi0kYQcMnwR+IZf1SyEXpmBdhIwxGGNwupTfFCIiIuJYR7fD7Adh3wqo\n1dmeLBgUduZ5lgWB9eyPliPsY1kn4OB6O2THroE9y2DTD/Zrzu5QvSXUaAOHNtmvuVSAFiOg/V1Q\nueHl125Z0OVBqNIEpt8Kn/eAG76D0C6Xf285p7IbrOc9af/PWpiqNoO+r5/3lD179nD11VfTvn17\nIiMjefzxx/n000/JzMykbt26fPPNN1SsWJGXXnqJ2bNnk56eTqdOnfjss8+w/tUDNXfuXB5++GG8\nvLzo3Lkzu3btYs6cOSQkJDBixAji4uLo2LEjJzf52bNnD3369KFNmzasXbuWJk2a8N133+Hp6Vm4\nvw4iIiJlWXYGLHvHHnV284LrPoKWN17c6LGbJ9TqZH+cdCzu76AdGwERX4NnIPR6EVrfBJ6VCv+9\n1L8Kbv8NpoyA7wZAn9ftfm31XRcJDaUWgR07dnDPPfewZMkSvvrqKxYtWsTatWsJDw/n3XffBeDe\ne+9lzZo1bN68mfT0dObMmfOPe2RkZHDnnXcyb948IiMjOXr06KnXXnzxRbp06cKWLVsYNGgQ+/bt\nO/Xa9u3bueeee4iKisLHx4dx48YVz5sWEREpC3YtgU86wdI3ockguDcCWo++tJaMf/OtAU0GwtWv\nwq3z4ak4eGizPbJcFKH6pMB6cNsiqNcL5j4Ks++318OWQld2R6wvMLJclGrVqkWHDh2YM2cOW7du\npXPnzgBkZWXRsWNHAH7//XfefPNNTpw4QWJiIk2aNKF///6n7rFt2zbq1KlD7dq1ARgxYgSff/45\nAEuXLmXmzJkAXHvttfj7+5+6rmbNmqeeN2rUKD744AMeffTRon/TIiIipdnxBFjwLGyYZPdEj/4R\n6l5ZtM8szm3IPXxh+GT4/VVY9rbd5nLDBPCuUnw1lANlN1g7kJeXPfPWGMNVV13F5MmT//F6RkYG\n99xzDxEREdSsWZMXXniBjIyMQnn2v9tJ/v29iIiInMYY2DAZ5j8DmSnQ9RHo9hi4VnB0ZYXPycle\ngq9qU/jpHrvvevj3dq+3FAq1ghShDh068OeffxITEwPA8ePHiY6OPhWiAwMDSUtLY/r06Wdc26BB\nA3bt2sWePXsAmDp16qnXunXrxqRJkwCYN28eSUlJp17bt28fK1euBGDSpEl06aJJCiIiImcVHwPf\n9oef7rZ3KrxzGfR8rmyG6tM1GQS3LgAnF/i6L2yY4uiKygwF6yIUFBTE+PHjGTFiBM2bN6djx45s\n27YNPz8/br/9dpo2bcrVV19N27Ztz7i2QoUKjBs37tRkRG9vb3x9fQF4/vnnWbp0KU2aNGHmzJmE\nhPy9fE6DBg34+OOPadS
|
||
|
"text/plain": [
|
||
|
"<matplotlib.figure.Figure at 0x21b98971d68>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"df[['trend','realgdp']][\"2000-03-31\":].plot(figsize=(12,8))"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## Great job!"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"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.6.1"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|