Simulators

I write this to combine all simulators in the same post. We consider various models for annual total returns (nominal/real) studied in previous blog posts. I carefully checked goodness-of-fit for each regression in each model, so one can trust that innovations are independent identically distributed. Unfortunately, we cannot always guarantee innovations are Gaussian. But for returns, and often for other regressions, they in fact are Gaussian. For other regressions, they are close.

In each version, we run Monte Carlo simulations 1000 times. We allow for choice of time horizon (how many years), annual withdrawals or contributions, initial wealth, and choice of innovations: multivariate Gaussian simulation (which is not exactly true, see above) or kernel density estimation. We compute the following quantities:

  • Ruin probability
  • Average final wealth
  • The probability of the final wealth exceeding its average
  • Average total returns over the paths which do not result in ruin

We also plot five paths which end in wealth ranked bottom 10%, bottom 30%, median (50% quantile), top 30%, and top 10%. This way we give a range of all plausible outcomes. I think that plotting 5% or 1% quantiles will give an unrealistic picture.

So far I have done the following versions:

For some but not all, I allowed initial conditions to be changed. I think it’s the best to allow index level, bond spreads, and volatility but not earnings to change. Earnings are trailing, they are a bit hard to find online, and they are updated infrequently. But the other information is updated daily.

Future work will include:

  • Allowing these initial conditions (index, spreads, volatility) to be changed by the user.
  • Updating all Python files so that all use the same notation and the same data file century.xlsx.
  • Upload this data file to my web page.
  • Test the model with this new valuation measure and the three spreads, and create a simulator for this.
  • Also include both trailing earnings yield and the new valuation measure in the same regression for returns.

We need to add the following features in this simulator: Choose actions by the investor to make sure that the following events happen with given probability  p.

  • I need a given amount  C in a given number of  T years. How much do I invest now, if I contribute only at the initial time?
  • I need a given amount  C in a given number of  T years. How much do I contribute per year, if I do not invest at the initial time?
  • Starting from now, I need to withdraw  D per year during  N years. Here and below, we can have  N = \infty so we can use this money infinitely long. How much to invest now?
  • In  T years I need to withdraw  D per year during  N years. How much to invest now, if I invest only at the initial time?
  • In  T years I need to withdraw  D per year during  N years. How much to contribute in each of these  T years?
  • I have  C now and plan to spend it for  N years. How much to withdraw per year?
  • I have amount  C now and plan to contribute/withdraw  D per year during  T years. How much will I have at the end?

Published by


Responses

  1. Returns vs Bubble and Spreads – My Finance

    […] my research program, I regress S&P returns (nominal/real, price/total) upon the new valuation measure, nicknamed […]

    Like

  2. To Do List – My Finance

    […] we need to update the simulator accordingly. First, we create a complete version in Python, when we can change initial values and the simulation of residuals. Second, we create a simplified […]

    Like

Leave a comment