Perl Actuarial Monte-Carlo Retirement Simulator

Discuss all general (i.e. non-personal) investing questions and issues, investing news, and theory.
Post Reply
User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Perl Actuarial Monte-Carlo Retirement Simulator

Post by gordoni2 » Tue Mar 10, 2009 11:07 pm

I have written what I am calling an actuarial Monte-Carlo retirement simulator that I thought I would share and get some feedback on.

Shiller provides a wonderful data set of historical stock market returns. And the U.S. government provides actuarial data on the probability of death as a function of age, so the idea is to combine them, and instead of picking a fixed time period for which to run a Monte-Carlo simulation, run it until both parties in a couple have died.

Two things I have learned from this simulator that really matter for retirement are how many additional years of work you intend to put in before retiring, and the average return you estimate for the stock market. The default value I have been using for the expected average stock market return (with characteristic excess precision) is 5.2% in a tax free account, or 3.6% in a taxable account. When using the simulator I would strongly recommend performing a sensitivity analysis to see what happens when these two parameters are varied by plausable amounts.

I guess I am interested in any warnings on the design of the simulator that may render it misleading (I'm trying to use it to help in my retirement planning, so any flaws matter). The two biggest weaknesses I am aware of are not simulating bonds more accurately (the simulator is most meaningful if like me you plan to primarily hold TIPS). And only having very crude ways to vary the asset allocation over time (rebalance each year, consume bonds first, consume stock first).

I've provide the technical description of the simulator below so you don't have to retrieve the code to provide feedback.

It is a Perl script, and doesn't provide a web interface. It can be downloaded here:

http://www.gordoni.com/economics/amcrs-0.1.perl

Also use the above link if you want to see a list of the parameters that can be set in the simulator and their justifications.

I understand the caveats about garbage-in garbage-out. To me a though a monte-carlo simulator is more like a sharp knife, dangerous in the wrong hands, but a useful tool when it comes to helping to skin this beast called retirement planning.

thanks,
gordon

----------------------------------------------------------------

This retirement simulator simulates an initial set of assets with a savings accumation phase followed by an income withdrawl retirement phase. The results associated with holding different ratios of bonds/stocks are reported.

The reported results show the probability of dying without running out of money (success), as well as various percentile levels of the amount of money still available at death for the different runs of the simulator. For a couple the death of one partner reduces the amount of income required to support the other partner, but simulation continues untill both partners are dead.

An actuarial model of longevity is employed, in which the probability of death each year is taken from the U.S. Life Tables. Separate tables are used for males and females.

A simulation parameter can be used to specify that whenever the total portfolio exceeds a certain limit, the amount over the limit will be given to charity or friends/relatives. The total amount given over the life of the simulation is reported.

Equity returns are based on the returns reported by Shiller, but with the mean return adjusted to match a specified simulation parameter. This is because it seems unlikely that the return values of the past will be repeated, but they are still informative in setting the volatility of future returns. By default the simulation uses returns from 1926 on, but if desired this parameter can be set as far back as 1872.

To simulate diversification beyond U.S. equities the simulation allows a second equity class with returns derived from the same time datapoints as the first, but in a different order, with a different standard deviation, and partially correlated to the first sequence. This can be used to simulate international holdings.

Bond returns are assumed to be a fixed amount per year after adjusting for inflation, and as such most closely model short term TIPS.

All input values and reported values are adjusted for inflation.

User avatar
grayfox
Posts: 4936
Joined: Sat Sep 15, 2007 4:30 am

Post by grayfox » Wed Mar 11, 2009 1:51 am

Nice work! I will try to find time to play with it.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Mon Sep 21, 2009 4:18 pm

The Perl Actuarial Monte Carlo Retirement Simulator I mentioned 6 months ago has morphed into a PHP Actuarial Monte Carlo Retirement Simulator. Meaning that it is no longer necessary to download it to run it, you can now run it from the web. It is available at:

http://www.gordoni.com/economics/hars.php

Primary features: Rather than run for a fixed 30 years the simulator uses the U.S. Life Tables of mortality with separate tables used for men and women. Simulation is performed for a couple with reduced cost of living when one party has died. Ability to give assets above some threshold to charity/relatives/friends. Ability to hold a proportion of equity assets in a form that is only partially correlated to the primary assets, such as international stocks. Assets can be rebalanced, or depleted on a equity first or bonds first basis. Historical returns can be replayed at random (the more EMH approach) or in looped historical order (the more behavioralist approach since it exhibits reversion to the mean). This last feature makes a significant difference to achieving financial goals, with looped historical order being easier.

Feedback and especially any bug reports are most welcome.
Last edited by gordoni2 on Tue Sep 22, 2009 3:36 pm, edited 1 time in total.

dbr
Posts: 27207
Joined: Sun Mar 04, 2007 9:50 am

Post by dbr » Mon Sep 21, 2009 6:44 pm

It seems evident that an MC model which requires specification of a mean (and standard deviation) for the return distribution cannot allow enough variability to properly represent the uncertainty in outcome. Perhaps someone can discuss the methodology that is appropriate to cases where precisely the expected return and expected variability in return is what is to be varied.
Last edited by dbr on Mon Sep 21, 2009 8:06 pm, edited 1 time in total.

livesoft
Posts: 62776
Joined: Thu Mar 01, 2007 8:00 pm

Post by livesoft » Mon Sep 21, 2009 6:56 pm

Have you read Jim C. Otar's severe criticisms of MC simulators? How do you address those criticisms?

User avatar
nisiprius
Advisory Board
Posts: 36880
Joined: Thu Jul 26, 2007 9:33 am
Location: The terrestrial, globular, planetary hunk of matter, flattened at the poles, is my abode.--O. Henry

Post by nisiprius » Mon Sep 21, 2009 8:44 pm

This is really a philosophical issue, and a generic one... this is just more brooding about systematic withdrawal plans in general. I start to feel my mind boggle whenever I confront it... like those old logical paradoxes.

What good does it do to know my statistical probability of "success" when in fact I have my sample size is 1? If I run out of money at age 95, does it do me any good to know that the chances of that happening were only 5%?

In the case of an insurance company offering a fixed annuity product, of course it does, because they are dealing with a large population and the average is meaningful. The average tells them how much money they must collect from a large group of people in order to pay it back to that same group and have none of them run out of money. Furthermore they are collecting a profit and have deep pockets and a margin of error, so if by chance their group is a bit healthier than they figured, due to sampling error, the longest-lived people in that group still don't run out of money, the insurance company just makes a tad less profit.

In the case of a single individual, can someone actually say "I am consciously deciding to take a 5% risk of running out of money" and mean it?

Don't all these SWR systems need to be revamped, so that instead of running out of money, the worst-case scenario is a reduced income? For example, use the Vanguard withdrawal strategy embodied in their managed payout fund, and use the Monte Carlo simulation to show the probability distribution of the lowest year's payout... or something like that?
Annual income twenty pounds, annual expenditure nineteen nineteen and six, result happiness; Annual income twenty pounds, annual expenditure twenty pounds ought and six, result misery.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Tue Sep 22, 2009 12:10 am

livesoft wrote:Have you read Jim C. Otar's severe criticisms of MC simulators? How do you address those criticisms?
I hadn't, but I have now. Perhaps Monte-Carlo is the wrong name for the simulator I wrote. The simulator is using historical returns as recorded by Shiller to drive the financial component of the simulation, rather than returns generated from a probability distribution as is done in classical Monte-Carlo simulators. On the other hand deciding whether an individual or couple are still alive each year is done using classical role the dice Monte-Carlo techniques.

Turning to Jim's criticisms:

FLAW #1: The first flaw of the MC is how it generates randomness.

My simulator uses historical returns rather than some mathematical distribution.

FLAW #2: The second flaw of MC is that the outcomes it generates are random. It ignores the effects of secular trends.

My simulator can be run in one of two modes: looped historical sequence and random. When returns are simulated in looped historical sequence it will capture these secular trends, such as reversion to mean. Running in looped historical sequence does though limit the breadth of the input data to the number of start years, it is more of a historical replay mode. This strikes me as similar to the Otar Retirement Calculator.

FLAW #3: The third flaw of MC is that ignores the correlation between the market events.

Running in looped historical sequence mode would overcome this flaw.

FLAW #4: The fourth flaw of MC is the unrealistic sequence of outcomes.

This strikes me as a rephrasing of flaws 2 and 3.

To me Monte-Carlo simulators are a tool used for retirement planning, and most of the value of Monte-Carlo simulators comes not from a single run and a single answer, but from comparing runs as parameters are changed. How does depleting my equity first compare to annually rebalancing my portfolio? What if the expected return on equities is 1% lower than I forecast? What if I work another 5 years?

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Tue Sep 22, 2009 12:18 am

dbr wrote:Perhaps someone can discuss the methodology that is appropriate to cases where precisely the expected return and expected variability in return is what is to be varied.
The simple answer would be to perform multiple runs in which you vary the expected return and expected variability, and see if and how the results change. My simulator allows you to vary the expected return, but not the expected variability in return. It probably wouldn't be hard to add though.

dbr
Posts: 27207
Joined: Sun Mar 04, 2007 9:50 am

Post by dbr » Tue Sep 22, 2009 9:40 am

Somewhere that I can't currently find, Milevsky developed a closed form model for retirement ruin with longevity. Using that formula one could presumably run MC analysis to establish the sensitivity of the model to the inputs.

dbr
Posts: 27207
Joined: Sun Mar 04, 2007 9:50 am

Post by dbr » Tue Sep 22, 2009 9:41 am

gordoni2 wrote:
dbr wrote:Perhaps someone can discuss the methodology that is appropriate to cases where precisely the expected return and expected variability in return is what is to be varied.
The simple answer would be to perform multiple runs in which you vary the expected return and expected variability, and see if and how the results change. My simulator allows you to vary the expected return, but not the expected variability in return. It probably wouldn't be hard to add though.
That would be good. There seems to be a paucity of studies where the result is actually published, however.

livesoft
Posts: 62776
Joined: Thu Mar 01, 2007 8:00 pm

Post by livesoft » Tue Sep 22, 2009 10:02 am

Thanks for the feedback on "MC". I would suggest that since you use historical returns from Shiller that you not call this a "Monte-Carlo retirement simulator". I gather from your explanation that the MC part is only a death simulator. :)

Also I want to point out that if one knows exactly when they are gonna die, then retirement planning is a lot simpler.

walkinwood
Posts: 72
Joined: Wed Sep 05, 2007 10:57 am
Location: Denver, CO

Post by walkinwood » Tue Sep 22, 2009 10:19 am

dbr wrote:Somewhere that I can't currently find, Milevsky developed a closed form model for retirement ruin with longevity. Using that formula one could presumably run MC analysis to establish the sensitivity of the model to the inputs.
Here it is
http://www.ifid.ca/pdf_newsletters/PFA_2007APR_RUIN.pdf

He also discusses it in his book Are you a Stock or a Bond?

dbr
Posts: 27207
Joined: Sun Mar 04, 2007 9:50 am

Post by dbr » Tue Sep 22, 2009 10:21 am

Thanks

walkinwood
Posts: 72
Joined: Wed Sep 05, 2007 10:57 am
Location: Denver, CO

Post by walkinwood » Tue Sep 22, 2009 10:24 am

gordoni2 wrote:
livesoft wrote:
FLAW #1: The first flaw of the MC is how it generates randomness.

My simulator uses historical returns rather than some mathematical distribution.

FLAW #2: The second flaw of MC is that the outcomes it generates are random. It ignores the effects of secular trends.

My simulator can be run in one of two modes: looped historical sequence and random. When returns are simulated in looped historical sequence it will capture these secular trends, such as reversion to mean. Running in looped historical sequence does though limit the breadth of the input data to the number of start years, it is more of a historical replay mode. This strikes me as similar to the Otar Retirement Calculator.

FLAW #3: The third flaw of MC is that ignores the correlation between the market events.

Running in looped historical sequence mode would overcome this flaw.
Can you explain why you need to know the future real, after tax return of equities if you're using historical returns and a loop back?

I like the calculator. Simple and fast so that you can do just what you recommend - evaluate effect of results on different input parameters.

I don't find the "Worst case assets..." column to be meaningful. A rate of ruin will be more meaningful - what percentage of the runs ended up in ruin or the mean age at which the portfolio was depleted would be more useful to me.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Tue Sep 22, 2009 3:34 pm

walkinwood wrote:Can you explain why you need to know the future real, after tax return of equities if you're using historical returns and a loop back?
The expected real returns input is used to determine the mean value for the simulated returns, while the historical returns are used to predict their variability. This is because it seems unlikely that the future mean return will mirror the past. An aging population and a declining birthrate are expected to shave around 0.9% off of GDP in the comming decades. And in the long term stock returns are tied to GDP. Generally I've tried to be conservative in the simulator and if their is a potential negative factor that could effect simulation results, have tried to expose it.
walkinwood wrote:I don't find the "Worst case assets..." column to be meaningful.
Deleted.
livesoft wrote:I would suggest that since you use historical returns from Shiller that you not call this a "Monte-Carlo retirement simulator". I gather from your explanation that the MC part is only a death simulator.
That makes sense. Changed. It is now called HARS - Historical Actuarial Retirement Simulator.

http://www.gordoni.com/economics/hars.php

User avatar
bob90245
Posts: 6511
Joined: Mon Feb 19, 2007 8:51 pm

Post by bob90245 » Tue Sep 22, 2009 3:48 pm

gordoni2 wrote:And in the long term stock returns are tied to GDP.
I vaguely recall reading this before (from Larry Swedroe or Jeremy Siegel?). From what I remember, this is not true. Can others confirm this?
Ignore the market noise. Keep to your rebalancing schedule whether that is semi-annual, annual or trigger bands.

Rodc
Posts: 13601
Joined: Tue Jun 26, 2007 9:46 am

Post by Rodc » Tue Sep 22, 2009 3:57 pm

gordoni2 wrote:
livesoft wrote:Have you read Jim C. Otar's severe criticisms of MC simulators? How do you address those criticisms?
I hadn't, but I have now. Perhaps Monte-Carlo is the wrong name for the simulator I wrote. The simulator is using historical returns as recorded by Shiller to drive the financial component of the simulation, rather than returns generated from a probability distribution as is done in classical Monte-Carlo simulators. On the other hand deciding whether an individual or couple are still alive each year is done using classical role the dice Monte-Carlo techniques.

Turning to Jim's criticisms:

FLAW #1: The first flaw of the MC is how it generates randomness.

My simulator uses historical returns rather than some mathematical distribution.

FLAW #2: The second flaw of MC is that the outcomes it generates are random. It ignores the effects of secular trends.

My simulator can be run in one of two modes: looped historical sequence and random. When returns are simulated in looped historical sequence it will capture these secular trends, such as reversion to mean. Running in looped historical sequence does though limit the breadth of the input data to the number of start years, it is more of a historical replay mode. This strikes me as similar to the Otar Retirement Calculator.

FLAW #3: The third flaw of MC is that ignores the correlation between the market events.

Running in looped historical sequence mode would overcome this flaw.

FLAW #4: The fourth flaw of MC is the unrealistic sequence of outcomes.

This strikes me as a rephrasing of flaws 2 and 3.

To me Monte-Carlo simulators are a tool used for retirement planning, and most of the value of Monte-Carlo simulators comes not from a single run and a single answer, but from comparing runs as parameters are changed. How does depleting my equity first compare to annually rebalancing my portfolio? What if the expected return on equities is 1% lower than I forecast? What if I work another 5 years?
You can ignore 3 and 4 due to how you did this, but now you have a new problem.

The world unfolded in one particular way. It could easily have unfolded differently. And it likely will unfold differently going forward. Using a random number generator (Gaussian, log-normal, Cauchy, whatever) allows you to explore in greater detail the what if history had turned out differently questions.

Both have real short comings.

You need to make assumptions about future tax rates, future inflation, future health care costs, future housing costs (Retirement community, assisted living, etc.)

If you write such a MCS (I have), and you play with the assumptions to gauge sensitives, ie to estimate error bars, and you have decades of possible life left, you find out the error bars are absolutely huge: maybe you be broke by 80, maybe you'll die a multi-millionair!

At that point I decided that MCS are lot of fun, but really, you can do about as well with a calculator and a pencil (or at least an Excel spreadsheet and just plug in a modest return, if that work you are good to go, if it does not work, you are not good to go).

I never did get around to putting in actuarial tables, as it did not really make sense to plan for anything other than a long life: what pray tell do you conclude if it says your plan is great provided you die young enough?

It would be very interesting if I were an insurance company with a pool of people who wanted to buy an annuity.
We live a world with knowledge of the future markets has less than one significant figure. And people will still and always demand answers to three significant digits.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Tue Sep 22, 2009 4:14 pm

bob90245 wrote:
gordoni2 wrote:And in the long term stock returns are tied to GDP.
I vaguely recall reading this before (from Larry Swedroe or Jeremy Siegel?). From what I remember, this is not true. Can others confirm this?
Shares represent a claim on the future output of the economy, while GDP attempts to measure the output of the economy. So one might naively expect the two to be related over a sufficiently long period. See William Bernstein's article "The Two-Percent Dilution"

http://www.efficientfrontier.com/ef/702/2percent.htm

in which he calculates stocks lag GDP by approximately 2% a year due to new share issuance.

User avatar
bob90245
Posts: 6511
Joined: Mon Feb 19, 2007 8:51 pm

Post by bob90245 » Tue Sep 22, 2009 4:33 pm

Here is the description for Siegel's book The Future for Investors:
His [Siegel's] surprising finding is that the new technologies, expanding industries, and fast-growing countries that stockholders relentlessly seek in the market often leads to poor returns. In fact, growth itself can be an investment trap, luring investors into overpriced stocks and overly competitive industries.
Source: http://www.jeremysiegel.com/index.cfm/f ... /books.cfm
Ignore the market noise. Keep to your rebalancing schedule whether that is semi-annual, annual or trigger bands.

gneeby
Posts: 54
Joined: Wed Jul 02, 2008 1:49 pm

Post by gneeby » Thu Sep 24, 2009 10:34 am

nisiprius wrote:This is really a philosophical issue, and a generic one... this is just more brooding about systematic withdrawal plans in general. I start to feel my mind boggle whenever I confront it... like those old logical paradoxes.

What good does it do to know my statistical probability of "success" when in fact I have my sample size is 1? If I run out of money at age 95, does it do me any good to know that the chances of that happening were only 5%?

In the case of an insurance company offering a fixed annuity product, of course it does, because they are dealing with a large population and the average is meaningful. The average tells them how much money they must collect from a large group of people in order to pay it back to that same group and have none of them run out of money. Furthermore they are collecting a profit and have deep pockets and a margin of error, so if by chance their group is a bit healthier than they figured, due to sampling error, the longest-lived people in that group still don't run out of money, the insurance company just makes a tad less profit.

In the case of a single individual, can someone actually say "I am consciously deciding to take a 5% risk of running out of money" and mean it?

Don't all these SWR systems need to be revamped, so that instead of running out of money, the worst-case scenario is a reduced income? For example, use the Vanguard withdrawal strategy embodied in their managed payout fund, and use the Monte Carlo simulation to show the probability distribution of the lowest year's payout... or something like that?
i-orp.com is a retirement calculator that computes the after tax amount of money available for spending in retirement. instead of the year when the money will run out. In most calculators you specify a spending rate and the calculator computes when the money runs out. With ORP you specify life expectancy and the calculator computes the amount of money available for spending each year, with inflation and taxes part of the mix.

richard
Posts: 7961
Joined: Tue Feb 20, 2007 3:38 pm
Contact:

Post by richard » Thu Sep 24, 2009 5:08 pm

There's a Vanguard research paper which models retirement scenarios using looped historical data.

Given the limits on the predictive power of models generally, this seems as good a method as any. To me, models seem more of an if-then teaching tool than anything.

sommerfeld
Posts: 1157
Joined: Fri Dec 12, 2008 8:02 pm

Post by sommerfeld » Thu Sep 24, 2009 5:22 pm

Rodc wrote:I never did get around to putting in actuarial tables, as it did not really make sense to plan for anything other than a long life: what pray tell do you conclude if it says your plan is great provided you die young enough?
Indeed. Given the current accelerating rate of medical research it seems prudent to plan under the assumption that current actuarial tables are pessimistic.

For a simulator aimed at individual needs it makes more sense to continue each run until either some user-specified target age, or the money runs out (which ever comes first) and report something about the age distribution that results from multiple runs.

Verde
Posts: 349
Joined: Mon Dec 31, 2007 4:47 am
Location: South Africa

Post by Verde » Fri Sep 25, 2009 2:23 am

It might be interesting to calibrate your simulation results against Milevsky's probability of ruin formula. You can find a working spreadsheet here:
http://www.editgrid.com/explore/user/knox/ruin

If you do, I would appreciate it if you could post the results.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Fri Sep 25, 2009 2:24 pm

Verde wrote:It might be interesting to calibrate your simulation results against Milevsky's probability of ruin formula. You can find a working spreadsheet here:
http://www.editgrid.com/explore/user/knox/ruin

If you do, I would appreciate it if you could post the results.
I attempted this, but I don't appear to be getting reasonable answers out of that spreadsheet. Here is a simple example: median lifespan=30, expected return=0, portfolio volatility=0, spending rate=4% gives a probability of ruin of 27%. Now increase the portfoilio volatility to 10% and the probability of ruin drops to 10%. Increase volatility further to 20% and the probability of ruin is 1%.

What gives? Provided the probability of ruin to begin with is closer to 0% than 100%, I would have expected increased volatility is associated with increased probability of ruin, but this spreadsheet very strongly shows the opposite.

Verde
Posts: 349
Joined: Mon Dec 31, 2007 4:47 am
Location: South Africa

Post by Verde » Fri Sep 25, 2009 3:23 pm

I e-mailed Milevsky a while back with a similar question. Here is my question and the answer I got back.
Hello Prof. Milevsky
I have a question regarding your probability of ruin formula. (A neat piece of work I must add.) If I enter a mean rate of return of 2% and SD of 0% it calculates to a 16.5% ruin probability for a 65 year old withdrawing 4% p.a. This does not make sense. The 2004 US life table for males shows a probability of about 1.6% that a 65 year old will survive to age 100+. A riskless 2% return coupled with a 4% withdrawal is guaranteed to last 35 years. So if the money will last to age 100, and only 1.6% will be alive beyond that point, how can the ruin rate be 16.5%?
I would very much appreciate if you could take the time to address this question.
Regards

Hi
Good question.

Basically, the formula is an approximation that converges to the “truth” as volatility gets larger (sigma increases) and the individual gets younger (i.e. the hazard rate declines).
In your case you are going to the exact opposite limit and hence getting a lousy (although not completely out of the ball park) answer.
This is what happens with moment matching approximations. You need moments (i.e. variance).
The way to correct the formula so that it works – even in the case of small volatility – is to MATCH the hazard rate to the mortality table’s tail, as opposed to the mean/average value. In other words, use a higher hazard rate.
I hope this helps.
Moshe

Verde
Posts: 349
Joined: Mon Dec 31, 2007 4:47 am
Location: South Africa

Post by Verde » Fri Sep 25, 2009 3:43 pm

I just had a look at the spreadsheet. It seems the problem is that Editgrid does not support the Ln function. You can use the instructions below to create your own Excel spreadsheet. Note the mean return is the real after inflation return.
rwwoods wrote:

Code: Select all

	                                 Input & Results	    Formulas
Withdrawal rate (%)	                      4.0%	
Median Life Expectancy (years)	          18.9	
Mean return (%)	                          1.22%	
Standard Deviation (%)	                   0%	

		
Implied mortality rate	                0.03667        =LN(2)/B3
alpha	                                 3.66531	     =(2*B4+4*B8)/(B5^2+B8)-1
beta	                                  0.01834	     =(B5^2+B8)/2

Probability of ruin (%)	                 23.18%	    =GAMMADIST(B2,B9,B10,1)
The input data and formulas are to be placed in column B. Note the two blank rows after Standard Deviation and the one blank row after beta. The blank rows are not required, but the formulas will have to be revised if you don't include them.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Fri Sep 25, 2009 7:36 pm

Thank for the spreadsheet info. It works much better than the website containing the formula.

Here is what I get comparing my simulator to Milevsky's formula:

Code: Select all

<----------- input params -------------->    <------- prob. of ruin ------->
withdrawal  age / life   mean   standard     Milevsky   gordoni   const.mort.
   rate     expectancy  return  deviation    formula   simulator   simulator
   1.0%     65 / 17.1    5.0%      20%          1%         0%         -
   2.0%     65 / 17.1    5.0%      20%          6%         1%         -
   3.0%     65 / 17.1    5.0%      20%         12%         4%         -
   4.0%     65 / 17.1    5.0%      20%         20%         9%        13%
   5.0%     65 / 17.1    5.0%      20%         28%        16%         -

varying some other parameters:
   4.0%     20 / 56.2    5.0%      20%         50%        34%         -
   4.0%     65 / 17.1    4.0%      20%         26%        12%         -
   4.0%     65 / 17.1    5.0%      40%         77%        25%         -

varying two parameters:
   4.0%     20 / 56.2    5.0%      40%      error[1]      51%         -

Footnotes:
  1 - Milevsky's alpha is negative, so something must be wrong in the formula.
The life expectancy values used for each age come from the U.S. Life Tables, 2005, and are mean values, while Milevsky required median values. Hopefully this discrepancy will be small.

The discrepancy between Milevsky's formula and my simulator is quite large. Part of the discrepancy is due to the Milevsky formula assuming a constant probability of dying. As an experiment I modified my simulator to have a constant probability of dying instead of using death probabilities from the U.S. Life Tables, this is shown in the last column. As can be seen this explains some of the discrepancy, but much still remains to be explained.

I am reasonably confident of the accuracy of my simulator. To verify it I constructed a simple separate Monte Carlo simulator that shares no common code, and rather than estimate returns using the historical record, samples random variates from a log normal probability distribution. The two simulators give results that are in very close agreement:

Code: Select all

<------ input params ------->  <------ prob. of ruin ----->
withdrawal   mean   standard   fixed 30yr  30yr Monto Carlo
   rate     return  deviation  simulator      simulator
   1.0%      5.0%      20%         0%             0%
   2.0%      5.0%      20%         3%             2%
   3.0%      5.0%      20%        10%             9%
   4.0%      5.0%      20%        21%            21%
   5.0%      5.0%      20%        34%            34%

varying some other parameters:
   4.0%      4.0%      20%        28%            28%
   4.0%      5.0%      40%        42%            37%
This doesn't mean all of the bells and whistles of my simulator are correct, but it does mean that the core simulation engine is probably correct.

User avatar
actuaryinvestor
Posts: 150
Joined: Mon Feb 26, 2007 2:33 pm

Simulator

Post by actuaryinvestor » Fri Sep 25, 2009 8:59 pm

Gordoni2,

Nice simulator! I don't fully understand the details, but here are some suggestions if you want to try some more things out.

1. Include mortality improvement. For example you can assume mortality improves by 1% per year to take into account medical advances and all that good stuff.

2. You can use the mortality rates to generate a vector of probability of surviving to each age, therefore removing stochastic mortality from your simulator. I think the only thing that should use random simulation is investment returns.

3. You could try adding some simple dynamic strategies like "age in bonds", or at least a "stop taking risk when future success is almost assured with bonds" line.

I think you mus have put a lot of work into it and it shows.

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Re: Simulator

Post by gordoni2 » Fri Sep 25, 2009 11:32 pm

actuaryinvestor wrote:1. Include mortality improvement. For example you can assume mortality improves by 1% per year to take into account medical advances and all that good stuff.
Thanks for your feedback.

I have now included some comments suggesting people understate their age by 1-3 years if they wish to include the effect of medical advances. The impact on the results is likely to be small. (From 1901 to 2004 remaining life expectancy for a 65 year old in the US has only increased by 0.07 years per year).
2. You can use the mortality rates to generate a vector of probability of surviving to each age, therefore removing stochastic mortality from your simulator. I think the only thing that should use random simulation is investment returns.
It gets more complex when simulating a couple and wanting to reduce expenses when one party dies, A random Monte Carlo death simulation is the easiest way to simulate this.
3. You could try adding some simple dynamic strategies like "age in bonds", or at least a "stop taking risk when future success is almost assured with bonds" line.
Good idea! I now simulate "age in bonds". For the test runs I performed "age in bonds" seems like a good strategy, never achieving, but consistently coming close to the fixed stock/bond ratio with the highest success probability.

HARS - Historical Actuarial Retirement Simulator

Verde
Posts: 349
Joined: Mon Dec 31, 2007 4:47 am
Location: South Africa

Post by Verde » Sat Sep 26, 2009 5:26 am

The mean return referred to in the formula is the arithmetic mean (the median return is the geometric mean). I think you interpreted it as the geometric mean.

I recalculated the parameters set up by you entering a real rate of return in your simulator which results in the required arithmetic mean. The results are shown below. It is a pretty good fit considering the different methods used to generate returns data.

The genius of Milevsky’s formula is that he does not assume a constant probablity of dying. He uses the Gompertz distribution function.

Download the spreadsheet at this link labelled, “Lecture #2, Spreadsheet #4: "RP2000 Table v Gompertz v Exponential Approximation” (M.A. Milevsky) 31 KB, May 2006” to see how good the fit is between the function and actual mortality data.
http://www.ifid.ca/cri.htm

If the formula returns an error it should be interpreted as a 100% probability of ruin.

Image

User avatar
gordoni2
Posts: 194
Joined: Wed Aug 15, 2007 12:20 am
Contact:

Post by gordoni2 » Sat Sep 26, 2009 2:13 pm

Verde wrote:The mean return referred to in the formula is the arithmetic mean (the median return is the geometric mean). I think you interpreted it as the geometric mean.
Thank you. You are correct I had been using the geometric mean and I should have been using the arithmetic mean. I agree the results are now in pretty good agreement considering the different methods used. In fact the difference between the two methods used is less than the difference reported by my simulator when you make a small change and change the gender from male to female.

Post Reply