Asset Allocation Cross Validation
This document reports on the cross validation of the new AACalc asset allocator using Merton's method against the old AACalc asset allocator which uses stochastic dynamic programming.
The results are not expected to be identical. The new asset allocator takes a number of computational shortcuts in order to solve the problem quickly. In particular there isn't a known solution for the amount to consume in Merton's portfolio problem for many assets and a stochastic lifespan. The new asset allocator generates allocations outside the range 0-100% which it has to then try and correct, while the old asset allocator handles this constraint directly. Additionally, the new asset allocator assumes lognormally distributed returns, while the old allocator used the historical returns distribution. The old asset allocator is unable to handle contribution volatility. And the new asset allocator assumes the return on liability matching bonds does not decrease with age.
default parameter values |
---|
age=65
retirement_age=50 - already retired sex=male sex2=none - an individual not a couple db=15k - annual Social Security p=200k - portfolio size accumulate=0 - pre-retirement periodic contributions contrib_vol=1% - contribution volatility stocks=7.2%+/-17% - arithmetic annual return and volatility bonds=0.8%+/-4% corr=7% - stock/bond correlation yield_curve_date=2015-12-31 - used for liability matching bonds expense=0% - equity and bond management fees purchase_income_annuity=false - no annuitization recommendations gamma=4 - coefficient of relative risk aversion |
The results of the two asset allocators are shown below:
stocks | consume | parameters | ||||
---|---|---|---|---|---|---|
SDP | AACalc | difference | SDP | AACalc | difference | |
100% | 100% | 0% | 27,319 | 26,522 | -3% | default |
n.a. | 100% | n.a. | 15,000 | 15,000 | 0% | p=0 |
53% | 54% | 1% | 8,767 | 8,491 | -3% | db=10 |
100% | 100% | 0% | 26,769 | 26,522 | -1% | gamma=2 |
94% | 80% | -14% | 26,643 | 25,735 | -3% | gamma=6 |
100% | 100% | 0% | 21,242 | 21,087 | -1% | p=100k |
92% | 80% | -12% | 43,181 | 40,166 | -7% | p=500k |
100% | 100% | 0% | 27,804 | 27,664 | -1% | stocks=8.7%+/-20% |
85% | 100% | 15% | 27,184 | 26,522 | -2% | bonds=3.2%+/-4% |
100% | 90% | -10% | 32,132 | 26,166 | -19% | age=90, p=100k |
95% | 93% | -2% | 36,476 | 38,214 | 5% | age=50, p=500k |
100% | 100% | 0% | n.a. | 37,246 | n.a. | age=50, retire=65, accumulate=3000*1.07^y |
97% | 88% | -9% | n.a. | 60,303 | n.a. | age=25, retire=65, accumulate=500*1.07^y |
83% | 81% | -2% | 43,596 | 40,172 | -8% | desired=40k, p=500k |
100% | 100% | 0% | 26,278 | 26,255 | -0% | female |
100% | 100% | 0% | 55,464 | 54,712 | -1% | sex2=female, p=500k |
Since an 80% confidence interval for asset allocation spans a whopping 40-50%, the accuracy of the asset allocation recommendations of the new allocator are more than good enough. The discrepancy for bonds=3.2%+/-4% is a result of the allocator thinking bonds serve a similar role to defined benefits, and assuming bonds can be directly reduced to compensate for defined benefits.
The consumption recommendations are reasonably accurate. They lose accuracy at advanced ages where life expectancy is very short. The slight tendancy to under consume isn't a big deal as any surplus will be available for consumption in subsequent time periods.
For typical scenarios, as shown above, the allocation to stocks is close to 100%. To check whether results are comparable when this is not the case we prepared a second set of results for affluent scenarios.
stocks | consume | parameters | ||||
---|---|---|---|---|---|---|
SDP | AACalc | difference | SDP | AACalc | difference | |
77% | 67% | -10% | 67,040 | 61,435 | -8% | p=1000k |
53% | 54% | 1% | 43,762 | 42,404 | -3% | p=1000k, db=10 |
100% | 100% | 0% | 74,092 | 65,704 | -11% | p=1000k, gamma=2 |
54% | 45% | -9% | 60,699 | 57,681 | -5% | p=1000k, gamma=6 |
69% | 59% | -10% | 68,232 | 63,160 | -7% | p=1000k, stocks=8.7%+/-20% |
50% | 67% | 17% | 69,003 | 66,537 | -4% | p=1000k, bonds=3.2%+/-4% |
81% | 64% | -17% | 77,213 | 67,700 | -12% | p=500k, age=90 |
64% | 56% | -8% | 107,958 | 94,264 | -13% | p=2500k, age=50 |
72% | 62% | -10% | n.a. | 86,794 | n.a. | p=1000k, age=50, retire=65, accumulate=3000*1.07^y |
76% | 64% | -12% | n.a. | 93,271 | n.a. | p=500k, age=25, retire=65, accumulate=500*1.07^y |
100% | 94% | -6% | 143,324 | 135,272 | -6% | p=2500k, desired=40k |
77% | 69% | -8% | 63,619 | 59,693 | -6% | p=1000k, sex=female |
73% | 65% | -8% | 141,995 | 136,487 | -4% | p=2500k, sex2=female |
64% | 59% | -5% | 135,068 | 125,032 | -7% | p=2500k |
Again there is reasonably good agreement, with the biggest discrepancies being for high bond returns and at advanced ages.