Enhanced Monte Carlo Simulation


Traditional Monte Carlo simulation involves generating a random series of hypothetical numbers dispersed around a specified mean and standard deviation.  Typically, one would choose an average yearly return and standard deviation similar to what has been seen in the past and generate a new sequence numbers that looks like what has been seen in the past but differs from year to year.  For example, if the S&P 500 averages 12% yearly returns and the standard deviation is 21% per year then one might plug these numbers into the Monte Carlo simulator and see how the hypothetical portfolio would have performed over the years.  This can be done hundreds or thousands of times to generate a distribution of results.

There are some problems with this approach, however.  The following two-part series outlines my approach to Monte Carlo simulation which I believe has significant advantages over conventional Monte Carlo methodology.

Part I

My simulator is based on the Monte Carlo method but with one very important exception. Monte Carlo methodology does not allow for "reversion to the mean" - in other words the tendency of long periods of underperformance to usually be followed by out performance and vice versa. Monte Carlo simulators don't correct for this, i.e. a string of high returns is just as likely to be followed by another string of high returns and vice versa.  This tends to lead to overly pessimistic determinations for "safe"  withdrawal rates (SWRs) for retirement portfolios.

What I did was create a random number generator where the standard deviation of returns was approximately equal to the historical norm. I set the average return to whatever number I want (more on this later). If the random number sequence is not within a certain tolerance I set then it is thrown out, either because the mean or standard deviation are off or there is no mean reversion tendency from the number sequence. This typically means rejecting around 97-99% of the number sequences.

The tendency to mean revert is manifest by the long term standard deviation (SD) of a return sequence being smaller than would be predicted from the short term SD.  For example, if the one year SD is 18% then you would expect the 30 year SD to be 18/sqrt(30) or about 3.3%. In practice, however, it is about half that for most equity markets, including ours, likely because of mean reversion. To correct for inflation I use only real returns for the simulator.

I usually generate multiple random sequences of 75 years which, if not rejected for reasons described above, are used for a simulated very long retirement (I have made it 55 years long since I am retired in my 40's and have designs on living to 100 - haha!). I arbitrarily pick the middle 55 years of the 75 year period for the simulated retirement. I run this 1000 times and look a the results for various withdrawal rates.

For example, historically a 75:25 mix of the S&P500:fixed income gave a compound annual return of 5.6% with a one year SD of 15.2% and a 40 year SD of 0.76%.  If I run these portfolio factors through my simulator I get 1000 75-year periods where the compound annual return ranged from 4.4% to 6.8% and the one and 40 year SD's are within a 10% tolerance window (i.e. 15.2% +/- 1.52% and 0.76% +/- 0.076%). For a simulated 4% withdrawal rate I come up with an 89% success rate for 55 years, not too far from the 95% success rate actually observed from 1927-2001. Here is how that looks graphed out (red dots = financial ruin at 4%):

So what if future real equity returns are in the 3-4% range as predicted by the dividend discount model and virtually all other valuation models at the time of this writing (summer 2003)? Well, if I run the same 75:25 mix through the simulator changing only the average return for the S&P500 to reflect a 3.5% real return we get a very different looking chart for a 4% withdrawal rate:

Here the portfolio returns range from 2.3 to 4.7% but the SD's are kept the same. For fixed income I used intermediate bonds in both simulations - both times I plugged in the historical compound annual growth rate (CAGR) of 2% (real) for the bond returns. The failure rate is 52%!

So what I'm saying here is that if we get around 3.5% and 2% returns for stocks and bonds, respectively, along with historical average volatility you would have a roughly 50:50 chance of going broke in less than 55 years with a 4% inflation-adjusted annual withdrawal rate from a conventional 75:25 portfolio mix.

Part II

Simulation would seem to be a good way to get a handle on how reliable a SWR (safe withdrawal rate) determination is. In other words, what is the standard deviation of , say, a 4% withdrawal rate calculation.

Here's a stab at it. First I looked at what we actually saw for the last 130 years for a 55 yr. withdrawal period:

Actual portfolio values (75:25 S&P500:Commercial paper, 0.2% annual expenses) observed since 1871:

  • Compound annual real return for portfolio: 5.7%
  • Std. dev. of portfolio for 1, 10, and 40 years: SD1 = 13.6%, SD10 = 3.13%, SD40 = 1.08%
  • Success rate = 86% @ 4% annual inflation-adjusted withdrawal for 55 years (109 overlapped periods, some partial)
  • Mean safe withdrawal rate (SWR) : 5.68% (109 overlapped periods, some partial)

  • Now for my simulations:

    First simulation (1000 separate 75 year runs, middle 55 years of each run used, same rate of return and volatility as seen historically):

  • Compound annual real return for portfolio: avg = 5.7% (4.6 - 6.9%)
  • SD1, SD10, SD40: same as historical values above (+/- 10% tolerance)
  • Success rate = 87% @ 4% annual withdrawal
  • Mean safe withdrawal rate (SWR) : 5.93% (SD = 1.81%)

  • Here is the scatter plot of the simulation:

    As you can see, the 4% success rate and mean SWR are very similar for the historical data and my simulated results, giving me confidence that the simulation method is sound.

    The main item of interest to me is the SD of the simulation's mean SWR, 1.81%. What this means to me is if we have the same average returns and volatility (SD1, 10, & 40) in the future compared to the past then a retiree could expect only an 68% chance that his SWR will be between 4.12 and 7.74%. This leaves a roughly 16% chance that the SWR may turn out to be over 7.74% and, more importantly, nearly a 16% chance that it will be below the 4% number that is bandied about as being "100% safe" according to some who cite historical studies and assume that "the future will be no worse than the past".  In fact, both the historical results and my simulation show that there is nearly the predicted 16% chance of failure at a 4.12% withdrawal rate (mean minus one SD). Here are the failure rates I get with withdrawal rates of 2-7% in the simulation:

    SET 1

    7%: 72.1%
    6%: 54.1%
    5%: 31.4%
    4%: 13.3%
    3%: 2.0%
    2%: 0.0%

    These numbers vary a little from run to run but not by much. 1000 non-overlapped periods seems to be adequate. Anything more is overkill in my opinion since no one knows what future returns will look like. I feel that there is is good reason to believe that returns will less in the future. This would lower the SWR a lot.

    Also clear to me is that the historical data is woefully inadequate for establishing an accurate long-term SWR since it consists of only about 130 years with considerable data overlap. In fact, there are barely two non-overlapping 55 yr. periods vs. 1000 in my simulation. I used to cringe when I'd see a statement on Internet discussion boards like "a 4% withdrawal rate for 30 years is 96.56% safe". That sort of 2 or 3 place decimal notation ascribes WAY too much precision to any such conclusion.

    While I think my simulator gives me a very good idea of what a SWR would be at a given portfolio rate of return and volatility it is limited by the inability to know what these numbers will be in the future. If for example, the S&P500 returns an inflation-adjusted 3.5% per year for the next few decades which seems likely to smart people such as Wm Bernstein, Warren Buffet, etc. then the failure rates would look something like this:

    SET 2

    7%: 95.8%
    6%: 89.6%
    5%: 74.7%
    4%: 50.8%
    3%: 22.0%
    2%: 2.4%

    Compare this to Set 1 above and you'll see the difference that only a 2.2% per year difference in returns can make in the SWR realized by the investor.

    Similarly, modest changes in portfolio volatility also can make a big difference. Here I increased the yearly portfolio SD by 2% but left the rate of return at the same historical annual arithmetic average of 6.7% which yields a geometric (compound) average return of about 5.4% (lower than the 5.7% cited above because of increased volatility). The failure rates:

    SET 3

    7%: 74.7%
    6%: 58.4%
    5%: 42.5%
    4%: 23.3%
    3%: 6.3%
    2%: 0.1%

    These numbers look better than Set 2 but still show that a slightly more volatile portfolio would have roughly double the number of failures at 4% compared to the historical norm (23.3% vs. 13.3%).


    Last edited: 06/28/2004


    Home ]