├── .gitignore ├── 15.451 GIC Report.docx ├── 15.451 GIC Report.pdf ├── LICENSE ├── README.md ├── README.txt ├── data ├── accounting.pkl ├── df.csv ├── df.pkl ├── ie_accounting.csv ├── ie_accounting.pkl ├── ie_data.xls ├── ie_data_copy.xls ├── ie_data_tax.csv ├── ie_data_tax_adjustments.xlsx ├── index_CPI.xlsx ├── index_Regression.xlsx ├── index_SPX 1990-2000.xlsx ├── index_SPX 2000-2011.xlsx ├── index_data.xlsx ├── index_individual_dat.csv └── sources.txt ├── notebooks ├── CAPE Ratio Regression.ipynb ├── CAPE Visualization.ipynb ├── accounting.ipynb ├── interest rate regression.ipynb ├── market index.ipynb └── taxes.ipynb ├── requirements.txt ├── research ├── GIC.docx └── Kenourgios2021_Article_OnThePredictivePowerOfCAPEOrSh.pdf └── src ├── __init__.py ├── accounting.py ├── analysis.py └── utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | .DS_Store 131 | -------------------------------------------------------------------------------- /15.451 GIC Report.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/15.451 GIC Report.docx -------------------------------------------------------------------------------- /15.451 GIC Report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/15.451 GIC Report.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Qian Capital 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Modifying-Shiller-CAPE-Ratio 2 | 3 | Developed by Nobel laureate Robert Shiller, and John Campbell, the Shiller Cyclically Adjusted P/E (CAPE) is one of the most established metrics used to evaluate whether the equity market is over-, under-, or fairly valued. The framework gained popularity amidst the dot-com bubble when it correctly warned that the U.S. sto¬ck market had run too far ahead of itself. 4 | 5 | The CAPE’s elegance lies in its simplicity. The commonly used P/E ratio reflects only one year of earnings, which could provide false si¬gnals in periods of cyclical extremes. For example, during economic recessions, the drop in corporate earnings could temporarily elevate the market P/E which normally could be interpreted as equities being overvalued. To account for such cyclical aberrations, the CAPE takes the average of the last ten years of market earnings (adjusted for inflation), and then divides the current market index price by that adjusted earnings. It thus attempts to capture relative valuations levels over business cycles rather than just one year of results. 6 | 7 | Today, the CAPE is also widely used by investors for framing long-run equity market return expectations at any point in time. Using data that spanned more than a century, Shiller & Campbell back-tested the CAPE by regressing 10-year real stock returns against the long-term average market CAPE ratio and found that the CAPE approach was statistically significant in predicting long-run equity returns. 8 | 9 | Nevertheless, the CAPE does have its limitations. At its core, the CAPE is mean reverting in orientation and is thus anchored on empirical norms. Recent critiques of this framework posit that several important presumptions may no longer hold to a significant degree. These include, but are not limited to, i) interest rate regimes; ii) accounting rules; iii) proposed changes to tax regulations and rates, especially as it pertains international income of U.S. multi-national corporations; and iv) the composition of market index. 10 | 11 | The purpose of this exercise is to examine these and other significant changes, and to come up ways to account for the more meaningful ones such that a prototypical Adjusted CAPE could be more instructive on informing how much the U.S. equity market is over- or under-valued, and to provide a perspective on expected equity returns in the current environment. 12 | 13 | 14 | ## Usage Instructions 15 | 16 | The code for performing the CAPE regressions and visualizing the results are located in the `notebooks` folder within the Jupyter Notebooks. Each of the 4 topics our team covered has a notebook to run: accounting, interest rates, market composition, taxes. Before running, please install the necessary Python libraries located in 'requirements.txt'. To do so, run: `$ pip install -r requirements.txt`. The data that we used to perform the analysis are all located in the `data` folder; this folder contains the S&P returns data and CAPE ratios that Shiller used in his original paper, along with any supplemental data that our team collected to compute an Adjusted CAPE value. This data is recorded in monthly intervals and ranges from 1871-2021. 17 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | # Modifying-Shiller-CAPE-Ratio 2 | 3 | Developed by Nobel laureate Robert Shiller, and John Campbell, the Shiller Cyclically Adjusted P/E (CAPE) is one of the most established metrics used to evaluate whether the equity market is over-, under-, or fairly valued. The framework gained popularity amidst the dot-com bubble when it correctly warned that the U.S. sto¬ck market had run too far ahead of itself. 4 | 5 | The CAPE’s elegance lies in its simplicity. The commonly used P/E ratio reflects only one year of earnings, which could provide false si¬gnals in periods of cyclical extremes. For example, during economic recessions, the drop in corporate earnings could temporarily elevate the market P/E which normally could be interpreted as equities being overvalued. To account for such cyclical aberrations, the CAPE takes the average of the last ten years of market earnings (adjusted for inflation), and then divides the current market index price by that adjusted earnings. It thus attempts to capture relative valuations levels over business cycles rather than just one year of results. 6 | 7 | Today, the CAPE is also widely used by investors for framing long-run equity market return expectations at any point in time. Using data that spanned more than a century, Shiller & Campbell back-tested the CAPE by regressing 10-year real stock returns against the long-term average market CAPE ratio and found that the CAPE approach was statistically significant in predicting long-run equity returns. 8 | 9 | Nevertheless, the CAPE does have its limitations. At its core, the CAPE is mean reverting in orientation and is thus anchored on empirical norms. Recent critiques of this framework posit that several important presumptions may no longer hold to a significant degree. These include, but are not limited to, i) interest rate regimes; ii) accounting rules; iii) proposed changes to tax regulations and rates, especially as it pertains international income of U.S. multi-national corporations; and iv) the composition of market index. 10 | 11 | The purpose of this exercise is to examine these and other significant changes, and to come up ways to account for the more meaningful ones such that a prototypical Adjusted CAPE could be more instructive on informing how much the U.S. equity market is over- or under-valued, and to provide a perspective on expected equity returns in the current environment. 12 | 13 | 14 | ## Usage Instructions 15 | 16 | The code for performing the CAPE regressions and visualizing the results are located in the `notebooks` folder within the Jupyter Notebooks. Each of the 4 topics our team covered has a notebook to run: accounting, interest rates, market composition, taxes. Before running, please install the necessary Python libraries located in 'requirements.txt'. To do so, run: `$ pip install -r requirements.txt`. The data that we used to perform the analysis are all located in the `data` folder; this folder contains the S&P returns data and CAPE ratios that Shiller used in his original paper, along with any supplemental data that our team collected to compute an Adjusted CAPE value. This data is recorded in monthly intervals and ranges from 1871-2021. 17 | -------------------------------------------------------------------------------- /data/accounting.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/accounting.pkl -------------------------------------------------------------------------------- /data/df.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/df.pkl -------------------------------------------------------------------------------- /data/ie_accounting.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/ie_accounting.pkl -------------------------------------------------------------------------------- /data/ie_data.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/ie_data.xls -------------------------------------------------------------------------------- /data/ie_data_copy.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/ie_data_copy.xls -------------------------------------------------------------------------------- /data/ie_data_tax_adjustments.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/ie_data_tax_adjustments.xlsx -------------------------------------------------------------------------------- /data/index_CPI.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/index_CPI.xlsx -------------------------------------------------------------------------------- /data/index_Regression.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/index_Regression.xlsx -------------------------------------------------------------------------------- /data/index_SPX 1990-2000.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/index_SPX 1990-2000.xlsx -------------------------------------------------------------------------------- /data/index_SPX 2000-2011.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/index_SPX 2000-2011.xlsx -------------------------------------------------------------------------------- /data/index_data.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/index_data.xlsx -------------------------------------------------------------------------------- /data/sources.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/data/sources.txt -------------------------------------------------------------------------------- /notebooks/CAPE Ratio Regression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import os\n", 10 | "import sys\n", 11 | "import numpy as np\n", 12 | "import pandas as pd\n", 13 | "import matplotlib as mlp\n", 14 | "from matplotlib import pyplot as plt\n", 15 | "import seaborn as sns\n", 16 | "%matplotlib inline\n", 17 | "mlp.style.use(\"seaborn\")\n", 18 | "import statsmodels\n", 19 | "import statsmodels.api as sm\n", 20 | "\n", 21 | "import warnings\n", 22 | "warnings.filterwarnings(\"ignore\")" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 9, 28 | "metadata": {}, 29 | "outputs": [ 30 | { 31 | "data": { 32 | "text/html": [ 33 | "
\n", 34 | "\n", 47 | "\n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | "
DateCAPEExcess_CAPE_YieldReal_Returns_EquityReal_Returns_BondExcess_Real_Returns_Equity
1201881.0118.473952-0.0104890.0453530.056468-0.011115
1211881.0218.147258-0.0113930.0467740.056199-0.009425
1221881.0318.270119-0.0131230.0424230.054885-0.012462
1231881.0417.950108-0.0075040.0459710.054635-0.008665
1241881.0518.869719-0.0088810.0411570.054786-0.013628
\n", 107 | "
" 108 | ], 109 | "text/plain": [ 110 | " Date CAPE Excess_CAPE_Yield Real_Returns_Equity \\\n", 111 | "120 1881.01 18.473952 -0.010489 0.045353 \n", 112 | "121 1881.02 18.147258 -0.011393 0.046774 \n", 113 | "122 1881.03 18.270119 -0.013123 0.042423 \n", 114 | "123 1881.04 17.950108 -0.007504 0.045971 \n", 115 | "124 1881.05 18.869719 -0.008881 0.041157 \n", 116 | "\n", 117 | " Real_Returns_Bond Excess_Real_Returns_Equity \n", 118 | "120 0.056468 -0.011115 \n", 119 | "121 0.056199 -0.009425 \n", 120 | "122 0.054885 -0.012462 \n", 121 | "123 0.054635 -0.008665 \n", 122 | "124 0.054786 -0.013628 " 123 | ] 124 | }, 125 | "execution_count": 9, 126 | "metadata": {}, 127 | "output_type": "execute_result" 128 | } 129 | ], 130 | "source": [ 131 | "ie_data = pd.read_excel(\"../data/ie_data.xls\", sheet_name=\"Data\", skiprows=7)\n", 132 | "ie_data = ie_data[[\"Date\", \"CAPE\", \"Yield\", \"Real Return\", \"Real Return.1\", \"Returns.2\"]].copy()\n", 133 | "ie_data.rename(columns={\"Yield\": \"Excess_CAPE_Yield\", \"Real Return\": \"Real_Returns_Equity\", \"Real Return.1\": \"Real_Returns_Bond\", \"Returns.2\": \"Excess_Real_Returns_Equity\"}, inplace=True)\n", 134 | "ie_data = ie_data.dropna()\n", 135 | "ie_data.head()" 136 | ] 137 | }, 138 | { 139 | "cell_type": "code", 140 | "execution_count": 24, 141 | "metadata": {}, 142 | "outputs": [ 143 | { 144 | "data": { 145 | "text/html": [ 146 | "
\n", 147 | "\n", 160 | "\n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | "
DatePDECPIFractionRate GS10PriceDividendPrice.1...CAPEUnnamed: 13TR CAPEUnnamed: 15YieldReturnsReturns.1Real ReturnReal Return.1Returns.2
01871.014.440.260.412.46411871.0416675.3297.2502715.69483697.250271...NaNNaNNaNNaNNaN1.0041771.0000000.1306090.0925040.038106
11871.024.50.260.412.84461871.1250005.3233395.6440495.52610196.104557...NaNNaNNaNNaNNaN1.0041800.9744240.1308580.0946350.036224
21871.034.610.260.413.0351871.2083335.3266796.5513275.44541197.472173...NaNNaNNaNNaNNaN1.0041830.9642090.1309510.0961860.034765
31871.044.740.260.412.55921871.2916675.33103.0345485.651684104.492692...NaNNaNNaNNaNNaN1.0041851.0049190.1220560.0909720.031084
41871.054.860.260.412.27381871.3750005.33333108.0996375.783108110.118209...NaNNaNNaNNaNNaN1.0041881.0325910.1226380.0894880.033150
\n", 310 | "

5 rows × 22 columns

\n", 311 | "
" 312 | ], 313 | "text/plain": [ 314 | " Date P D E CPI Fraction Rate GS10 Price \\\n", 315 | "0 1871.01 4.44 0.26 0.4 12.4641 1871.041667 5.32 97.250271 \n", 316 | "1 1871.02 4.5 0.26 0.4 12.8446 1871.125000 5.32333 95.644049 \n", 317 | "2 1871.03 4.61 0.26 0.4 13.035 1871.208333 5.32667 96.551327 \n", 318 | "3 1871.04 4.74 0.26 0.4 12.5592 1871.291667 5.33 103.034548 \n", 319 | "4 1871.05 4.86 0.26 0.4 12.2738 1871.375000 5.33333 108.099637 \n", 320 | "\n", 321 | " Dividend Price.1 ... CAPE Unnamed: 13 TR CAPE Unnamed: 15 Yield \\\n", 322 | "0 5.694836 97.250271 ... NaN NaN NaN NaN NaN \n", 323 | "1 5.526101 96.104557 ... NaN NaN NaN NaN NaN \n", 324 | "2 5.445411 97.472173 ... NaN NaN NaN NaN NaN \n", 325 | "3 5.651684 104.492692 ... NaN NaN NaN NaN NaN \n", 326 | "4 5.783108 110.118209 ... NaN NaN NaN NaN NaN \n", 327 | "\n", 328 | " Returns Returns.1 Real Return Real Return.1 Returns.2 \n", 329 | "0 1.004177 1.000000 0.130609 0.092504 0.038106 \n", 330 | "1 1.004180 0.974424 0.130858 0.094635 0.036224 \n", 331 | "2 1.004183 0.964209 0.130951 0.096186 0.034765 \n", 332 | "3 1.004185 1.004919 0.122056 0.090972 0.031084 \n", 333 | "4 1.004188 1.032591 0.122638 0.089488 0.033150 \n", 334 | "\n", 335 | "[5 rows x 22 columns]" 336 | ] 337 | }, 338 | "execution_count": 24, 339 | "metadata": {}, 340 | "output_type": "execute_result" 341 | } 342 | ], 343 | "source": [ 344 | "ie_data = pd.read_excel(\"../data/ie_data.xls\", sheet_name=\"Data\", skiprows=7)\n", 345 | "ie_data.drop(ie_data.tail(1).index, inplace=True) \n", 346 | "ie_data.head()" 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 27, 352 | "metadata": {}, 353 | "outputs": [ 354 | { 355 | "data": { 356 | "text/plain": [ 357 | "-0.059238835834665604" 358 | ] 359 | }, 360 | "execution_count": 27, 361 | "metadata": {}, 362 | "output_type": "execute_result" 363 | } 364 | ], 365 | "source": [ 366 | "ie_data[\"Real Return\"].min()" 367 | ] 368 | }, 369 | { 370 | "cell_type": "code", 371 | "execution_count": null, 372 | "metadata": {}, 373 | "outputs": [], 374 | "source": [ 375 | "x = 1/(np.array(ie_data[(ie_data[\"Date\"]<=2006)][\"CAPE\"]).astype(float))\n", 376 | "x = sm.add_constant(x)\n", 377 | "y = np.array(ie_data[(ie_data[\"Date\"]<=2006)][\"Real_Returns_Equity\"]).astype(float)\n", 378 | "\n", 379 | "model = sm.OLS(y, x, missing=\"drop\")\n", 380 | "summary = model.fit()\n", 381 | "summary.summary()" 382 | ] 383 | }, 384 | { 385 | "cell_type": "code", 386 | "execution_count": null, 387 | "metadata": {}, 388 | "outputs": [], 389 | "source": [ 390 | "def cape_regression(cape_values, time_period, data=ie_data):\n", 391 | " x = np.array(cape_values)\n", 392 | " x = sm.add_constant(x)\n", 393 | " model = sm.OLS(np.array(data[\"Real_Total_Return_Price\"]), x, missing=\"drop\")\n", 394 | " summary = model.fit()" 395 | ] 396 | }, 397 | { 398 | "cell_type": "code", 399 | "execution_count": null, 400 | "metadata": {}, 401 | "outputs": [], 402 | "source": [] 403 | }, 404 | { 405 | "cell_type": "markdown", 406 | "metadata": {}, 407 | "source": [ 408 | "## Taxes" 409 | ] 410 | }, 411 | { 412 | "cell_type": "code", 413 | "execution_count": null, 414 | "metadata": {}, 415 | "outputs": [], 416 | "source": [ 417 | "ie_data = pd.read_csv(\"../data/ie_data_tax.csv\", index_col=False)\n", 418 | "ie_data = ie_data[ie_data[\"Date\"]<2011.09]\n", 419 | "print(ie_data.columns)\n", 420 | "ie_data.head()" 421 | ] 422 | }, 423 | { 424 | "cell_type": "code", 425 | "execution_count": null, 426 | "metadata": {}, 427 | "outputs": [], 428 | "source": [ 429 | "preprocess = lambda x: float(x.replace(\" \", \"\").replace(\",\", \"\")) if not isinstance(x, float) else x\n", 430 | "ie_data[\"CAPE\"] = ie_data[\"CAPE\"].apply(preprocess)\n", 431 | "ie_data[\"Real_Total_Return_Price\"] = ie_data[\"Real_Total_Return_Price\"].apply(preprocess)" 432 | ] 433 | }, 434 | { 435 | "cell_type": "markdown", 436 | "metadata": {}, 437 | "source": [ 438 | "## Interest Rates" 439 | ] 440 | }, 441 | { 442 | "cell_type": "code", 443 | "execution_count": 16, 444 | "metadata": {}, 445 | "outputs": [ 446 | { 447 | "data": { 448 | "text/html": [ 449 | "
\n", 450 | "\n", 463 | "\n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | " \n", 573 | " \n", 574 | " \n", 575 | " \n", 576 | " \n", 577 | " \n", 578 | " \n", 579 | " \n", 580 | " \n", 581 | " \n", 582 | " \n", 583 | " \n", 584 | " \n", 585 | " \n", 586 | " \n", 587 | " \n", 588 | " \n", 589 | " \n", 590 | " \n", 591 | " \n", 592 | " \n", 593 | " \n", 594 | " \n", 595 | " \n", 596 | " \n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | " \n", 608 | " \n", 609 | " \n", 610 | " \n", 611 | " \n", 612 | "
DatePDECPIFractionRate GS10PriceDividendPrice.1...CAPEUnnamed: 13TR CAPEUnnamed: 15YieldReturnsReturns.1Real ReturnReal Return.1Returns.2
01871.014.440.260.412.46411871.0416675.3297.2502715.69483697.250271...NaNNaNNaNNaNNaN1.0041771.0000000.1306090.0925040.038106
11871.024.50.260.412.84461871.1250005.3233395.6440495.52610196.104557...NaNNaNNaNNaNNaN1.0041800.9744240.1308580.0946350.036224
21871.034.610.260.413.0351871.2083335.3266796.5513275.44541197.472173...NaNNaNNaNNaNNaN1.0041830.9642090.1309510.0961860.034765
31871.044.740.260.412.55921871.2916675.33103.0345485.651684104.492692...NaNNaNNaNNaNNaN1.0041851.0049190.1220560.0909720.031084
41871.054.860.260.412.27381871.3750005.33333108.0996375.783108110.118209...NaNNaNNaNNaNNaN1.0041881.0325910.1226380.0894880.033150
\n", 613 | "

5 rows × 22 columns

\n", 614 | "
" 615 | ], 616 | "text/plain": [ 617 | " Date P D E CPI Fraction Rate GS10 Price \\\n", 618 | "0 1871.01 4.44 0.26 0.4 12.4641 1871.041667 5.32 97.250271 \n", 619 | "1 1871.02 4.5 0.26 0.4 12.8446 1871.125000 5.32333 95.644049 \n", 620 | "2 1871.03 4.61 0.26 0.4 13.035 1871.208333 5.32667 96.551327 \n", 621 | "3 1871.04 4.74 0.26 0.4 12.5592 1871.291667 5.33 103.034548 \n", 622 | "4 1871.05 4.86 0.26 0.4 12.2738 1871.375000 5.33333 108.099637 \n", 623 | "\n", 624 | " Dividend Price.1 ... CAPE Unnamed: 13 TR CAPE Unnamed: 15 Yield \\\n", 625 | "0 5.694836 97.250271 ... NaN NaN NaN NaN NaN \n", 626 | "1 5.526101 96.104557 ... NaN NaN NaN NaN NaN \n", 627 | "2 5.445411 97.472173 ... NaN NaN NaN NaN NaN \n", 628 | "3 5.651684 104.492692 ... NaN NaN NaN NaN NaN \n", 629 | "4 5.783108 110.118209 ... NaN NaN NaN NaN NaN \n", 630 | "\n", 631 | " Returns Returns.1 Real Return Real Return.1 Returns.2 \n", 632 | "0 1.004177 1.000000 0.130609 0.092504 0.038106 \n", 633 | "1 1.004180 0.974424 0.130858 0.094635 0.036224 \n", 634 | "2 1.004183 0.964209 0.130951 0.096186 0.034765 \n", 635 | "3 1.004185 1.004919 0.122056 0.090972 0.031084 \n", 636 | "4 1.004188 1.032591 0.122638 0.089488 0.033150 \n", 637 | "\n", 638 | "[5 rows x 22 columns]" 639 | ] 640 | }, 641 | "execution_count": 16, 642 | "metadata": {}, 643 | "output_type": "execute_result" 644 | } 645 | ], 646 | "source": [ 647 | "ie_data.head()" 648 | ] 649 | }, 650 | { 651 | "cell_type": "code", 652 | "execution_count": 18, 653 | "metadata": {}, 654 | "outputs": [], 655 | "source": [ 656 | "# Calculate 2 and 5 Years Annualized Expected Real Equity Return\n", 657 | "n, p = ie_data.shape\n", 658 | "return_2 = []\n", 659 | "return_5 = []\n", 660 | "for i, row in ie_data.iterrows():\n", 661 | "\n", 662 | " if i+24 < n:\n", 663 | " return_2.append((ie_data.loc[i+24, \"Price.1\"]/ie_data.loc[i, \"Price.1\"])**(1/2)-1)\n", 664 | " else:\n", 665 | " return_2.append(np.nan)\n", 666 | " \n", 667 | " if i+60 < n:\n", 668 | " return_5.append((ie_data.loc[i+60, \"Price.1\"]/ie_data.loc[i, \"Price.1\"])**(1/5)-1)\n", 669 | " else:\n", 670 | " return_5.append(np.nan)\n", 671 | "\n", 672 | "ie_data[\"Real_Return_2\"] = return_2\n", 673 | "ie_data[\"Real_Return_5\"] = return_5\n", 674 | "\n", 675 | "# Calculate 2 and 5 Years Annualized Real Yield of Long-term Bond\n", 676 | "yield_2 = []\n", 677 | "yield_5 = []\n", 678 | "for i, row in ie_data.iterrows():\n", 679 | "\n", 680 | " if i-24 >= 0:\n", 681 | " yield_2.append(ie_data.loc[i, \"Rate GS10\"]/100-((ie_data.loc[i, \"CPI\"]/ie_data.loc[i-24, \"CPI\"])**(1/2)-1))\n", 682 | " else:\n", 683 | " yield_2.append(np.nan)\n", 684 | " \n", 685 | " if i-60 >= 0:\n", 686 | " yield_5.append(ie_data.loc[i, \"Rate GS10\"]/100-((ie_data.loc[i, \"CPI\"]/ie_data.loc[i-60, \"CPI\"])**(1/5)-1))\n", 687 | " else:\n", 688 | " yield_5.append(np.nan)\n", 689 | "\n", 690 | "ie_data[\"Real_Yield_2\"] = yield_2\n", 691 | "ie_data[\"Real_Yield_5\"] = yield_5" 692 | ] 693 | }, 694 | { 695 | "cell_type": "code", 696 | "execution_count": 20, 697 | "metadata": {}, 698 | "outputs": [ 699 | { 700 | "data": { 701 | "text/html": [ 702 | "
\n", 703 | "\n", 716 | "\n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | " \n", 759 | " \n", 760 | " \n", 761 | " \n", 762 | " \n", 763 | " \n", 764 | " \n", 765 | " \n", 766 | " \n", 767 | " \n", 768 | " \n", 769 | " \n", 770 | " \n", 771 | " \n", 772 | " \n", 773 | " \n", 774 | " \n", 775 | " \n", 776 | " \n", 777 | " \n", 778 | " \n", 779 | " \n", 780 | " \n", 781 | " \n", 782 | " \n", 783 | " \n", 784 | " \n", 785 | " \n", 786 | " \n", 787 | " \n", 788 | " \n", 789 | " \n", 790 | " \n", 791 | " \n", 792 | " \n", 793 | " \n", 794 | " \n", 795 | " \n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | "
Date10Y_Nominal_YieldCAPEExcess_CAPE_YieldReal_Returns_Equity_10YReal_Returns_Bond_10YExcess_Real_Returns_Equity_10YReal_Returns_Equity_2YReal_Returns_Equity_5YReal_Yield_2YReal_Yield_5Y
1201881.013.718.473952-0.0104890.0453530.056468-0.011115-0.0100910.056730-0.0297380.064821
1211881.023.6933318.147258-0.0113930.0467740.056199-0.009425-0.0188350.063602-0.0290700.062798
1221881.033.6866718.270119-0.0131230.0424230.054885-0.012462-0.0132080.059318-0.0352460.062731
1231881.043.6817.950108-0.0075040.0459710.054635-0.0086650.0088500.061809-0.0469040.059005
1241881.053.6733318.869719-0.0088810.0411570.054786-0.013628-0.0211960.051492-0.0415960.053821
\n", 806 | "
" 807 | ], 808 | "text/plain": [ 809 | " Date 10Y_Nominal_Yield CAPE Excess_CAPE_Yield \\\n", 810 | "120 1881.01 3.7 18.473952 -0.010489 \n", 811 | "121 1881.02 3.69333 18.147258 -0.011393 \n", 812 | "122 1881.03 3.68667 18.270119 -0.013123 \n", 813 | "123 1881.04 3.68 17.950108 -0.007504 \n", 814 | "124 1881.05 3.67333 18.869719 -0.008881 \n", 815 | "\n", 816 | " Real_Returns_Equity_10Y Real_Returns_Bond_10Y \\\n", 817 | "120 0.045353 0.056468 \n", 818 | "121 0.046774 0.056199 \n", 819 | "122 0.042423 0.054885 \n", 820 | "123 0.045971 0.054635 \n", 821 | "124 0.041157 0.054786 \n", 822 | "\n", 823 | " Excess_Real_Returns_Equity_10Y Real_Returns_Equity_2Y \\\n", 824 | "120 -0.011115 -0.010091 \n", 825 | "121 -0.009425 -0.018835 \n", 826 | "122 -0.012462 -0.013208 \n", 827 | "123 -0.008665 0.008850 \n", 828 | "124 -0.013628 -0.021196 \n", 829 | "\n", 830 | " Real_Returns_Equity_5Y Real_Yield_2Y Real_Yield_5Y \n", 831 | "120 0.056730 -0.029738 0.064821 \n", 832 | "121 0.063602 -0.029070 0.062798 \n", 833 | "122 0.059318 -0.035246 0.062731 \n", 834 | "123 0.061809 -0.046904 0.059005 \n", 835 | "124 0.051492 -0.041596 0.053821 " 836 | ] 837 | }, 838 | "execution_count": 20, 839 | "metadata": {}, 840 | "output_type": "execute_result" 841 | } 842 | ], 843 | "source": [ 844 | "# Select varialbles of interest and sample period\n", 845 | "df = ie_data[[\"Date\", \"Rate GS10\", \"CAPE\", \"Yield\", \"Real Return\", \"Real Return.1\", \n", 846 | " \"Returns.2\", \"Real_Return_2\", \"Real_Return_5\", \"Real_Yield_2\", \n", 847 | " \"Real_Yield_5\"]].copy()\n", 848 | "df.rename(columns={\"Rate GS10\": \"10Y_Nominal_Yield\", \"Yield\": \"Excess_CAPE_Yield\", \"Real Return\": \"Real_Returns_Equity_10Y\", \n", 849 | " \"Real Return.1\": \"Real_Returns_Bond_10Y\", \"Returns.2\": \"Excess_Real_Returns_Equity_10Y\", \n", 850 | " \"Real_Return_2\": \"Real_Returns_Equity_2Y\", \"Real_Return_5\": \"Real_Returns_Equity_5Y\", \n", 851 | " \"Real_Yield_2\": \"Real_Yield_2Y\", \"Real_Yield_5\": \"Real_Yield_5Y\"}, inplace=True)\n", 852 | "# Drop NAs, sample period: 1881.01-2011.08\n", 853 | "df_clean = df.dropna()\n", 854 | "df_clean.head()" 855 | ] 856 | }, 857 | { 858 | "cell_type": "code", 859 | "execution_count": 21, 860 | "metadata": {}, 861 | "outputs": [ 862 | { 863 | "data": { 864 | "text/html": [ 865 | "
\n", 866 | "\n", 879 | "\n", 880 | " \n", 881 | " \n", 882 | " \n", 883 | " \n", 884 | " \n", 885 | " \n", 886 | " \n", 887 | " \n", 888 | " \n", 889 | " \n", 890 | " \n", 891 | " \n", 892 | " \n", 893 | " \n", 894 | " \n", 895 | " \n", 896 | " \n", 897 | " \n", 898 | " \n", 899 | " \n", 900 | " \n", 901 | " \n", 902 | " \n", 903 | " \n", 904 | " \n", 905 | " \n", 906 | " \n", 907 | " \n", 908 | " \n", 909 | " \n", 910 | " \n", 911 | " \n", 912 | " \n", 913 | " \n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | " \n", 941 | " \n", 942 | " \n", 943 | " \n", 944 | " \n", 945 | " \n", 946 | " \n", 947 | " \n", 948 | " \n", 949 | " \n", 950 | " \n", 951 | " \n", 952 | " \n", 953 | " \n", 954 | " \n", 955 | " \n", 956 | " \n", 957 | " \n", 958 | " \n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | " \n", 964 | " \n", 965 | " \n", 966 | " \n", 967 | " \n", 968 | " \n", 969 | " \n", 970 | " \n", 971 | " \n", 972 | " \n", 973 | " \n", 974 | " \n", 975 | " \n", 976 | " \n", 977 | " \n", 978 | " \n", 979 | " \n", 980 | " \n", 981 | " \n", 982 | " \n", 983 | " \n", 984 | " \n", 985 | " \n", 986 | " \n", 987 | " \n", 988 | " \n", 989 | " \n", 990 | " \n", 991 | " \n", 992 | " \n", 993 | " \n", 994 | " \n", 995 | " \n", 996 | " \n", 997 | " \n", 998 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | " \n", 1005 | " \n", 1006 | " \n", 1007 | " \n", 1008 | " \n", 1009 | " \n", 1010 | " \n", 1011 | " \n", 1012 | " \n", 1013 | " \n", 1014 | " \n", 1015 | " \n", 1016 | " \n", 1017 | " \n", 1018 | " \n", 1019 | " \n", 1020 | " \n", 1021 | " \n", 1022 | " \n", 1023 | " \n", 1024 | " \n", 1025 | " \n", 1026 | " \n", 1027 | " \n", 1028 | "
DateCAPEExcess_CAPE_YieldReal_Returns_Equity_10YReal_Returns_Bond_10YExcess_Real_Returns_Equity_10YReal_Returns_Equity_2YReal_Returns_Equity_5YReal_Yield_2YReal_Yield_5YLog_CAPECAPE_InverseReal_Yield_10Y
count1809.0000001689.0000001689.0000001688.0000001688.0000001688.0000001785.0000001749.0000001785.0000001749.0000001689.0000001689.0000001689.000000
mean1945.94054717.2050970.0467870.0687130.0256760.0430370.0774160.0715050.0232360.0230882.7633010.0687860.021999
std43.5298127.0386010.0442690.0512650.0355200.0488570.1313410.0788100.0457580.0329920.4106620.0305770.024770
min1871.0100004.784241-0.025777-0.059239-0.054197-0.099817-0.436454-0.132330-0.147592-0.1063521.5653270.022625-0.036078
25%1908.09000011.8957600.0157110.037107-0.0014650.0128440.0019330.0192140.0048240.0071192.4761820.0478170.006579
50%1946.05000016.3784800.0349040.0684030.0224270.0360290.0748280.0722000.0231760.0225712.7959680.0610560.023181
75%1984.01000020.9130920.0667820.1056310.0564680.0651820.1605730.1213560.0408840.0391013.0403750.0840640.038826
max2021.09000044.1979400.2353400.1995850.1098180.1959840.5423230.3334650.1724170.1222523.7886780.2090200.076360
\n", 1029 | "
" 1030 | ], 1031 | "text/plain": [ 1032 | " Date CAPE Excess_CAPE_Yield Real_Returns_Equity_10Y \\\n", 1033 | "count 1809.000000 1689.000000 1689.000000 1688.000000 \n", 1034 | "mean 1945.940547 17.205097 0.046787 0.068713 \n", 1035 | "std 43.529812 7.038601 0.044269 0.051265 \n", 1036 | "min 1871.010000 4.784241 -0.025777 -0.059239 \n", 1037 | "25% 1908.090000 11.895760 0.015711 0.037107 \n", 1038 | "50% 1946.050000 16.378480 0.034904 0.068403 \n", 1039 | "75% 1984.010000 20.913092 0.066782 0.105631 \n", 1040 | "max 2021.090000 44.197940 0.235340 0.199585 \n", 1041 | "\n", 1042 | " Real_Returns_Bond_10Y Excess_Real_Returns_Equity_10Y \\\n", 1043 | "count 1688.000000 1688.000000 \n", 1044 | "mean 0.025676 0.043037 \n", 1045 | "std 0.035520 0.048857 \n", 1046 | "min -0.054197 -0.099817 \n", 1047 | "25% -0.001465 0.012844 \n", 1048 | "50% 0.022427 0.036029 \n", 1049 | "75% 0.056468 0.065182 \n", 1050 | "max 0.109818 0.195984 \n", 1051 | "\n", 1052 | " Real_Returns_Equity_2Y Real_Returns_Equity_5Y Real_Yield_2Y \\\n", 1053 | "count 1785.000000 1749.000000 1785.000000 \n", 1054 | "mean 0.077416 0.071505 0.023236 \n", 1055 | "std 0.131341 0.078810 0.045758 \n", 1056 | "min -0.436454 -0.132330 -0.147592 \n", 1057 | "25% 0.001933 0.019214 0.004824 \n", 1058 | "50% 0.074828 0.072200 0.023176 \n", 1059 | "75% 0.160573 0.121356 0.040884 \n", 1060 | "max 0.542323 0.333465 0.172417 \n", 1061 | "\n", 1062 | " Real_Yield_5Y Log_CAPE CAPE_Inverse Real_Yield_10Y \n", 1063 | "count 1749.000000 1689.000000 1689.000000 1689.000000 \n", 1064 | "mean 0.023088 2.763301 0.068786 0.021999 \n", 1065 | "std 0.032992 0.410662 0.030577 0.024770 \n", 1066 | "min -0.106352 1.565327 0.022625 -0.036078 \n", 1067 | "25% 0.007119 2.476182 0.047817 0.006579 \n", 1068 | "50% 0.022571 2.795968 0.061056 0.023181 \n", 1069 | "75% 0.039101 3.040375 0.084064 0.038826 \n", 1070 | "max 0.122252 3.788678 0.209020 0.076360 " 1071 | ] 1072 | }, 1073 | "execution_count": 21, 1074 | "metadata": {}, 1075 | "output_type": "execute_result" 1076 | } 1077 | ], 1078 | "source": [ 1079 | "df[\"Log_CAPE\"] = np.log(df[\"CAPE\"])\n", 1080 | "df[\"CAPE_Inverse\"] = 1/df[\"CAPE\"]\n", 1081 | "df[\"Real_Yield_10Y\"] = df.CAPE_Inverse - df.Excess_CAPE_Yield\n", 1082 | "# Descriptive statistics\n", 1083 | "df.describe()" 1084 | ] 1085 | }, 1086 | { 1087 | "cell_type": "markdown", 1088 | "metadata": {}, 1089 | "source": [ 1090 | "Regression given by Shiller(1996):\n", 1091 | "$$\n", 1092 | "Real Returns Equity_{t+k}=\\alpha+\\beta_k \\log{CAPE_{t}}+\\varepsilon_{t+k,k}\n", 1093 | "$$\n", 1094 | "The intuition behind the regression is that under low-interest rate regimes, CAPE is unusually high. Currently SP500 CAPE sits at 39.6, 2nd highest of all time. A high CAPE ratio suggests that equities are overvalued, resulting in low subsequent returns while a low CAPE is suggestive of higher future returns. " 1095 | ] 1096 | }, 1097 | { 1098 | "cell_type": "code", 1099 | "execution_count": 22, 1100 | "metadata": {}, 1101 | "outputs": [ 1102 | { 1103 | "name": "stdout", 1104 | "output_type": "stream", 1105 | "text": [ 1106 | " OLS Regression Results \n", 1107 | "===================================================================================\n", 1108 | "Dep. Variable: Real_Returns_Equity_10Y R-squared: 0.622\n", 1109 | "Model: OLS Adj. R-squared: 0.615\n", 1110 | "Method: Least Squares F-statistic: 88.74\n", 1111 | "Date: Wed, 01 Dec 2021 Prob (F-statistic): 5.43e-13\n", 1112 | "Time: 22:11:20 Log-Likelihood: 148.66\n", 1113 | "No. Observations: 56 AIC: -293.3\n", 1114 | "Df Residuals: 54 BIC: -289.3\n", 1115 | "Df Model: 1 \n", 1116 | "Covariance Type: nonrobust \n", 1117 | "==============================================================================\n", 1118 | " coef std err t P>|t| [0.025 0.975]\n", 1119 | "------------------------------------------------------------------------------\n", 1120 | "const 0.4565 0.038 12.034 0.000 0.380 0.533\n", 1121 | "Log_CAPE -0.1169 0.012 -9.420 0.000 -0.142 -0.092\n", 1122 | "==============================================================================\n", 1123 | "Omnibus: 7.599 Durbin-Watson: 0.065\n", 1124 | "Prob(Omnibus): 0.022 Jarque-Bera (JB): 7.285\n", 1125 | "Skew: 0.820 Prob(JB): 0.0262\n", 1126 | "Kurtosis: 2.342 Cond. No. 55.4\n", 1127 | "==============================================================================\n", 1128 | "\n", 1129 | "Warnings:\n", 1130 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 1131 | ] 1132 | } 1133 | ], 1134 | "source": [ 1135 | "# Regression of different sample period\n", 1136 | "\n", 1137 | "split = 2007.01\n", 1138 | "\n", 1139 | "reg_data = df[df.Date < split][[\"Log_CAPE\", \"Real_Returns_Equity_10Y\"]].dropna()\n", 1140 | "reg1_before = sm.OLS(reg_data.Real_Returns_Equity_10Y, sm.add_constant(reg_data[[\"Log_CAPE\"]]))\n", 1141 | "result1_before = reg1_before.fit()\n", 1142 | "\n", 1143 | "reg_data = df[df.Date >= split][[\"Log_CAPE\", \"Real_Returns_Equity_10Y\"]].dropna()\n", 1144 | "reg1_after = sm.OLS(reg_data.Real_Returns_Equity_10Y, sm.add_constant(reg_data[[\"Log_CAPE\"]]))\n", 1145 | "result1_after = reg1_after.fit()\n", 1146 | "\n", 1147 | "# Entire period\n", 1148 | "reg_data = df[[\"Log_CAPE\", \"Real_Returns_Equity_10Y\"]].dropna()\n", 1149 | "reg1_all = sm.OLS(reg_data.Real_Returns_Equity_10Y, sm.add_constant(reg_data[[\"Log_CAPE\"]]))\n", 1150 | "result1_all = reg1_all.fit()\n", 1151 | "\n", 1152 | "print(result1_after.summary())" 1153 | ] 1154 | }, 1155 | { 1156 | "cell_type": "code", 1157 | "execution_count": null, 1158 | "metadata": {}, 1159 | "outputs": [], 1160 | "source": [] 1161 | }, 1162 | { 1163 | "cell_type": "markdown", 1164 | "metadata": {}, 1165 | "source": [ 1166 | "## Accounting" 1167 | ] 1168 | }, 1169 | { 1170 | "cell_type": "code", 1171 | "execution_count": null, 1172 | "metadata": {}, 1173 | "outputs": [], 1174 | "source": [] 1175 | }, 1176 | { 1177 | "cell_type": "code", 1178 | "execution_count": null, 1179 | "metadata": {}, 1180 | "outputs": [], 1181 | "source": [] 1182 | }, 1183 | { 1184 | "cell_type": "code", 1185 | "execution_count": null, 1186 | "metadata": {}, 1187 | "outputs": [], 1188 | "source": [] 1189 | }, 1190 | { 1191 | "cell_type": "code", 1192 | "execution_count": null, 1193 | "metadata": {}, 1194 | "outputs": [], 1195 | "source": [] 1196 | }, 1197 | { 1198 | "cell_type": "code", 1199 | "execution_count": null, 1200 | "metadata": {}, 1201 | "outputs": [], 1202 | "source": [] 1203 | }, 1204 | { 1205 | "cell_type": "markdown", 1206 | "metadata": {}, 1207 | "source": [ 1208 | "## Market Composition" 1209 | ] 1210 | }, 1211 | { 1212 | "cell_type": "code", 1213 | "execution_count": null, 1214 | "metadata": {}, 1215 | "outputs": [], 1216 | "source": [] 1217 | } 1218 | ], 1219 | "metadata": { 1220 | "kernelspec": { 1221 | "display_name": "Python 3", 1222 | "language": "python", 1223 | "name": "python3" 1224 | }, 1225 | "language_info": { 1226 | "codemirror_mode": { 1227 | "name": "ipython", 1228 | "version": 3 1229 | }, 1230 | "file_extension": ".py", 1231 | "mimetype": "text/x-python", 1232 | "name": "python", 1233 | "nbconvert_exporter": "python", 1234 | "pygments_lexer": "ipython3", 1235 | "version": "3.6.8" 1236 | } 1237 | }, 1238 | "nbformat": 4, 1239 | "nbformat_minor": 2 1240 | } 1241 | -------------------------------------------------------------------------------- /notebooks/accounting.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import os\n", 10 | "import sys\n", 11 | "import numpy as np\n", 12 | "import pandas as pd\n", 13 | "import matplotlib as mlp\n", 14 | "from matplotlib import pyplot as plt\n", 15 | "import seaborn as sns\n", 16 | "%matplotlib inline\n", 17 | "mlp.style.use(\"seaborn\")\n", 18 | "import statsmodels\n", 19 | "import statsmodels.api as sm\n", 20 | "\n", 21 | "import warnings\n", 22 | "warnings.filterwarnings(\"ignore\")" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 9, 28 | "metadata": {}, 29 | "outputs": [ 30 | { 31 | "name": "stdout", 32 | "output_type": "stream", 33 | "text": [ 34 | "Index(['Unnamed: 0', 'Date_x', 'P', 'D', 'E', 'CPI', 'Date Fraction',\n", 35 | " 'Long Interest Rate GS10', 'Real Price', 'Real Dividend',\n", 36 | " 'Real TR Price ', 'Real Earnings', 'Real TR Scaled Earnings ', 'CAPE',\n", 37 | " 'TR CAPE', 'Excess CAPE Yield', 'Monthly Total Bond Returns',\n", 38 | " 'Real Total BondReturns', '10 year anualized stock real return',\n", 39 | " '10 year annualized Real Return',\n", 40 | " 'Real 10 year excess annualizedReturns', 'Real TR Price float',\n", 41 | " 'Real TR Scaled Earnings float', 'Excess CAPE Yield float',\n", 42 | " '10 year anualized stock real return float',\n", 43 | " '10 year annualized Real Return float',\n", 44 | " 'Real 10 year excess annualizedReturns float', 'proxy', 'Date_y', 'PFE',\n", 45 | " 'Real PFE', 'PFE10', 'Accounting Adjusted CAPE'],\n", 46 | " dtype='object')\n" 47 | ] 48 | }, 49 | { 50 | "data": { 51 | "text/html": [ 52 | "
\n", 53 | "\n", 66 | "\n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | "
Unnamed: 0Date_xPDECPIDate FractionLong Interest Rate GS10Real PriceReal Dividend...Excess CAPE Yield float10 year anualized stock real return float10 year annualized Real Return floatReal 10 year excess annualizedReturns floatproxyDate_yPFEReal PFEPFE10Accounting Adjusted CAPE
001871.014.440.260.412.461871.045.3297.255.69...NaN0.13069.253.81187104NaN0.48.76NaNNaN
111871.024.500.260.412.841871.135.3295.645.53...NaN0.13099.463.62187113NaN0.48.50NaNNaN
221871.034.610.260.413.031871.215.3396.555.45...NaN0.13109.623.48187121NaN0.48.38NaNNaN
331871.044.740.260.412.561871.295.33103.035.65...NaN0.12219.103.11187129NaN0.48.69NaNNaN
441871.054.860.260.412.271871.385.33108.105.78...NaN0.12268.953.31187138NaN0.48.90NaNNaN
\n", 216 | "

5 rows × 33 columns

\n", 217 | "
" 218 | ], 219 | "text/plain": [ 220 | " Unnamed: 0 Date_x P D E CPI Date Fraction \\\n", 221 | "0 0 1871.01 4.44 0.26 0.4 12.46 1871.04 \n", 222 | "1 1 1871.02 4.50 0.26 0.4 12.84 1871.13 \n", 223 | "2 2 1871.03 4.61 0.26 0.4 13.03 1871.21 \n", 224 | "3 3 1871.04 4.74 0.26 0.4 12.56 1871.29 \n", 225 | "4 4 1871.05 4.86 0.26 0.4 12.27 1871.38 \n", 226 | "\n", 227 | " Long Interest Rate GS10 Real Price Real Dividend ... \\\n", 228 | "0 5.32 97.25 5.69 ... \n", 229 | "1 5.32 95.64 5.53 ... \n", 230 | "2 5.33 96.55 5.45 ... \n", 231 | "3 5.33 103.03 5.65 ... \n", 232 | "4 5.33 108.10 5.78 ... \n", 233 | "\n", 234 | " Excess CAPE Yield float 10 year anualized stock real return float \\\n", 235 | "0 NaN 0.1306 \n", 236 | "1 NaN 0.1309 \n", 237 | "2 NaN 0.1310 \n", 238 | "3 NaN 0.1221 \n", 239 | "4 NaN 0.1226 \n", 240 | "\n", 241 | " 10 year annualized Real Return float \\\n", 242 | "0 9.25 \n", 243 | "1 9.46 \n", 244 | "2 9.62 \n", 245 | "3 9.10 \n", 246 | "4 8.95 \n", 247 | "\n", 248 | " Real 10 year excess annualizedReturns float proxy Date_y PFE Real PFE \\\n", 249 | "0 3.81 187104 NaN 0.4 8.76 \n", 250 | "1 3.62 187113 NaN 0.4 8.50 \n", 251 | "2 3.48 187121 NaN 0.4 8.38 \n", 252 | "3 3.11 187129 NaN 0.4 8.69 \n", 253 | "4 3.31 187138 NaN 0.4 8.90 \n", 254 | "\n", 255 | " PFE10 Accounting Adjusted CAPE \n", 256 | "0 NaN NaN \n", 257 | "1 NaN NaN \n", 258 | "2 NaN NaN \n", 259 | "3 NaN NaN \n", 260 | "4 NaN NaN \n", 261 | "\n", 262 | "[5 rows x 33 columns]" 263 | ] 264 | }, 265 | "execution_count": 9, 266 | "metadata": {}, 267 | "output_type": "execute_result" 268 | } 269 | ], 270 | "source": [ 271 | "df_acc = pd.read_csv(\"../data/ie_accounting.csv\")\n", 272 | "df_acc[\"10 year anualized stock real return float\"] = df_acc[\"10 year anualized stock real return float\"]/100\n", 273 | "print(df_acc.columns)\n", 274 | "df_acc.head()" 275 | ] 276 | }, 277 | { 278 | "cell_type": "markdown", 279 | "metadata": {}, 280 | "source": [ 281 | "### Modified CAPE" 282 | ] 283 | }, 284 | { 285 | "cell_type": "code", 286 | "execution_count": 14, 287 | "metadata": {}, 288 | "outputs": [ 289 | { 290 | "name": "stdout", 291 | "output_type": "stream", 292 | "text": [ 293 | " OLS Regression Results \n", 294 | "==============================================================================\n", 295 | "Dep. Variable: y R-squared: 0.348\n", 296 | "Model: OLS Adj. R-squared: 0.348\n", 297 | "Method: Least Squares F-statistic: 807.1\n", 298 | "Date: Thu, 02 Dec 2021 Prob (F-statistic): 1.32e-142\n", 299 | "Time: 03:01:00 Log-Likelihood: 2650.3\n", 300 | "No. Observations: 1513 AIC: -5297.\n", 301 | "Df Residuals: 1511 BIC: -5286.\n", 302 | "Df Model: 1 \n", 303 | "Covariance Type: nonrobust \n", 304 | "==============================================================================\n", 305 | " coef std err t P>|t| [0.025 0.975]\n", 306 | "------------------------------------------------------------------------------\n", 307 | "const 0.2779 0.008 36.627 0.000 0.263 0.293\n", 308 | "x1 -0.0789 0.003 -28.409 0.000 -0.084 -0.073\n", 309 | "==============================================================================\n", 310 | "Omnibus: 17.447 Durbin-Watson: 0.012\n", 311 | "Prob(Omnibus): 0.000 Jarque-Bera (JB): 15.549\n", 312 | "Skew: -0.195 Prob(JB): 0.000420\n", 313 | "Kurtosis: 2.692 Cond. No. 21.7\n", 314 | "==============================================================================\n", 315 | "\n", 316 | "Warnings:\n", 317 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 318 | ] 319 | } 320 | ], 321 | "source": [ 322 | "# period from 1881-2006\n", 323 | "split_period = 2007.01\n", 324 | "x = np.log((np.array(df_acc[(df_acc[\"Date_x\"]|t| [0.025 0.975]\n", 355 | "------------------------------------------------------------------------------\n", 356 | "const 0.4391 0.027 16.358 0.000 0.385 0.493\n", 357 | "x1 -0.1182 0.009 -12.670 0.000 -0.137 -0.099\n", 358 | "==============================================================================\n", 359 | "Omnibus: 9.880 Durbin-Watson: 0.096\n", 360 | "Prob(Omnibus): 0.007 Jarque-Bera (JB): 10.736\n", 361 | "Skew: 1.072 Prob(JB): 0.00466\n", 362 | "Kurtosis: 2.944 Cond. No. 45.8\n", 363 | "==============================================================================\n", 364 | "\n", 365 | "Warnings:\n", 366 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 367 | ] 368 | } 369 | ], 370 | "source": [ 371 | "# period 2007-2021\n", 372 | "split_period = 2007.01\n", 373 | "x = np.log((np.array(df_acc[(df_acc[\"Date_x\"]>=split_period)][\"Accounting Adjusted CAPE\"]).astype(float)))\n", 374 | "x = sm.add_constant(x)\n", 375 | "y = np.array(df_acc[(df_acc[\"Date_x\"]>=split_period)][\"10 year anualized stock real return float\"]).astype(float)\n", 376 | "\n", 377 | "model = sm.OLS(y, x, missing=\"drop\")\n", 378 | "summary = model.fit()\n", 379 | "print(summary.summary())" 380 | ] 381 | }, 382 | { 383 | "cell_type": "code", 384 | "execution_count": 15, 385 | "metadata": {}, 386 | "outputs": [ 387 | { 388 | "name": "stdout", 389 | "output_type": "stream", 390 | "text": [ 391 | " OLS Regression Results \n", 392 | "==============================================================================\n", 393 | "Dep. Variable: y R-squared: 0.332\n", 394 | "Model: OLS Adj. R-squared: 0.331\n", 395 | "Method: Least Squares F-statistic: 778.4\n", 396 | "Date: Thu, 02 Dec 2021 Prob (F-statistic): 2.05e-139\n", 397 | "Time: 03:52:59 Log-Likelihood: 2736.7\n", 398 | "No. Observations: 1569 AIC: -5469.\n", 399 | "Df Residuals: 1567 BIC: -5459.\n", 400 | "Df Model: 1 \n", 401 | "Covariance Type: nonrobust \n", 402 | "==============================================================================\n", 403 | " coef std err t P>|t| [0.025 0.975]\n", 404 | "------------------------------------------------------------------------------\n", 405 | "const 0.2756 0.008 36.286 0.000 0.261 0.291\n", 406 | "x1 -0.0774 0.003 -27.900 0.000 -0.083 -0.072\n", 407 | "==============================================================================\n", 408 | "Omnibus: 24.997 Durbin-Watson: 0.012\n", 409 | "Prob(Omnibus): 0.000 Jarque-Bera (JB): 21.916\n", 410 | "Skew: -0.231 Prob(JB): 1.74e-05\n", 411 | "Kurtosis: 2.652 Cond. No. 22.0\n", 412 | "==============================================================================\n", 413 | "\n", 414 | "Warnings:\n", 415 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 416 | ] 417 | } 418 | ], 419 | "source": [ 420 | "# overall period\n", 421 | "x = np.log((np.array(df_acc[\"Accounting Adjusted CAPE\"]).astype(float)))\n", 422 | "x = sm.add_constant(x)\n", 423 | "y = np.array(df_acc[\"10 year anualized stock real return float\"]).astype(float)\n", 424 | "\n", 425 | "model = sm.OLS(y, x, missing=\"drop\")\n", 426 | "summary = model.fit()\n", 427 | "print(summary.summary())" 428 | ] 429 | }, 430 | { 431 | "cell_type": "code", 432 | "execution_count": 16, 433 | "metadata": {}, 434 | "outputs": [ 435 | { 436 | "data": { 437 | "text/plain": [ 438 | "" 439 | ] 440 | }, 441 | "execution_count": 16, 442 | "metadata": {}, 443 | "output_type": "execute_result" 444 | }, 445 | { 446 | "data": { 447 | "image/png": "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\n", 448 | "text/plain": [ 449 | "
" 450 | ] 451 | }, 452 | "metadata": {}, 453 | "output_type": "display_data" 454 | } 455 | ], 456 | "source": [ 457 | "plt.figure(figsize=(10, 8))\n", 458 | "sns.regplot(df_acc[\"Accounting Adjusted CAPE\"], \n", 459 | " df_acc[\"10 year anualized stock real return float\"], \n", 460 | " label=\"Real Returns\", \n", 461 | " color='lightcoral')" 462 | ] 463 | }, 464 | { 465 | "cell_type": "code", 466 | "execution_count": null, 467 | "metadata": {}, 468 | "outputs": [], 469 | "source": [] 470 | } 471 | ], 472 | "metadata": { 473 | "kernelspec": { 474 | "display_name": "Python 3", 475 | "language": "python", 476 | "name": "python3" 477 | }, 478 | "language_info": { 479 | "codemirror_mode": { 480 | "name": "ipython", 481 | "version": 3 482 | }, 483 | "file_extension": ".py", 484 | "mimetype": "text/x-python", 485 | "name": "python", 486 | "nbconvert_exporter": "python", 487 | "pygments_lexer": "ipython3", 488 | "version": "3.6.8" 489 | } 490 | }, 491 | "nbformat": 4, 492 | "nbformat_minor": 2 493 | } 494 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pandas 2 | numpy 3 | scipy 4 | matplotlib 5 | seaborn 6 | statsmodels -------------------------------------------------------------------------------- /research/GIC.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/research/GIC.docx -------------------------------------------------------------------------------- /research/Kenourgios2021_Article_OnThePredictivePowerOfCAPEOrSh.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/research/Kenourgios2021_Article_OnThePredictivePowerOfCAPEOrSh.pdf -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/src/__init__.py -------------------------------------------------------------------------------- /src/accounting.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | plt.style.use("seaborn") 4 | 5 | df_acc = pd.read_pickle("../data/accounting.pkl") 6 | df_ie = pd.read_pickle("../data/df.pkl") 7 | 8 | def date_to_fraction(dt): 9 | return int(dt.year)+(int(dt.month)-1)/12+(int(dt.day))/30/12 10 | 11 | df_acc["Date Fraction"]=df_acc["Date"].apply(date_to_fraction) 12 | 13 | plt.plot(df_ie["Date Fraction"], df_ie["E"], label="(Nominal) E") 14 | plt.plot(df_acc["Date Fraction"], df_acc["PFE"], label="PFE") # Nominal 15 | plt.axvline(x=2000, color='r', linestyle='--') 16 | plt.legend(); plt.savefig("Earning_series.png"); plt.clf() 17 | 18 | # Marge the dataframes on Date-oFraction 19 | # Use int(Date Fraction * 100) as a proxy to perform merge 20 | initial_df_ie_len = len(df_ie) 21 | 22 | df_ie["proxy"]=(df_ie["Date Fraction"]*100).astype(int) 23 | df_acc["proxy"]=(df_acc["Date Fraction"]*100).astype(int) 24 | df_acc.drop(columns=["Date Fraction"], inplace=True) # Avoid Multiple columns 25 | df_acc.drop_duplicates(subset=["proxy"], inplace=True) 26 | df_ie = pd.merge(left=df_ie, right=df_acc, on="proxy", how="left") 27 | df_ie.loc[df_ie.PFE.isna(), "PFE"]=df_ie.loc[df_ie.PFE.isna()]["E"] 28 | 29 | assert initial_df_ie_len==len(df_ie) 30 | 31 | df_ie["Real PFE"] = df_ie["PFE"]*(df_ie["Real Earnings"]/df_ie["E"]) 32 | # Plot the two Real Earning Series 33 | plt.plot(df_ie["Date Fraction"], df_ie["Real Earnings"], label="(Nominal) E") 34 | plt.plot(df_ie["Date Fraction"], df_ie["Real PFE"], label="PFE") # Real 35 | plt.axvline(x=2000, color='r', linestyle='--') 36 | plt.legend(); plt.savefig("Earning_series_real.png"); plt.clf() 37 | 38 | df_ie["PFE10"] = df_ie["Real PFE"].rolling(window=120, min_periods=120).mean() 39 | df_ie["Accounting Adjusted CAPE"] = df_ie["Real Price"]/df_ie["PFE10"] 40 | 41 | plt.plot(df_ie["Date Fraction"], df_ie["CAPE"],label="CAPE (GAAP)") 42 | plt.plot(df_ie["Date Fraction"], df_ie["Accounting Adjusted CAPE"], label="CAPE (Pro-Forma)") 43 | plt.legend(); plt.savefig("CAPE_comparison.png"); plt.clf() 44 | 45 | df_ie.to_pickle("../data/ie_accounting.pkl") 46 | -------------------------------------------------------------------------------- /src/analysis.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import matplotlib.pyplot as plt 4 | import matplotlib as mlp 5 | import seaborn as sns 6 | mlp.style.use("seaborn") 7 | 8 | df=pd.read_pickle("../data/df.pkl") 9 | df['E10'] = df['Real Earnings'].rolling(window=120, min_periods=120).mean() 10 | df["P/E10"] = df['Real Price'] / df['E10'] 11 | # Plot P 12 | plt.plot(df["Date Fraction"], df["Real Price"]) 13 | plt.title("Historical S&P Prices") 14 | plt.xlabel("Date") 15 | plt.ylabel("Stock Price, P") 16 | plt.savefig("SPY.png") 17 | plt.clf() 18 | # Plot E 19 | plt.plot(df["Date Fraction"], df["Real Earnings"], label="E") 20 | plt.plot(df["Date Fraction"], df["E10"], label="E10") 21 | plt.title("Historical S&P Earnings") 22 | plt.xlabel("Date") 23 | plt.ylabel("Earnings, E") 24 | plt.legend() 25 | plt.savefig("E.png") 26 | plt.clf() 27 | # Plot D 28 | plt.plot(df["Date Fraction"], df["Real Dividend"]) 29 | plt.title("Historical S&P Dividends") 30 | plt.xlabel("Date") 31 | plt.ylabel("Dividends, D") 32 | plt.savefig("D.png") 33 | plt.clf() 34 | # Plot CAPE 35 | plt.plot(df["Date Fraction"], df["CAPE"], label="CAPE") 36 | plt.plot(df["Date Fraction"], df["P/E10"], label="CAPE_Reconstructed") 37 | plt.title("Historical S&P CAPE") 38 | plt.xlabel("Date") 39 | plt.ylabel("P/E10") 40 | plt.legend() 41 | plt.savefig("CAPE.png") 42 | plt.clf() 43 | 44 | # Plot log(CAPE) log(E10_t+1/E10_t) 45 | df["10 yr. MAE growth"] = np.log(df.E10.shift(-12)/df.E10.shift())/10 46 | plt.xscale('log') 47 | plt.scatter(df["CAPE"], df["10 yr. MAE growth"]) 48 | plt.ylabel("10 Year MA(E) Growth") 49 | plt.xlabel("CAPE, P/E10") 50 | plt.title("Ten Year MA(E) Growth vs CAPE") 51 | plt.savefig("E6A.png") 52 | plt.clf() 53 | 54 | # Plot log(CAPE) log(P_{t+10*12} /P_t) 55 | df["10 yr. P growth"] = np.log(df.P.shift(-120)/df.P)/10 56 | plt.xscale('log') 57 | plt.scatter(df["CAPE"], df["10 yr. P growth"]) 58 | plt.ylabel("10 Year P Growth") 59 | plt.xlabel("CAPE, P/E10") 60 | plt.title("Ten Year Price Growth vs CAPE") 61 | plt.savefig("E6B.png") 62 | plt.clf() 63 | 64 | # Plot Sparsely 65 | df_sparse=df[::6] 66 | df_sparse_old=df_sparse.loc[df_sparse["Date Fraction"]<=1996] 67 | df_sparse_new=df_sparse.loc[df_sparse["Date Fraction"]>1996] 68 | # plt.xscale('log') 69 | plt.scatter(df_sparse_old["CAPE"], df_sparse_old["10 yr. MAE growth"], label="1881-2006") 70 | plt.scatter(df_sparse_new["CAPE"], df_sparse_new["10 yr. MAE growth"], label="2007-2021") 71 | plt.ylabel("10 Year MA(E) Growth") 72 | plt.xlabel("CAPE, P/E10") 73 | plt.title("Ten Year MA(E) Growth vs CAPE") 74 | plt.legend() 75 | plt.savefig("E6A_sparse.png") 76 | plt.clf() 77 | # plt.xscale('log') 78 | plt.scatter(df_sparse_old["CAPE"], df_sparse_old["10 yr. P growth"], label="1881-2006") 79 | plt.scatter(df_sparse_new["CAPE"], df_sparse_new["10 yr. P growth"], label="2007-2021") 80 | plt.legend() 81 | plt.ylabel("10 Year Price Growth") 82 | plt.xlabel("CAPE, P/E10") 83 | plt.title("Ten Year Price Growth vs CAPE") 84 | plt.savefig("E6B_sparse.png") 85 | plt.clf() 86 | 87 | # Plot Sparsely With Regression Lines 88 | # plt.xscale('log') 89 | sns.regplot(x="CAPE", y="10 yr. MAE growth",data=df_sparse_old, label="1881-2006") 90 | sns.regplot(x="CAPE", y="10 yr. MAE growth",data=df_sparse_new, label="2007-2021") 91 | plt.ylabel("10 Year MA(E) Growth (Annualized)") 92 | plt.xlabel("CAPE, P/E10") 93 | plt.title("Ten Year MA(E) Growth vs CAPE") 94 | plt.legend() 95 | plt.savefig("E6A_sparse_sns.png") 96 | plt.clf() 97 | # plt.xscale('log') 98 | sns.regplot(x="CAPE", y="10 yr. P growth",data=df_sparse_old, label="1886-2006") 99 | sns.regplot(x="CAPE", y="10 yr. P growth",data=df_sparse_new, label="2007-2021") 100 | plt.legend() 101 | plt.ylabel("10 Year Price Growth (Anualized)") 102 | plt.xlabel("CAPE, P/E10") 103 | plt.title("Ten Year Price Growth vs CAPE") 104 | plt.savefig("E6B_sparse_sns.png") 105 | plt.clf() 106 | 107 | # Plot In buckets 108 | df["CAPE quintile"]=pd.qcut(df["CAPE"], 5, labels=False) 109 | sns.boxplot(x="CAPE quintile", y="10 yr. P growth", data=df) 110 | plt.savefig("CAPE_decile_all.png"); plt.clf() 111 | df["time"]="1886-2006" 112 | df.loc[df["Date Fraction"]>1996, "time"]="2007-2021" 113 | sns.boxplot(x="CAPE quintile", y="10 yr. P growth", data=df, hue="time") 114 | plt.savefig("CAPE_decile_hued.png"); plt.clf() 115 | # Changing the decile to be time-wise 116 | df.loc[df["Date Fraction"]<=1996, "CAPE quintile"]=pd.qcut(df.loc[df["Date Fraction"]<=1996]["CAPE"], 5, labels=False) 117 | df.loc[df["Date Fraction"]>1996, "CAPE quintile"]=pd.qcut(df.loc[df["Date Fraction"]>1996]["CAPE"], 5, labels=False) 118 | df_old=df.loc[df["Date Fraction"]<=1996] 119 | df_new=df.loc[df["Date Fraction"]>1996] 120 | sns.boxplot(x="CAPE quintile", y="10 yr. P growth", data=df_old); sns.regplot(x="CAPE quintile", y="10 yr. P growth", scatter=False, data=df_old); plt.title("1886-2006");plt.savefig("CAPE_decile_old.png"); plt.clf() 121 | sns.boxplot(x="CAPE quintile", y="10 yr. P growth", data=df_new); sns.regplot(x="CAPE quintile", y="10 yr. P growth", scatter=False, data=df_new); plt.title("2007-2021");plt.savefig("CAPE_decile_new.png"); plt.clf() 122 | sns.boxplot(x="CAPE quintile", y="10 yr. P growth", data=df, hue="time"); sns.regplot(x="CAPE quintile", y="10 yr. P growth", scatter=False, data=df_old);sns.regplot(x="CAPE quintile", y="10 yr. P growth", scatter=False, data=df_new); plt.savefig("CAPE_quintile_timewise_hued.png"); plt.clf() 123 | -------------------------------------------------------------------------------- /src/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samsonq/Modifying-Shiller-CAPE-Ratio/50cc84d145d0c79849b88dc49fc574f87102825c/src/utils.py --------------------------------------------------------------------------------