{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Equities: separable components of total return\n",
    "\n",
    "## Enterprise and speculative returns, plus dividend yield\n",
    "\n",
    "We begin by constructing a model for equity price returns\n",
    "by decomposition into enterprise and speculative returns.\n",
    "That model is then tested using S&P 500 data going back\n",
    "to the year 1871 (well-known database assembled by Robert Shiller,\n",
    "Nobel laureate at Yale).\n",
    "\n",
    "We find that the popular percentage approximation model is\n",
    "not appropriate as the time horizon increases.\n",
    "In contrast, the exactitude of the logarithmic model\n",
    "is demonstrated by multivariate regression.\n",
    "\n",
    "The enterprise and speculative returns are then\n",
    "plotted to understand their respective relationship\n",
    "to price dynamics. The Great Recession produced\n",
    "spikes in the data unlike any other in history.\n",
    "\n",
    "Total return is thus the sum of enterprise and speculative returns,\n",
    "plus dividend yield.\n",
    "We examine the dividend payout ratio relative\n",
    "to earnings, and find a local estimate for forecasting.\n",
    "\n",
    "Finally we demonstrate forecasting using the above\n",
    "decomposition of returns and the most recent data.\n",
    "Those results are then compared to an univariate\n",
    "Holt-Winters time-series model in Appendix 1.\n",
    "\n",
    "Appendices 2 and 3 covers the historical characteristics\n",
    "of the three separable components of total return.\n",
    "\n",
    "Reference section briefly relates our findings to Bogle (2015)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "VIEWING: *if you encounter this message,*\n",
    "[Math Processing Error], *it means\n",
    "GitHub is timing out on rendering LaTeX equations.\n",
    "Please view this notebook at*\n",
    "[Jupyter](http://nbviewer.jupyter.org/github/rsvp/fecon235/blob/master/nb/qdl-spx-earn-div.ipynb)\n",
    "instead. Issue [#3](https://github.com/rsvp/fecon235/issues/3)\n",
    "has been raised in this regard.\n",
    "\n",
    "*Dependencies:*\n",
    "\n",
    "- Repository: https://github.com/rsvp/fecon235\n",
    "- Python: matplotlib, pandas\n",
    "\n",
    "*CHANGE LOG*\n",
    "\n",
    "    2016-03-30  Raise LaTeX math issue #3, and provide alternative Jupyter view.\n",
    "                   Total return summary revised.\n",
    "    2016-03-28  Refactor data retrieval to yi_quandl module.\n",
    "    2016-03-18  Rough draft, test data source directly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "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.0.0\n",
      " ::  jupyter 1.0.0\n",
      " ::  notebook 4.0.6\n",
      " ::  matplotlib 1.4.3\n",
      " ::  numpy 1.10.1\n",
      " ::  pandas 0.17.1\n",
      " ::  pandas_datareader 0.2.0\n",
      " ::  Repository: fecon235 v4.16.0221 devBogleSPX\n",
      " ::  Timestamp: 2016-03-29, 19:25:13 UTC\n",
      " ::  $pwd: /media/yaya/virt15h/virt/dbx/Dropbox/ipy/fecon235/nb\n"
     ]
    }
   ],
   "source": [
    "#  PREAMBLE-p6.15.1223 :: 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",
    "#  Beware, for MATH display, use %%latex, NOT the following:\n",
    "#                   from IPython.display import Math\n",
    "#                   from IPython.display import Latex\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": {},
   "source": [
    "## Equities model without interest rates\n",
    "\n",
    "We will test a model for equity price returns which shall\n",
    "exclude the usual considerations for interest rates,\n",
    "the discounting of dividends, and the so-called \"equity risk premium.\"\n",
    "\n",
    "Let us begin with the obvious:\n",
    "\n",
    "$$ p_t = x_t s_t \\qquad\\hbox{where}\\quad  s_t = p_t / x_t $$\n",
    "\n",
    "Price per share at time t will be represented by $p_t$,\n",
    "and the earnings per share by $x_t$.\n",
    "Thus $s_t$ is the usual price/earnings ratio."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Taking the log of both sides, we can get two equations for different epochs:\n",
    "\n",
    "$$ \\eqalign{ \\log p_t &= \\log x_t + \\log s_t \\cr\n",
    "   \\log p_{t-n} &= \\log x_{t-n} + \\log s_{t-n} \\cr}$$\n",
    "   \n",
    "Subtracting the second equation from the first, given $n > 0$, we obtain:\n",
    "\n",
    "$$ \\eqalign{ \\log {p_t \\over p_{t-n}} &= \\log {x_t \\over x_{t-n}} + \\log {s_t \\over s_{t-n}} \\cr\n",
    "   P_t &= X_t + S_t \\qquad\\hbox{for some implicit  } n.\\cr }$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: $\\log(1+\\psi) \\approx \\psi$, for small $\\psi$ where $\\psi$\n",
    "can be expressed in percentage terms.\n",
    "The capitalized variables thus can be approximately interpreted as follows:\n",
    "percentage *price change* $P_t$ is equal to percentage *earnings growth* $X_t$\n",
    "plus the percentage *change in price/earnings ratio* $S_t$ --\n",
    "over $n$ periods.\n",
    "\n",
    "However, more exactly, a ***capitalized variable*** is the difference\n",
    "in logarithmic values of the lower case variables over $n$ periods.\n",
    "As we shall see, $X_t$ can be interpreted as **enterprise return**,\n",
    "whereas $S_t$ can be characterized as **speculative return**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data specification and retrieval\n",
    "\n",
    "We shall rely upon Quandl [MULTPL](https://www.quandl.com/data/MULTPL)\n",
    "database which actively updates the famous series made public by\n",
    "Robert [Shiller](http://www.econ.yale.edu/~shiller/data.htm)\n",
    "in his Nobel prize-winning work. Shiller keeps his data\n",
    "in an [Excel spreadsheet](http://www.econ.yale.edu/~shiller/data/ie_data.xls),\n",
    "but our downloaded data will be in pandas Dataframe format.\n",
    "We have also doubled-checked the data with CSV formatted\n",
    "[okfn.org](http://data.okfn.org/data/core/s-and-p-500)\n",
    "and its GitHub [datasets](https://github.com/datasets/s-and-p-500)\n",
    "repository.\n",
    "\n",
    "The economics department at Yale also maintains the Shiller database\n",
    "at Quandl [YALE](https://www.quandl.com/data/YALE/SPCOMP-S-P-Composite),\n",
    "but unfortunately, there seems to be a nine month latency.\n",
    "Here is **Shiller's own description of the data:**\n",
    "\n",
    "> \"Stock market data used in my book, *Irrational Exuberance*\n",
    "[Princeton University Press 2000, Broadway Books 2001, 2nd ed., 2005]\n",
    "are available for download: U.S. Stock Markets 1871-Present and CAPE Ratio.\n",
    "This data set consists of **monthly** stock price, dividends, and earnings\n",
    "data and the consumer price index (to allow conversion to real values),\n",
    "all **starting January 1871**. The price, dividend, and earnings series\n",
    "are from the same sources as described in Chapter 26 of my earlier book\n",
    "(*Market Volatility* [Cambridge, MA: MIT Press, 1989]),\n",
    "although now I use monthly data, rather than annual data.\n",
    "Monthly dividend and earnings data are computed from the\n",
    "S&P four-quarter totals for the quarter since 1926,\n",
    "with linear interpolation to monthly figures.\n",
    "Dividend and earnings data before 1926 are from Cowles and associates, \n",
    "*Common Stock Indexes* [2nd ed. Principia Press 1939],\n",
    "interpolated from annual data.\n",
    "Stock price data are monthly averages of daily closing prices.\"\n",
    "\n",
    "For our earnings data, we shall ignore Shiller's CAPE ratio,\n",
    "and instead use the raw *nominal* data (not inflation-adjusted),\n",
    "although *real* data has also been reconstructed by Shiller.\n",
    "\n",
    "The explicit munging details of the download functions\n",
    "are located in our *yi_quandl* module."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  m4 implies monthly frequency:\n",
    "#                   price:\n",
    "p = get( m4spx_1871_p )\n",
    "\n",
    "#                   earnings over 12-months:\n",
    "x = get( m4spx_1871_e )\n",
    "\n",
    "#  We want non-inflation adjusted data for this notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Compute price/earnings ratio:\n",
    "s = todf( p / x )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Apply numpy natural logarithm:\n",
    "plog = np.log( p )\n",
    "xlog = np.log( x )\n",
    "slog = np.log( s )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Shape the data: endpoints, n, and transform methods\n",
    "\n",
    "**START** specific tests from the next cell:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  RE-RUN the REGRESSION starting from this cell, varying specs:\n",
    "\n",
    "#  Raw data starts 1871-01-01, but shall allow lags up to 24 months:\n",
    "\n",
    "start = '1873-01-01'\n",
    "end   = '2100-01-01'\n",
    "\n",
    "#  Compute changes over freq of n periods:\n",
    "\n",
    "n = 12\n",
    "\n",
    "#  Percentage transform is approximate, but widely used,\n",
    "#  whereas logarithmic transform gives exact results.\n",
    "transform = \"%\"\n",
    "transform = \"log\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## This is the approximate PERCENTAGE transforms: \n",
    "\n",
    "if transform == \"%\":\n",
    "    P  = div( pcent(p, n), n ) * 12\n",
    "    X  = div( pcent(x, n), n ) * 12\n",
    "    S  = div( pcent(s, n), n ) * 12\n",
    "\n",
    "#  div() is our numpy function for Python 2 and 3 division.\n",
    "#  The div() and the 12 annualizes the percentage."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## This is the exact LOG differencing transforms: \n",
    "\n",
    "if transform == \"log\":\n",
    "    P  = div( dif(plog, n), n ) * 12\n",
    "    X  = div( dif(xlog, n), n ) * 12\n",
    "    S  = div( dif(slog, n), n ) * 12\n",
    "\n",
    "#  div() is our numpy function for Python 2 and 3 division.\n",
    "#  The div() and the 12 annualizes the result."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Create a mega Dataframe:\n",
    "mega = paste([ p, x, s, P, X, S ])\n",
    "\n",
    "#  Then name the columns:\n",
    "mega.columns = [\"p\", \"x\", \"s\", \"P\", \"X\", \"S\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 p            x            s            P            X  \\\n",
      "count  1730.000000  1730.000000  1730.000000  1730.000000  1730.000000   \n",
      "mean    228.468734    11.832738    15.599659     0.042127     0.037805   \n",
      "std     448.612672    22.093790     8.433497     0.185736     0.291122   \n",
      "min       2.730000     0.159970     5.310000    -1.067382    -2.175001   \n",
      "25%       7.772500     0.550071    11.310000    -0.064418    -0.075170   \n",
      "50%      15.960000     1.290224    14.645000     0.063599     0.052257   \n",
      "75%     110.875000    12.562169    17.870000     0.169694     0.158506   \n",
      "max    2111.940000   105.966507   123.730000     0.807153     2.189681   \n",
      "\n",
      "                 S  \n",
      "count  1730.000000  \n",
      "mean      0.004322  \n",
      "std       0.282146  \n",
      "min      -2.032863  \n",
      "25%      -0.132400  \n",
      "50%       0.003927  \n",
      "75%       0.159135  \n",
      "max       1.621470  \n",
      "\n",
      " ::  Index on min:\n",
      "p   1877-06-01 00:00:00\n",
      "x   1894-12-01 00:00:00\n",
      "s            1917-12-01\n",
      "P            1932-06-01\n",
      "X            2009-03-01\n",
      "S            2010-06-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Index on max:\n",
      "p   2015-05-01\n",
      "x   2014-09-01\n",
      "s   2009-05-01\n",
      "P   1933-07-01\n",
      "X   2010-06-01\n",
      "S   2009-03-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Head:\n",
      "                        p         x      s         P         X         S\n",
      "T                                                                       \n",
      "1872-01-01 00:00:00  4.86  0.400000  12.15  0.090384  0.000000  0.090384\n",
      "1872-02-01 00:00:00  4.88  0.410084  11.90  0.081068  0.024898  0.056170\n",
      "1872-03-01 00:00:00  5.04  0.410090  12.29  0.089178  0.025345  0.063834\n",
      "1872-04-01 00:00:00  5.18  0.410135  12.63  0.088768  0.025021  0.063747\n",
      "1872-05-01 00:00:00  5.18  0.410135  12.63  0.063767  0.025021  0.038746\n",
      "1872-06-01 00:00:00  5.13  0.420147  12.21  0.062332  0.049141  0.013191\n",
      "1872-07-01 00:00:00  5.10  0.420099  12.14  0.075315  0.049448  0.025867\n",
      "\n",
      " ::  Tail:\n",
      "                  p          x      s         P         X         S\n",
      "T                                                                  \n",
      "2015-08-01  2039.87  92.093454  22.15  0.039161 -0.131223  0.170384\n",
      "2015-09-01  1944.41  90.648485  21.45 -0.024798 -0.156134  0.131336\n",
      "2015-10-01  2024.81  90.676668  22.33  0.044196 -0.143964  0.188160\n",
      "2015-11-01  2080.62  90.658824  22.95  0.017478 -0.132686  0.150164\n",
      "2015-12-01  2054.08  90.647838  22.66 -0.000092 -0.120969  0.120877\n",
      "2016-01-01  1918.60  90.671078  21.16 -0.055543 -0.110924  0.055381\n",
      "2016-02-01  1903.03  90.663649  20.99 -0.089978 -0.100514  0.010536\n",
      "\n",
      " ::  Correlation matrix:\n",
      "          p         x         s         P         X         S\n",
      "p  1.000000  0.957502  0.429807  0.095630  0.045412  0.016097\n",
      "x  0.957502  1.000000  0.235646  0.137382  0.160301 -0.074962\n",
      "s  0.429807  0.235646  1.000000 -0.047242 -0.463972  0.447633\n",
      "P  0.095630  0.137382 -0.047242  1.000000  0.366581  0.280056\n",
      "X  0.045412  0.160301 -0.463972  0.366581  1.000000 -0.790493\n",
      "S  0.016097 -0.074962  0.447633  0.280056 -0.790493  1.000000\n"
     ]
    }
   ],
   "source": [
    "stats( mega )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Apply regression to test  model\n",
    "\n",
    "The correlation matrix above gives us some partial insight\n",
    "into pairwise relationships. We would expect P and X\n",
    "to be strongly correlated.\n",
    "\n",
    "Next we conduct a multivariate regression by specifying the\n",
    "form of the theoretical model. We suppress estimation of\n",
    "the intercept by using \"0\" within regressformula().\n",
    "Obviously, the coefficients for X and S should\n",
    "to be close to 1 -- but the results are quite unexpected\n",
    "for the approximative model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Get more info on regression by: regressformula??\n",
    "\n",
    "result = regressformula( mega[start:end], \"P ~ 0 + X + S\" )\n",
    "#                            ^possible truncation of Dataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      P   R-squared:                       1.000\n",
      "Model:                            OLS   Adj. R-squared:                  1.000\n",
      "Method:                 Least Squares   F-statistic:                 2.630e+32\n",
      "Date:                Tue, 29 Mar 2016   Prob (F-statistic):               0.00\n",
      "Time:                        12:25:27   Log-Likelihood:                 58729.\n",
      "No. Observations:                1718   AIC:                        -1.175e+05\n",
      "Df Residuals:                    1716   BIC:                        -1.174e+05\n",
      "Df Model:                           2                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [95.0% Conf. Int.]\n",
      "------------------------------------------------------------------------------\n",
      "X              1.0000   4.54e-17    2.2e+16      0.000         1.000     1.000\n",
      "S              1.0000   4.72e-17   2.12e+16      0.000         1.000     1.000\n",
      "==============================================================================\n",
      "Omnibus:                       40.584   Durbin-Watson:                   1.713\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               81.234\n",
      "Skew:                          -0.114   Prob(JB):                     2.29e-18\n",
      "Kurtosis:                       4.040   Cond. No.                         2.86\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "print( result.summary() )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confirming: transform= log , n= 12 , start= 1873-01-01 , end= 2100-01-01\n"
     ]
    }
   ],
   "source": [
    "print(\"Confirming: transform=\", transform, \", n=\", n, \", start=\", start, \", end=\", end)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**END** specific tests from multivariate regression.\n",
    "\n",
    "---\n",
    "\n",
    "## Terrible percentage approximation\n",
    "\n",
    "In many studies, the percentage approximation is used to examine returns,\n",
    "perhaps because conceptually it is readily understood.\n",
    "By executing the above regression while *commenting out* the **transform=\"log\"** line,\n",
    "we can replicate the following results for various n values. As n increases,\n",
    "the R-squared statistic worsens considerably and the coefficients deviate farther away\n",
    "from the theoretical value of 1. Let $\\varepsilon_t$ be the estimation error, then:\n",
    "\n",
    "$$\\eqalign{\n",
    "\\varepsilon_t &= \\hat{P_t} - P_t \\cr\n",
    "\\hat{P_t} &= 0.78 X_t + 0.91 S_t + \\varepsilon_t \\qquad \\hbox{for  } n=1 \\quad R^2=0.90 \\cr\n",
    "\\hat{P_t} &= 0.41 X_t + 0.61 S_t + \\varepsilon_t \\qquad \\hbox{for  } n=3 \\quad R^2=0.57 \\cr\n",
    "\\hat{P_t} &= 0.19 X_t + 0.30 S_t + \\varepsilon_t \\qquad \\hbox{for  } n=6 \\quad R^2=0.27 \\cr\n",
    "\\hat{P_t} &= 0.15 X_t + 0.23 S_t + \\varepsilon_t \\qquad \\hbox{for  } n=12 \\quad R^2=0.21 \\cr\n",
    "}$$\n",
    "\n",
    "The errors can be traced to the data reality that $\\psi$\n",
    "cannot be assumed to be small, for there were indeed some\n",
    "extreme changes in the course of 143 years.\n",
    "Lengthening $n$ also contributes to violating that\n",
    "numerical approximation."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exact results using log transform\n",
    "\n",
    "Thankfully the data (and algorithms) confirm the mathematical\n",
    "derivation of our model when the **transform=\"log\"** line is in effect:\n",
    "\n",
    "$$\\eqalign{\n",
    "\\hat{P_t} &= 1.00 X_t + 1.00 S_t + \\varepsilon_t \\qquad \\hbox{for all  } n \\quad R^2=1.00 \\cr\n",
    "}$$\n",
    "\n",
    "Increasing $n$ has no effect on our results, which was entirely expected.\n",
    "This can be verified by re-executing the appropriate sections\n",
    "of this notebook with different parameters.\n",
    "\n",
    "In view of our findings, we make the this revision:\n",
    "**the *logarithmic* price change $P_t$ is *exactly* equal to the\n",
    "*logarithmic* earnings change $X_t$\n",
    "plus the change in *logarithmic* price/earnings ratio $S_t$ --\n",
    "over $n$ periods.**\n",
    "\n",
    "The pairwise correlations, however, were somewhat surprisingly low.\n",
    "For example, for $n=12$, the correlation between $P_t$ and $X_t$\n",
    "was 0.37, and the correlation between $P_t$ and $S_t$ was 0.28.\n",
    "But of course, as an ensemble, they mesh together perfectly."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Further details regarding X and S\n",
    "\n",
    "The two variables $X_t$ and $S_t$ have the same functional form\n",
    "and the same coefficient weights, yet\n",
    "the mean of the former is 0.03781 and\n",
    "the mean of the latter 0.00432,\n",
    "which differs by a factor of 8.75 (when $n=12$).\n",
    "This indicates **earnings growth contributes far more\n",
    "to price appreciation than variation in the price/earnings ratio.**\n",
    "However, in Appendix 2 we see how the volatility of the price/earnings ratio\n",
    "could obscure this finding over a short observation period.\n",
    "\n",
    "Since our data has monthly frequency, we shall focus on\n",
    "cases where $n$ is a multiple of 12.\n",
    "This is to mitigate the possibility of observing seasonal effects.\n",
    "\n",
    "Since the logarithms of the raw data are clearly crucial,\n",
    "let us see their stats:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                pl           xl           sl\n",
      "count  1718.000000  1718.000000  1718.000000\n",
      "mean      3.601719     0.933360     2.668359\n",
      "std       1.920100     1.785019     0.375661\n",
      "min       1.004302    -1.832767     1.669592\n",
      "25%       2.068128    -0.562372     2.423695\n",
      "50%       2.786243     0.288687     2.686827\n",
      "75%       4.733979     2.537636     2.884521\n",
      "max       7.655362     4.663123     4.818102\n",
      "\n",
      " ::  Index on min:\n",
      "pl   1877-06-01 00:00:00\n",
      "xl   1894-12-01 00:00:00\n",
      "sl            1917-12-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Index on max:\n",
      "pl   2015-05-01\n",
      "xl   2014-09-01\n",
      "sl   2009-05-01\n",
      "dtype: datetime64[ns]\n",
      "\n",
      " ::  Head:\n",
      "                           pl        xl        sl\n",
      "T                                                \n",
      "1873-01-01 00:00:00  1.631199 -0.843657  2.474856\n",
      "1873-02-01 00:00:00  1.638997 -0.820592  2.459589\n",
      "1873-03-01 00:00:00  1.631199 -0.820667  2.451867\n",
      "1873-04-01 00:00:00  1.617406 -0.820584  2.437990\n",
      "1873-05-01 00:00:00  1.619388 -0.821218  2.440606\n",
      "1873-06-01 00:00:00  1.605430 -0.798809  2.404239\n",
      "1873-07-01 00:00:00  1.603420 -0.798105  2.401525\n",
      "\n",
      " ::  Tail:\n",
      "                  pl        xl        sl\n",
      "T                                       \n",
      "2015-08-01  7.620641  4.522804  3.097837\n",
      "2015-09-01  7.572714  4.506989  3.065725\n",
      "2015-10-01  7.613231  4.507300  3.105931\n",
      "2015-11-01  7.640421  4.507103  3.133318\n",
      "2015-12-01  7.627583  4.506982  3.120601\n",
      "2016-01-01  7.559351  4.507238  3.052113\n",
      "2016-02-01  7.551203  4.507156  3.044046\n",
      "\n",
      " ::  Correlation matrix:\n",
      "          pl        xl        sl\n",
      "pl  1.000000  0.982075  0.444759\n",
      "xl  0.982075  1.000000  0.267964\n",
      "sl  0.444759  0.267964  1.000000\n"
     ]
    }
   ],
   "source": [
    "rawlog = paste([plog, xlog, slog])\n",
    "rawlog.columns = [\"pl\", \"xl\", \"sl\"]\n",
    "rawlog = rawlog[start:end]\n",
    "#  We intentionally use \"start\" and \"end\"\n",
    "#  to remain consistent with above analysis.\n",
    "\n",
    "stats( rawlog )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we visualise their history.\n",
    "Over the long-term, the logarithmic scale (on the y-axis)\n",
    "is more suitable than the ordinary scale\n",
    "to discern changes in value.\n",
    "For example, the drop in logarithmic earnings during the\n",
    "Great Recession was surprisingly far greater than during the Great Depression!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYfrHkurwAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xabf69f0c>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#        log of SPX price:\n",
    "plot( rawlog.pl )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xabf46d2c>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#        log of SPX earnings:\n",
    "plot( rawlog.xl )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xabd70bec>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#        log of SPX price/earnings ratio:\n",
    "plot( rawlog.sl )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Looking for possible outliers, we are struck by the violent downward spike\n",
    "occuring during the Great Recession in the earnings data.\n",
    "\n",
    "Looking for possible trends, we can see how the price dynamics\n",
    "is fundamentally related to earnings growth. In fact,\n",
    "the **correlation between pl and xl is 0.98** -- which\n",
    "justifies calling *earnings growth* $X_t$: the **enterprise return**\n",
    "portion of total return (to be discussed in the final sections).\n",
    "\n",
    "Prior to 1989, sl looked almost trendless, bouncing roughly\n",
    "between 2 and 3. Now raw s is the price/earnings ratio,\n",
    "which is basically the multiplier to earnings at which\n",
    "an \"investor\" has implicitly paid at market.\n",
    "An investor's optimism for a higher re-evaluation,\n",
    "from other investors, of some given earnings level can\n",
    "be encapsulated by positive change in the price/earnings rato.\n",
    "This is the reason behind calling $S_t$\n",
    "the market's **speculative return**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 Y\n",
      "count  1742.000000\n",
      "mean     15.573008\n",
      "std       8.410519\n",
      "min       5.310000\n",
      "25%      11.312500\n",
      "50%      14.615000\n",
      "75%      17.830000\n",
      "max     123.730000\n"
     ]
    }
   ],
   "source": [
    "#  This is raw price/earnings:\n",
    "stat( s )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The max on raw price/earnings is 123.73 which is not an\n",
    "outlier but due to the dramatic drop in earnings\n",
    "during the Great Recession (quite evident from the plots).\n",
    "By restricting the datetime index to end at 2000-01-01,\n",
    "we estimate the all-time mean price/earnings to be around 15\n",
    "(note $log 15 = 2.71$ and our remark on trendless sl).\n",
    "The standard deviation drops from 8.4 to 4.6\n",
    "due to that restriction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 Y\n",
      "count  1549.000000\n",
      "mean     14.248799\n",
      "std       4.528267\n",
      "min       5.310000\n",
      "25%      10.970000\n",
      "50%      13.860000\n",
      "75%      17.080000\n",
      "max      34.000000\n"
     ]
    }
   ],
   "source": [
    "#  Price/earnings prior to the year 2000:\n",
    "stat( s[:'2000-01-01'] )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dividends and the payout ratio\n",
    "\n",
    "Roughly speaking, dividends are taken out of earnings and paid out to investors.\n",
    "We are interested in the payout ratio\n",
    "which will later help give better forecasts of the dividend yield."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Dividends paid over 12-months, monthly frequency:\n",
    "d = get( m4spx_1871_d )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## Uncomment to see raw 12-month dividend:\n",
    "#  d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  We want to compute the PAYOUT ratio = dividends/earnings\n",
    "divearn = todf( d / x )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## Uncomment to see payout ratio data:\n",
    "#  divearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\neAB3HMcJKP8Py8LdVKfd8VAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xabcfe38c>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  Plot payout ratio = dividends/earnings:\n",
    "plot( divearn )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 Y\n",
      "count  1740.000000\n",
      "mean      0.614891\n",
      "std       0.258620\n",
      "min       0.288538\n",
      "25%       0.488346\n",
      "50%       0.576191\n",
      "75%       0.686378\n",
      "max       3.973320\n"
     ]
    }
   ],
   "source": [
    "stat( divearn )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On average, we would expect divearn to be less than 1, since\n",
    "earnings are the primary source for paying out the dividends.\n",
    "\n",
    "Sometimes, however, entreprises may hold steady their dividends\n",
    "while earnings plunge -- for example, during the\n",
    "Great Recession, the payout ratio went as high as 4.\n",
    "But as the plot shows this is highly unusual.\n",
    "\n",
    "Historically we can observe a slight downward trend in the payout ratio\n",
    "over the very long-term. The mean payout ratio is 0.61."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TOTAL RETURN for Equities\n",
    "\n",
    "The total return $T_t$ for equities is composed of the logarithmic price change\n",
    "plus the dividend yield, over $n$ periods. We shall let $\\lambda$ be\n",
    "the dividend payout ratio relative to earnings $x_i$,\n",
    "such that the index $i$ is understood to cover periods $t-n$ through $t$.\n",
    "Thus, we can write:\n",
    "\n",
    "$$ T_t = P_t + {{\\lambda \\sum x_i } \\over p_{t-n}} $$\n",
    "\n",
    "Inserting our model in place of $P_t$, we obtain total return as follows:\n",
    "\n",
    "$$ T_t = X_t + S_t + {{\\lambda \\sum x_i } \\over p_{t-n}} $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Forecasting total return\n",
    "\n",
    "The term lambda $\\lambda$ should be a stochastic variable, but we shall\n",
    "treat it locally as a constant (see plot of divearn).\n",
    "We utilize the median, rather than the mean, since\n",
    "that is a far more robust statistic.\n",
    "\n",
    "To estimate the other variables we localize our data to\n",
    "the last three years, which gives 36 monthly points of data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  For localizing forecasts:\n",
    "nlocal = 36\n",
    "\n",
    "#  We can also make \"backcasts\" by backdating this date variable,\n",
    "#  or specify a date far in the future to use the most current data:\n",
    "last = '2100-01-01'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimating future dividend yield"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.36610350000000003"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Estimated local lambda:\n",
    "Elambda = np.median( tail(divearn[:last], nlocal) )\n",
    "Elambda"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.7441805621724635"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Estimated annualized dividend yield \"dy\" as percentage:\n",
    "Edy = Elambda * (tailvalue(x[:last]) / tailvalue(p[:last])) * 100\n",
    "Edy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we used a robust local estimate of lambda,\n",
    "the dividend payout ratio relative to earnings,\n",
    "to forecast dividend yield using the \"last\" known\n",
    "earnings and price levels.\n",
    "\n",
    "The history of dividend yields is examined in Appendix 3."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimating earning growth\n",
    "\n",
    "We tested our model using the change in logarithmic earnings,\n",
    "so here we will use the geometric mean return on the localized raw data.\n",
    "\n",
    "The geometric return is akin to our logarithmic model,\n",
    "and is to be distinguished from the terrible arithmetic return,\n",
    "though it too can be expressed in percentage form."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.13, 1.21, 4.02, 12, 36, '2013-03-01', '2016-02-01']"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Get more info by executing: georet??\n",
    "Xgeoret = georet( tail(x[:last], nlocal), yearly=12 )\n",
    "Xgeoret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.13"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Geometric return is expressed as percentage,\n",
    "#  so here is our estimator for big X:\n",
    "EX = Xgeoret[0]\n",
    "EX"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimating growth of price/earnings ratio\n",
    "\n",
    "We tested our model using the change in logarithmic price/earnings ratio,\n",
    "so here we will use the geometric mean return on the localized raw data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[5.89, 6.22, 8.19, 12, 36, '2013-03-01', '2016-02-01']"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  yearly argument in georet annualizes:\n",
    "Sgeoret = georet( tail(s[:last], nlocal), yearly=12 )\n",
    "Sgeoret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.89"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Geometric return is expressed as percentage,\n",
    "#  so here our estimator for big S:\n",
    "ES = Sgeoret[0]\n",
    "ES"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Combining the estimates for a forecast\n",
    "\n",
    "In terms of our Python variables, here is our model:\n",
    "\n",
    "$$ \\hat{T} = \\hat{X} + \\hat{S} + \\hat{dy} $$\n",
    "\n",
    "where an \"E\" prefix is used to represent estimated hat variables."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.7641805621724629"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# FORECAST of TOTAL RETURN, finally...\n",
    "ET = EX + ES + Edy\n",
    "ET"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "FORECAST SUMMARY, given last data point on 2100-01-01\n",
      "TOTAL RETURN (per annum) forecast:  8.76418056217 %\n",
      "    - Enterprise return portion of total:   0.128933902261\n",
      "    - Speculative return portion of total:  0.672053702935\n",
      "    - Dividend yield portion of total:      0.199012394804\n",
      "Estimated dividend yield:   1.74418056217 %\n",
      "Estimated dividend payout ratio: 0.3661035 (relative to earnings)\n",
      "Last price/earnings ratio: 20.99\n"
     ]
    }
   ],
   "source": [
    "print(\"FORECAST SUMMARY, given 'last' set at\", last)\n",
    "print(\"TOTAL RETURN (per annum) forecast: \", ET, \"%\")\n",
    "print(\"    - Enterprise return:  \", EX, \"%\")\n",
    "print(\"    - Speculative return: \", ES, \"%\")\n",
    "print(\"    - Dividend yield:     \", Edy, \"%\")\n",
    "print(\"Dividend payout ratio:\", Elambda, \"(relative to earnings)\")\n",
    "print(\"Price/earnings ratio, last:\", tailvalue( s[:last] ))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2016-03-18 Remarks on last=\"2016-02-01\" Forecast\n",
    "\n",
    "- Enterprise return is weak since earnings growth is below the inflation rate!\n",
    "- Current price/earnings stands at 21.0 (compared to 15 historically).\n",
    "- Speculative return portion of projected total return seems very high."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Appendix 1: Comparison to univariate forecast\n",
    "\n",
    "Let us apply the Holt-Winters method to logarithmic price alone.\n",
    "This is a pure time-series technique for the purpose of cross-checking\n",
    "the multivariate regression model which we used for forecasting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#  Forecast 12-months ahead:\n",
    "fc = forecast( plog[:last], h=12 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "## Uncomment to see forecasts:\n",
    "# fc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Forecast   -0.053103\n",
       "dtype: float64"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Change in logarithmic price:\n",
    "fc.loc[12] - fc.loc[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2100-01-01'"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "last"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2016-03-18: The forecasted price return is about -5.31% per annum,\n",
    "so adding the estimated dividend yield of +1.74%,\n",
    "the forecasted total return is -3.57%.\n",
    "Thus the univariate method on price alone differs considerably from\n",
    "our multivariate model which forecasted +8.76% for total return.\n",
    "\n",
    "*Averaging forecasts from different techniques usually increases accuracy.*\n",
    "Combining the point forecasts for total return from two models:\n",
    "+2.6% average.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Appendix 2: Historical enterprise and speculative returns\n",
    "\n",
    "We examine their respective geometric mean returns\n",
    "over the entire Shiller database."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[3.62, 4.64, 14.31, 12, 1742, '1871-01-01', '2016-02-01']"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Enterprise return since 1871:\n",
    "georet( x, yearly=12 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.42, 2.06, 18.1, 12, 1742, '1871-01-01', '2016-02-01']"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  Speculative return since 1871:\n",
    "georet( s, yearly=12 )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By examining their geometric mean returns,\n",
    "we see that enterprise returns (3.62%) contributes far more\n",
    "to the total return than speculative returns (0.42%).\n",
    "\n",
    "Our georet() also computes arithmetic mean return\n",
    "and its standard deviation (second and third\n",
    "elements respectively). Speculative returns\n",
    "contributes more volatility in observed\n",
    "total returns than enterprise returns."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Appendix 3: Dividend yield historically\n",
    "\n",
    "Among the three components of total return,\n",
    "the dividend yield has on average has made\n",
    "the largest contribution historically.\n",
    "Also, it has never contributed negatively\n",
    "to total return."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#  Express dividend yield as percentage per annum:\n",
    "dy = todf( (d/p) * 100 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                 Y\n",
      "count  1740.000000\n",
      "mean      4.396557\n",
      "std       1.686881\n",
      "min       1.110000\n",
      "25%       3.220000\n",
      "50%       4.340000\n",
      "75%       5.410000\n",
      "max      13.840000\n"
     ]
    }
   ],
   "source": [
    "stat( dy )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**The average dividend yield since 1871 has been 4.4% per annum.**\n",
    "But the plot of the exponentially smoothed values seems to\n",
    "indicate a steady decline over time.\n",
    "\n",
    "*Continuance of such a decline in dividend yield would then make\n",
    "earnings growth the main driver of total return\n",
    "in the 21st century.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nq0WjBeQzW5mOa/XqxLnpZ58tf7///cxtTIRh96hRMsoylaRhyBfJJrb40Y9kOH4yacUcYQ8cKOVd\n7ThscxpivC65datcaztD0s14mSnil6a6d6847EmT5PtYUyPpoo0ayf+gUyfpozh4MPHxqmHbI1NJ\nJI1K6A4dO0rkFN+xkeyRPx43crE3bJCIYfx4seW11zJrzy7mCLt//+Szu9x0E3D++fJ5d+9OPPrz\nqKOkPSflbu3QoYM4vM8+S75PupGW48ZJhNaoUeL60uYIe+hQ6UTcs0d+BKyQKm/cTknVRBTCaMfL\nLwdOPBF44gm5litWyI+mESgUF8vANyt9Lkp6Mo2w/0tEC4joGrcMSkTTphJFxefkJnvkj2fbtnDG\nN8z69ZKi1KiRdKbNm5dZe1ZIpmEbNTviWbxY6re88w5wzjmSs50scjWi9Wxgtvtb30rtsK2k3xmd\nWYl0e3OEbThsOxF2r17iTPbta6hLphveng4vOx390FS/+gp4800pPQFEByItWBBbSjlVx6Nq2PZo\nlMGxxzPzV0TUCcC7RLSSmT8w7zBx4kSURmbdLSkpQVlZ2TePEsYHtrrcqlUYr78OXHppdPucOcBR\nR6U/vl07YPXqMMJh6+eLX164MBwZ3BFCnz7A009n1p6V5fLy8m+W588PR0b9hdC/P/DZZw3P/+KL\nwCWXhHDnnUDPnmH86Eeyf7bss7I8aFAIq1cn315bG0LHjqnbO+884PDD5fPdcEPs9pqaEFq0kOU9\ne4AlS0LYvRuoqrL+/yktBZ5/PozKyvKY7QsWWLu/ki1v3Ah8+aW71zPZcnl5eVbbT7Q8YwZw/vkh\ndOggy82bA8uWhbBjB9C0afT6d+0KvPNOGDU1Ddsz8Ov+zIXrHQ6HMW3aNAD4xl8mhZkzfgGYDOAn\ncevYTY47jvmjj2LXnXce8/Tp6Y/9/HPmPn0yO39ZGfP8+fL+gw+YR47MrD27PPYY8w9/KO8PHGBu\n0kT+GuzezXzssbIfM3NFBXNdnbc2JuKFF5jPPTf59r/+lfnKK9O3c9FFzM8803B9s2bMe/dGl7t0\nYR47NnodrHD66cwvv9xw/RVXMD/xhPV24qmqYm7enLm+3nkbuczxxzPPnBldfu895kGDmL/zHeZZ\ns6Lrr7mG+c9/9t6+oBLxnQl9rSNJhIhaEFHryPuWAE4CYLG6sDMS6dBWJRGrecup2LAhOj9gaan7\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xabcb88ec>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  History of dividend yields:\n",
    "plot( ema(dy, alpha=0.10) )\n",
    "#     ema means Exponential Moving Average."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "- Bogle, John C. and Michael W. Nolan, Jr., 2015, \"Occam’s Razor Redux: Establishing Reasonable Expectations for Financial Market Returns,\" *Journal of Portfolio Management* 42, 119-134. http://www.iijournals.com/doi/full/10.3905/jpm.2015.42.1.119 \n",
    "\n",
    "\n",
    "- Keynes, John Maynard, 1936, *General Theory of Employment, Interest, and Money*, MacMillan, London.\n",
    "\n",
    "Keynes (1936) enumerated two sources of stock returns: **enterprise** and **speculative**.\n",
    "Enterprise refers to the actual business results of corporations.\n",
    "Speculation, on the other hand, involved “forecasting the psychology of the market,”\n",
    "the ephemeral, emotional response of investors seeking to\n",
    "anticipate how other investors will react to particular events.\n",
    "\n",
    "Keynes made no known attempt to quantify the distinction between\n",
    "enterprise and speculation, so Bogle tackled the task\n",
    "by developing his BSRM/S model,\n",
    "\"*Bogle Sources of Return Model for Stocks*.\" \n",
    "\n",
    "Bogle (2015) states: \n",
    "\n",
    "> *\"**The sheer simplicity of the BSRM/S commends it over\n",
    "highly complex models, none of which (as far as we can determine)\n",
    "has offered similar accuracy.**\"*\n",
    "\n",
    "This is quite a claim since Bogle\n",
    "has been involved in finance since 1951 (Princeton honors thesis),\n",
    "and is the founder of The Vanguard Group.\n",
    "\n",
    "Bogle (2015) does not show how he arrived at his model mathematically:\n",
    "\n",
    "> \"Although we find this validation of the model gratifying,\n",
    "we suspect a fit this close to the actual total return has a lot to do with *luck*.\"\n",
    "\n",
    "Perhaps he was lucky in terms of small errors between\n",
    "realized and out-of-samples results,\n",
    "but the analytics as shown in this notebook is sound.\n",
    "\n",
    "#### Summary of previous works\n",
    "\n",
    "John Bogle sought a deeper reasoning behind his expectations\n",
    "of future total return from a portfolio of equities.\n",
    "A sample explanation could be phrased as follows:\n",
    "\"I expect annual earning growth of 8%,\n",
    "and in ten years a terminal price/earning ratio of 14 --\n",
    "given that ratio is 15.5 currently,\n",
    "such a 1% reduction per annum will decrease\n",
    "the total return by like amount.\n",
    "Therefore, with a dividend yield of 3%,\n",
    "my expected total return is 8% - 1% + 3% = 10%\n",
    "over the coming decade.\"\n",
    "\n",
    "This notebook shows the (arithmetic) percentage reasoning\n",
    "is prone is large errors, whereas a logarithmic (geometric) version\n",
    "is exact. Shiller's reconstructed data since 1871 allows us to examine\n",
    "the separable components of total return:\n",
    "enterprise and speculative returns, plus dividend yield.\n",
    "An understanding of their respective contributions\n",
    "helps us to form better informed expectations of\n",
    "future total return on equities.\n"
   ]
  }
 ],
 "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
}
