Secondary menu

Monte Carlo Higher Precision

What does a higher precision simulation do differently than standard precision?

1

It has to do with how the monte carlo works. Basically it calculates a consumption function that is a n dimensional grid with the axes being various values of the state variables (regular assets and retirement accounts) with a consumption value for that point. Since storage is limited, the grid is understandably pretty coarse and the possible range of the various state variables are fixed. Every time a a consumption is needed, the code interpolates the actual value since relatively few times are the values of the state variables exact matches for the values used to calculate the consumption function. The interpolation used is a linear interpolation which actually isn't a particularly good match for the actual shape of the consumption function in between points but is the best that can be done because the actual shape of the consumption function cannot be predicted given the current state of the art.. The higher precision effectively makes the shape of the consumption function in between points "closer" to linear, allowing the interpolation to be more exact.

The trade off is that it is an n**2 problem. For each doubling of precision you need n**2 more time to calculate the consumption function.

So, more precision, more time. We actually implemented another doubling on top of what we call "higher" precision but the time to actually run the MC became nearly geologic (hours) and we felt that was not viable in a desktop product.

Probably too much information, but...

Best,

Dick Munroe

2

Thanks. I appreciate you making the option available for those with faster systems.

3

By the way, we discussed some time ago in another thread ("Monte Carlo for inflation") about a "Cray" version of ESP. The precision option you implemented is a step in the right direction of giving the user the option. So kudos again. My two-year old system runs the high-precision in just under 14 minutes. I'm not sure what I'd get for the next doubling, unless we added another state variable, but next time I upgrade to a new system I'll be asking about it. :)

4

On the order of 3+ hours, minimum.

Best,

Dick Munroe

5

FYI -- On a system with an Intel Core-Duo 3.00GHz processor, the duration of an “extended precision” simulation is 11.5 minutes. While the simulation is running, the CPU utilization is moderate (50%-60% for CPU0, 40%-50% for CPU1) and the physical memory usage is also modest.

Question: How many iterations (“economic lives lived”) does the “higher precision” option use in the Monte Carlo analysis?

Thank you.

6

I recall the "standard" run is 500. Dick would have to say what the higher one is.

7

Yes, Lowell: the Help Manual confirms that 500 iterations (“economic lives lived”) are used in the Monte Carlo analysis.

Dick, when using the "higher precision" option, what number of iterations (“economic lives lived”) are used in the Monte Carlo analysis?

Thank you.

8

I'm not sure, but I recall it was roughly double. We had trouble if it is set too high as the memory requirements are enormous.

9

Lowell, based on your comment that memory requirements increase dramatically as the number of iterations (“economic lives lived”) increases, it seems that “standard precision” and “higher precision” may both be using 500 iterations. Physical memory usage (displayed by Windows Task Manager) is nearly identical when using either option.

To answer this question definitively, can you kindly look at the source code for ESPlannerPLUS and determine the number of iterations (“economic lives lived”) used with the “higher precision” option?

Thank you.

10

It's not the number of iterations (economic lives lived) that drives the memory requirements (although that does have a linear relationship to it).

The driving force is the number of state variables and the size of the arrays necessary to hold the "function" for the various values of the state variables.

So, given that we have 3 state variables (regular asset, husband's retirement assets, wife's retirement assets), consider standard precision to have a value of 1 for each of these state variables and the amount of memory required is the product of the weights for each state variable or:

1 * 1 * 1 = 1

And this is the amount of memory that is required for "standard" precision.

Now, we have higher precision in which we double the weight associated with each state variable, now we get:

2 * 2 * 2 = 8

which is the increase in memory (and, unfortunately ALSO the approximate increase in compute time) for the higher precision.

The number of iterations (500) for each trajectory is a constant that gets carried along because we need to have a "bunch" of trajectories calculated so that we can show the variance.

In both cases, standard and higher, the same number of trajectories are calculated (economic lives used). The difference is in the resolution of the consumption function where we can't solve the problem analytically but have to do a numerical approximation.

We could go higher in precision, but without either really exotic iron and boatloads of memory or an additional breakthrough in theory, the computations wouldn't complete in less than geologic time.

In computer science parlance, this computation is an n-squared computation, i.e., for each doubling in n, you need n-squared more space and/or time to perform the computation. If we could get it to be an n(log(n)) computation (which is the breakthrough in theory part) then we could get much more precision in a reasonable time and space.

Best,

Dick Munroe