{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Score for the Fed's dual mandate\n",
    "\n",
    "The U.S. Congress established three key objectives for monetary policy \n",
    "in the Federal Reserve Act: *Maximum employment, stable prices*, and \n",
    "moderate long-term interest rates. The first two objectives are \n",
    "sometimes referred to as the Federal Reserve's **dual mandate**. \n",
    "\n",
    "Here we examine unemployment and inflation data to construct \n",
    "a time-series which gives a numerical score to the \n",
    "Fed's performance on the dual mandate. \n",
    "(This notebook could be extended to studies of \n",
    "the **Phillips curve**, see Appendix 1).\n",
    "\n",
    "The key is to find comparable units to measure performance \n",
    "and a suitable scalar measure to show deviation \n",
    "from the dual mandate. \n",
    "Our visualization features *time-sequential* scatter plots using color *heat* map.\n",
    "\n",
    "Short URL: https://git.io/phillips"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Dependencies:*\n",
    "\n",
    "- fecon235 repository https://github.com/rsvp/fecon235\n",
    "- Python: matplotlib, pandas\n",
    "     \n",
    "*CHANGE LOG*\n",
    "\n",
    "    2016-11-14  Fix #2 by v5 and PREAMBLE-p6.16.0428 upgrades. \n",
    "                   Switch from fecon to fecon235 for main import module. \n",
    "                   Minor edits given additional year of data.\n",
    "    2015-12-15  Switch to yi_0sys dependencies. Phillips curve.\n",
    "    2015-11-18  First version."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from fecon235.fecon235 import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " ::  Python 2.7.11\n",
      " ::  IPython 4.2.0\n",
      " ::  jupyter_core 4.1.0\n",
      " ::  notebook 4.1.0\n",
      " ::  matplotlib 1.5.1\n",
      " ::  numpy 1.10.4\n",
      " ::  pandas 0.18.0\n",
      " ::  pandas_datareader 0.2.1\n",
      " ::  Repository: fecon235 v5.16.1107 develop\n",
      " ::  Timestamp: 2016-11-15, 20:53:09 UTC\n",
      " ::  $pwd: /media/yaya/virt15h/virt/dbx/Dropbox/ipy/fecon235/nb\n"
     ]
    }
   ],
   "source": [
    "#  PREAMBLE-p6.16.0428 :: Settings and system details\n",
    "from __future__ import absolute_import, print_function\n",
    "system.specs()\n",
    "pwd = system.getpwd()   # present working directory as variable.\n",
    "print(\" ::  $pwd:\", pwd)\n",
    "#  If a module is modified, automatically reload it:\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "#       Use 0 to disable this feature.\n",
    "\n",
    "#  Notebook DISPLAY options:\n",
    "#      Represent pandas DataFrames as text; not HTML representation:\n",
    "import pandas as pd\n",
    "pd.set_option( 'display.notebook_repr_html', False )\n",
    "from IPython.display import HTML # useful for snippets\n",
    "#  e.g. HTML('<iframe src=http://en.mobile.wikipedia.org/?useformat=mobile width=700 height=350></iframe>')\n",
    "from IPython.display import Image \n",
    "#  e.g. Image(filename='holt-winters-equations.png', embed=True) # url= also works\n",
    "from IPython.display import YouTubeVideo\n",
    "#  e.g. YouTubeVideo('1j_HxD4iLn8', start='43', width=600, height=400)\n",
    "from IPython.core import page\n",
    "get_ipython().set_hook('show_in_pager', page.as_hook(page.display_page), 0)\n",
    "#  Or equivalently in config file: \"InteractiveShell.display_page = True\", \n",
    "#  which will display results in secondary notebook pager frame in a cell.\n",
    "\n",
    "#  Generate PLOTS inside notebook, \"inline\" generates static png:\n",
    "%matplotlib inline   \n",
    "#          \"notebook\" argument allows interactive zoom and resize."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Comparable unit for comparison\n",
    "\n",
    "A 1% change in inflation may have different economic significance \n",
    "than a 1% change in unemployment. \n",
    "We retrieve historical data, then let one standard deviation \n",
    "represent one unit for scoring purposes. \n",
    "Note that the past scores will thus be represented *ex-post*, \n",
    "which is to say, influenced by recent data.\n",
    "\n",
    "The dual mandate is not required to be explicitly \n",
    "stated numerically by the Federal Reserve, \n",
    "so we assign explicit target values \n",
    "for unemployment and inflation \n",
    "(those frequently mentioned in Congressional testimonies \n",
    "and used as benchmarks by the market). \n",
    "These targets can be finely reset below \n",
    "so that the Fed performance can be re-evaluated.\n",
    "\n",
    "Sidenote: \"The natural rate of unemployment \n",
    "[**NAIRU**, *non-accelerating inflation rate of unemployment*] \n",
    "is the rate of unemployment \n",
    "arising from all sources except fluctuations in aggregate demand. \n",
    "Estimates of potential GDP are based on the long-term natural rate. \n",
    "The short-term natural rate is used to gauge the amount of current \n",
    "and projected slack in labor markets.\" \n",
    "See https://research.stlouisfed.org/fred2/series/NROU \n",
    "and Appendix 1 for details."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Set DUAL MANDATE, assumed throughout this notebook:\n",
    "unem_target = 5.0\n",
    "infl_target = 2.0\n",
    "\n",
    "#  The Fed varies the targets over time, \n",
    "#  sometimes only implicitly. So for example,\n",
    "#  there may be disagreement among Board members\n",
    "#  regarding NAIRU -- but we set it to what\n",
    "#  seems to be the prevalent market assumption."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Unemployment rate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "unem = get( m4unemp )\n",
    "#           m4 implies monthly frequency."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# #  Starts 1948-01-01, uncomment to view:\n",
    "# stats( unem )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Y    1.638152\n",
       "dtype: float64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Standard deviation for unemployment rate:\n",
    "unem_std = unem.std()\n",
    "unem_std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Uncomment to plot raw unemployment rate:\n",
    "#  plot( unem )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Score unemployment as standard deviations from target: \n",
    "unem_score = todf( (unem - unem_target) / unem_std )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inflation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Use synthetic inflation\n",
    "#  which averages CPI and PCE for both headline and core versions:\n",
    "infl_level = get( m4infl )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Get the YoY inflation rate:\n",
    "infl = todf(pcent( infl_level, 12 ))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  #  Starts 1960-01-01, uncomment to view:\n",
    "#  stats(infl)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Y    2.458588\n",
       "dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "infl_std = infl.std()\n",
    "infl_std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  #  Uncomment to plot inflation rate:\n",
    "#  plot( infl )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Score inflation as standard deviations from target:\n",
    "infl_score = todf( (infl - infl_target) / infl_std )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Expressing duality as complex number\n",
    "\n",
    "We encode each joint score for unemployment and inflation into a single complex number. \n",
    "Let *u* be the unemployment score and *i* the inflation score. \n",
    "(Note: we follow the Python/engineering convention by letting **j** \n",
    "be the imaginary number $\\sqrt -1$.) \n",
    "So let *z* be our dual encoding as follows:\n",
    "\n",
    "$ z = u + i \\mathbf{j} $\n",
    "\n",
    "(In the history of mathematics, this was the precursor \n",
    "to the idea of a *vector*.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Let's start constructing our 4-column dataframe:\n",
    "scores = paste( [unem_score, infl_score, infl_score, infl_score ] )\n",
    "#  Third and fouth columns are dummy placeholders to be replaced later."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Give names to the scores columns:\n",
    "scores.columns = ['z_unem', 'z_infl', 'z', 'z_norm']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Fill in THIRD column z as complex number per our discussion:\n",
    "scores.z = scores.z_unem + (scores.z_infl * 1j)\n",
    "#  The imaginary number in itself in Python is represented as 1j, \n",
    "#  since j may be a variable elsewhere."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Computing the Fed score\n",
    "\n",
    "Each dual score can be interpreted as a vector in the \n",
    "complex plane. Its component parts, real for unemployment \n",
    "and imaginary for inflation, measure deviation from \n",
    "respective targets in units expressed as standard deviations.\n",
    "\n",
    "*Our **key idea** is to use the length of this vector (from \n",
    "the origin, 0+0**j**, representing the dual mandate) as \n",
    "the Fed score* = |z|.\n",
    "\n",
    "Python, which natively handles complex numbers, can \n",
    "compute the *norm* of such a vector using abs(z).\n",
    "\n",
    "Later we shall visualize the trajectory of the component \n",
    "parts using a color heat map."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Finally fill-in the FOURTH placeholder column:\n",
    "scores.z_norm = abs( scores.z ) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "              z_unem    z_infl                                   z    z_norm\n",
       "T                                                                           \n",
       "2016-03-01  0.000000 -0.267127                    -0.267127172093j  0.267127\n",
       "2016-04-01  0.000000 -0.215273                    -0.215272534662j  0.215273\n",
       "2016-05-01 -0.183133 -0.214895   (-0.183133167021-0.214894532004j)  0.282343\n",
       "2016-06-01 -0.061044 -0.227335  (-0.0610443890069-0.227334832881j)  0.235388\n",
       "2016-07-01 -0.061044 -0.254444  (-0.0610443890069-0.254444040216j)  0.261664\n",
       "2016-08-01 -0.061044 -0.191617  (-0.0610443890069-0.191616963666j)  0.201106\n",
       "2016-09-01  0.000000 -0.138719                    -0.138718697292j  0.138719"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Tail end of recent scores:\n",
    "tail( scores )\n",
    "#  ... nicely revealing the data structure:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualizing Fed scores\n",
    "\n",
    "z_norm is expressed in standard deviation units, thus \n",
    "it truly represents deviation from the dual mandate \n",
    "on a Gaussian scale."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Define descriptive dataframe from our mathematical construct:\n",
    "fed_score = todf( scores.z_norm )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xaafd8a0c>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#     FED SCORE\n",
    "plot( fed_score )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*We can say that a score greater than 2 is definitively cause for concern. \n",
    "For example, between 1974 and 1984, there are two peaks \n",
    "extending into 4 standard deviations mainly due to high inflation. \n",
    "Fed score during the Great Recession hit 3 mainly due to \n",
    "severe unemployment.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                Y\n",
      "count  681.000000\n",
      "mean     1.306697\n",
      "std      1.026325\n",
      "min      0.038818\n",
      "25%      0.469673\n",
      "50%      0.989438\n",
      "75%      1.793291\n",
      "max      4.224767\n",
      "\n",
      " ::  Index on min:\n",
      "Y   2001-09-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Index on max:\n",
      "Y   1980-06-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Head:\n",
      "                   Y\n",
      "T                   \n",
      "1960-01-01  0.158333\n",
      "1960-02-01  0.128790\n",
      "1960-03-01  0.254965\n",
      " ::  Tail:\n",
      "                   Y\n",
      "T                   \n",
      "2016-07-01  0.261664\n",
      "2016-08-01  0.201106\n",
      "2016-09-01  0.138719\n",
      "\n",
      " ::  Correlation matrix:\n",
      "     Y\n",
      "Y  1.0\n"
     ]
    }
   ],
   "source": [
    "stats( fed_score )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Remarks on fed_score\n",
    "\n",
    "Our fed_score *handles both positive and negative deviations from the Fed's dual mandate*, \n",
    "moreover, it handles them jointly using a historical fair measuring unit: \n",
    "the standard deviation. This avoids using ad-hoc weights to balance \n",
    "the importance between unemployment and inflation.\n",
    "\n",
    "The **fed_score is always a positve real number (since it is a norm) \n",
    "which is zero if and only if the Fed has achieved targets** \n",
    "(which we have explicitly specified). \n",
    "*That score can be interpreted as the number of standard deviations \n",
    "away from the dual mandate.*\n",
    "\n",
    "Our **fed_score** can also be simply interpreted \n",
    "as an economic **crisis level** indicator \n",
    "(much like a *n-alarm* fire) when Fed monetary \n",
    "policy becomes crucial for the US economy.\n",
    "\n",
    "Since 1960, ex-post fed_score averages around 1.31 where \n",
    "the mid-50% percentile range is approximately [0.47, 1.79].\n",
    "But keep in mind that this computation relies on our \n",
    "current fixed targets, so fed_score is most \n",
    "useful in accessing recent performance \n",
    "from the perspective of historical variance. \n",
    "This means that the fed_score for a particular \n",
    "point in time may change as new incoming data arrives.\n",
    "\n",
    "2015-12-15 notes: The current fed_score is 0.46 \n",
    "gravitating towards zero as the Fed is preparing \n",
    "its first rate hike in a decade.\n",
    "\n",
    "2016-11-14 notes: The current fed_score is 0.14 \n",
    "as the Fed is expected to announce \n",
    "the second rate hike since the Great Recession. \n",
    "The labor market has exhibited sustained improvement."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CONCLUSION: visualize fed_score components over time\n",
    "\n",
    "When FOMC makes its releases, the market becomes \n",
    "fixated on the so-called blue dot chart \n",
    "of expected future interest rates by its members. \n",
    "The next scatter plot helps us to understand \n",
    "the motivations and constraints behind \n",
    "the Federal Reserve's monetary policy.\n",
    "\n",
    "We see that the key components of the U.S. economy, \n",
    "unemployment and inflation, came back \n",
    "\"full circle\" to target from 2005 to 2016, \n",
    "or more accurately \"full figure eight\" \n",
    "with *major* (3 standard) deviations seen in the unemployment component."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\na1WmVlVXDp8w0Lv3E3w89cts59fv1KkTv8zuSNt6f1EtwpUt68xMn/5zIbbO+TGZTAx9ZTg/fvcD\nysWFXr164FM6hMCGlhFm/rXL4l+5FMeOHSuyjt8u4/jtuVHExvE7irtJk8FgkBZN6kuLcDfpUwWJ\nLK2TB1q3uGfH8ev1eike6i8rfkbkFHJ0HVI81EsOHDgghw4dkn/++UfS0tKkdKlgWfEjIkeQ+F1I\n1Yo+snr16hzrNpvNsmbNGpkzZ44cO3YsV5oKmpMnT8rixYtl165dGfY7QtN7E8ZLyZZ1pPWlmdLq\n3I8SUr+KePh5S6s9k+VB+VXqznhBfIMD5Ny5c4WuLStwxDh+DY384ObmxrJV6xj/7mgO7d9Nh3qN\neHPU6Ht2ZSidTsev8xbTp/eDFAuCcxf0fPjhx1SvXv2mjV6v58LFONo3t6T9/aBZA+HYsWO0bNkS\nvV6Pl5cXYBmxc+7cOfz9/fH390cpRatWrRzRtNvyxx9/MODpx6nQuARn9l2hf58nmDr5E4fpWbZ6\nJWEjuuMeGgBAqTceRn28mp2t38O/cimuHTjFl9OmFfobxfZEG8evUShcvHiRs2fPUrly5duuKywi\n/Pbbbxw+fJiIiAgeeuihe9bx3yApKYkTJ04QFhZGSEjILfk1a5Tj9ahTRPWE0+fhvr7e9H/8WT7/\nfBomk4nIJvWZ8sk3PPlkLy5dOk9SkpERI95g1KixxMbGcunSJapXr+7QdZ5NJhPBoUEMXtaa8k2L\nkxqv56P6S/nt58U0a9bMIZp6PtaXfbU9Kf+GZXGk4yNn0eKKPxPfHcexY8eoUKGC0zn9vI7jd3ho\nJ/OGE4Z6nI34+HhJTEx0tIxcM+2TqRLo7Sl1SvhLaIDvLeEIs9ksg558XOqV8JHXq7tKRKiP/G/Y\nUAepLTrs3btXypcrLuXK+Iifr7u88MKzUra0txxbiph2Iy8PcJMypfxkzGhXSU1CYo8hlSv5yKOP\n9paQEC+p1yBASpYMkK1btzqsDdeuXRNvPy+ZJs/c3Jr2riGzZs1ymKYjR45IsbDiUr5/GynXp5UU\nDy8lp06dcpie3EAeQz0Od/S3CHJCx+8sceK0tDR5pFs38dDpROfiIo/17SsGg6HQ6jebzfLt119J\nj07tZeAT/eXo0aMZ8m/XT/v375cSfl4S2waRLsjfTZDigf4ZdB84cEDC/L0k8SFEeiBx3ZBgH085\n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\nx/w/M3hIOuF7rqwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xaafd83ac>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  Scatter plot of recent data using color heat map:\n",
    "scatter( scores['2005':], col=[0, 1] )\n",
    "#  (Ignore FutureWarning from matplotlib/collections.py:590\n",
    "#   regarding elementwise comparison due to upstream numpy.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this scatter plot: z_unem is shown along the x-axis, \n",
    "z_infl along the y-axis, \n",
    "such that the color *heat* map depicts chronological movement \n",
    "from *blue to green to red*. \n",
    "\n",
    "The coordinate (0, 0) represents our Fed dual mandate, \n",
    "so it is easy to see deviations from target. \n",
    "Geometrically a point's distance from the origin is what \n",
    "we have computed as fed_score (= z_norm, in the complex plane).\n",
    "\n",
    "- - - -"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Appendix 1: Phillips curve\n",
    "\n",
    "The Phillips curve purports to explain the relationship between \n",
    "inflation and unemployment, however, as it turns out the \n",
    "relationship is one of mere correlation during certain periods \n",
    "in a given country. It is too simplistic to assert that \n",
    "decreased unemployment (i.e. increased levels of employment) \n",
    "will cause with the inflation rate to increase.\n",
    "\n",
    "\"Most economists no longer use the Phillips curve in its original \n",
    "form because it was shown to be too simplistic. This can be seen \n",
    "in a cursory analysis of US inflation and unemployment data from \n",
    "1953-92. There is no single curve that will fit the data, but \n",
    "there are three rough aggregations—1955–71, 1974–84, and 1985–92 — \n",
    "each of which shows a general, downwards slope, but at three \n",
    "very different levels with the shifts occurring abruptly. \n",
    "The data for 1953-54 and 1972-73 do not group easily, \n",
    "and a more formal analysis posits up to five groups/curves \n",
    "over the period.\n",
    "\n",
    "Modern versions distinguish between short-run and long-run \n",
    "effects on unemployment. The \"short-run Phillips curve\" is also called \n",
    "the \"expectations-augmented Phillips curve,\" since it shifts up when \n",
    "inflationary expectations rise. In the long run, this implies \n",
    "that monetary policy cannot affect unemployment, \n",
    "which adjusts back to its \"natural rate\", also called the \"NAIRU\" or \n",
    "\"long-run Phillips curve\". However, this long-run \"neutrality\" of \n",
    "monetary policy does allow for short run fluctuations and the ability \n",
    "of the monetary authority to temporarily decrease unemployment \n",
    "by increasing permanent inflation, and vice versa.\n",
    "\n",
    "In many recent stochastic general equilibrium models, with sticky prices, \n",
    "there is a positive relation between the rate of inflation and \n",
    "the level of demand, and therefore a negative relation between \n",
    "the rate of inflation and the rate of unemployment. This relationship is \n",
    "often called the \"New Keynesian Phillips curve.\" Like the \n",
    "expectations-augmented Phillips curve, the New Keynesian Phillips curve \n",
    "implies that increased inflation can lower unemployment temporarily, \n",
    "but cannot lower it permanently.\"\n",
    "\n",
    "For more details, see https://en.wikipedia.org/wiki/Phillips_curve\n",
    "\n",
    "Curiously, according to Edmund Phelps who won the 2006 Nobel Prize in Economics,\n",
    "the **long-run Phillips Curve is *vertical* **\n",
    "such that the rate of inflation has no effect on unemployment at its NAIRU. \n",
    "The name \"NAIRU\" arises because with actual unemployment below it, \n",
    "inflation accelerates, while with unemployment above it, \n",
    "inflation decelerates. With the actual rate equal to it, \n",
    "inflation is stable, neither accelerating nor decelerating."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"https://upload.wikimedia.org/wikipedia/commons/e/e3/NAIRU-SR-and-LR.svg\"/>"
      ],
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image(url=\"https://upload.wikimedia.org/wikipedia/commons/e/e3/NAIRU-SR-and-LR.svg\", embed=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We know from our data that economic reality is far more \n",
    "complicated than the ideal diagram above.\n",
    "\n",
    "For example, in the late 1990s, the unemployment rate \n",
    "fell below 4%, much lower than almost all estimates of the NAIRU. \n",
    "But inflation stayed very moderate rather than accelerating.\n",
    "\n",
    "Since our z data captures the normalized version of \n",
    "unemployment vs inflation rates, it is easy \n",
    "to visualize the actual paths using our scatter plots."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Uncomment for #  Scatter plot of selected data using color heat map:\n",
    "#  scatter( scores['1995':'2000'], col=[0, 1] )"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
