My new website is up...sorta

Financial Independence/Retire Early -- Learn How!
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

ElSupremo wrote: Greetings raddr :)
When the site changes over I will of course include an updated link.

LOL! :lol:I don't think they'll have any trouble finding it! :wink:


<Chuckle> Yeah, assuming the NFB servers don't cough on it and make me post it somewhere else. :lol:
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

I've added page of analysis of the Gordon equation if anyone is interested: http://raddr.freehostingpro.com/gordon.htm. It goes in to a little more detail than my original NFB post at http://nofeeboards.com/boards/viewtopic.php?t=1128.
User avatar
BenSolar
*** Veteran
Posts: 242
Joined: Mon Nov 25, 2002 5:46 am
Location: Western NC

Post by BenSolar »

raddr wrote: I've added page of analysis of the Gordon equation if anyone is interested: http://raddr.freehostingpro.com/gordon.htm. It goes in to a little more detail than my original NFB post at http://nofeeboards.com/boards/viewtopic.php?t=1128.


Better be careful raddr. Wasn't it along these lines that Dr. Berstein rose to fame? :shock:Publishing his (extremely astute) noodlings on an independent website?

Excellent work!!
"Do not spoil what you have by desiring what you have not; remember that what you now have was once among the things only hoped for." - Epicurus
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

BenSolar wrote:
raddr wrote: Better be careful raddr. Wasn't it along these lines that Dr. Berstein rose to fame? :shock:Publishing his (extremely astute) noodlings on an independent website?

Excellent work!!


Hi Ben,

LOL :lol:- thanks for the compliment! If I can contribute 1% of what Bernstein has then I'll be happy. :D
bpp
** Regular
Posts: 98
Joined: Tue Nov 26, 2002 6:46 am
Location: Japan

Post by bpp »

Hi raddr,

Would you be willing to describe in more detail how you make your mean-reversion cuts in your simulator? Maybe even post the code for it? I am having some trouble figuring out exactly what you are doing.

Cheers,
Bpp
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

bpp wrote: Hi raddr,

Would you be willing to describe in more detail how you make your mean-reversion cuts in your simulator? Maybe even post the code for it? I am having some trouble figuring out exactly what you are doing.

Cheers,
Bpp


Hi Bpp,

Sure. What do you mean by "cuts"? Are you talking about the upper and lower boundaries in the mean reversion post or are you referring to the mean reversion correction in the MC simulator? Let me know and I'll be glad to clarify.
bpp
** Regular
Posts: 98
Joined: Tue Nov 26, 2002 6:46 am
Location: Japan

Post by bpp »

Hi raddr,

By "cuts" I refer to your cut-off thresholds for throwing away bad sequences in the MC generator. More specifically, you write:
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 [...]


The picture I get from this is that you have a Gaussian random number generator, with input parameters of mean and stdev, with which you generate returns sequences. Then afterwards you measure the means and stdevs of the sequences generated, and throw away those sequences with measured mean and stdev too far away from those that were input into the generator. Is this correct?

Let me stop here and make sure I understand this part before getting into the mean-reversion part itself.

Cheers,
Bpp
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

bpp wrote: By "cuts" I refer to your cut-off thresholds for throwing away bad sequences in the MC generator. More specifically, you write:
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 [...]


The picture I get from this is that you have a Gaussian random number generator, with input parameters of mean and stdev, with which you generate returns sequences. Then afterwards you measure the means and stdevs of the sequences generated, and throw away those sequences with measured mean and stdev too far away from those that were input into the generator. Is this correct?


Hi Bpp,

Yes, you've got it correct. For most runs I calulate the historical avg. return for the portfolio and then the 1 yr., 10 yr., and 40 yr. SD's. As I note in the post, the longer time periods show lower SD's than would predicted from the 1 yr. SD. I then generate a gaussian distribution of random numbers (usually 75 year's worth) based on the historical 1 yr. SD and the yearly avg. return - just like a conventional MC simulator. 10 and 40 yr. SD's are calculated and those sequences that fall outside the tolerance threshold are rejected. If the simulated portfolio passes this test then there is one final test: if the 75 yr. avg. return is outside the tolerance limit I set then the sequence is rejected.

Does this clear things up at all?
bpp
** Regular
Posts: 98
Joined: Tue Nov 26, 2002 6:46 am
Location: Japan

Post by bpp »

Hi raddr,
Does this clear things up at all?


A little, but my questions are multiplying. :) Let me take this step-by-step:
For most runs I calulate the historical avg. return for the portfolio and then the 1 yr., 10 yr., and 40 yr. SD's. As I note in the post, the longer time periods show lower SD's than would predicted from the 1 yr. SD.


Ok, so you take a proposed portfolio, apply it to historical data, and from those results you measure the mean and 1-, 10- and 40-year SDs of the whole portfolio -- not of the constituent asset classes. Is this right?
I then generate a gaussian distribution of random numbers (usually 75 year's worth) based on the historical 1 yr. SD and the yearly avg. return - just like a conventional MC simulator.


Ok, so here you are generating sequences that represent the returns of the whole portfolio -- again, not of the individual asset classes, right?

Now at this stage, before you look at the 10- and 40-year SDs and the 75-year mean, do you also make cuts based on the 1-year SD? (This is what I thought you were saying in my previous post, but I'm not sure that confusion didn't creep in somewhere.)
10 and 40 yr. SD's are calculated and those sequences that fall outside the tolerance threshold are rejected.


What kind of thresholds are these? Are they absolute values, or or they relative to the 1-year SD? I.e., is the cut of the following form:

IF ((SD_40 > Threshold_40) OR (SD_10 > Threshold_10)) THEN Reject

or is it of the following form:

IF ((SD_40/SD_1 > Threshold_40) OR (SD_10/SD_1 > Threshold_10)) THEN Reject

or is it something else?
If the simulated portfolio passes this test then there is one final test: if the 75 yr. avg. return is outside the tolerance limit I set then the sequence is rejected.


How (and why) is this tolerance limit chosen?

Cheers,
Bpp
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

bpp wrote:

Ok, so you take a proposed portfolio, apply it to historical data, and from those results you measure the mean and 1-, 10- and 40-year SDs of the whole portfolio -- not of the constituent asset classes. Is this right?


Yes.

Now at this stage, before you look at the 10- and 40-year SDs and the 75-year mean, do you also make cuts based on the 1-year SD? (This is what I thought you were saying in my previous post, but I'm not sure that confusion didn't creep in somewhere.)


No. The 1 yr. SD is too short to show any form of mean reversion so I leave it alone. The 10 and 40 year SD's are the ones I filter.
What kind of thresholds are these? Are they absolute values, or or they relative to the 1-year SD?


They are not relative to the 1 yr. SD. If, for example, the historical 10 yr. SD (whole portfolio) is 0.04 then I'd reject any simulated sequences that show 10 yr. SD's 10% more or less than 0.04 - IOW reject those with SD's < 0.036 or > 0.044. The 10% window was arrived at by just futzing around with the simulated number sequences and comparing them to history. 10% seems to strike a good balance between forcing a tendency to mean revert whilst retaining a reasonable degree of randomness in the simulated sequences.

If the simulated portfolio passes this test then there is one final test: if the 75 yr. avg. return is outside the tolerance limit I set then the sequence is rejected.
How (and why) is this tolerance limit chosen?


Good question. The reason is partially as stated above for the SD's. Here, however, I chose to base the mean tolerance on the historical predictivity of the Gordon equation. For example, if the Gordon equation predicts a 75 yr. CAGR with a SD of 1.1% then I would set the tolerance limits to spit out 1000 75 year sequences distributed around the chosen mean with an SD of 1.1%. For example, if the mean is 5% then 95% of the sequences would have a CAGR of 5% +/- 2.2% (+/- s SD's). Please refer to this study for a look at the predictivity of the Gordon equation:

http://raddr.freehostingpro.com/gordon.htm

I don't know that this is the right way to implement a mean reverting strategy but it seems to model actual historical results quite well. Hopefully I am not confusing you further. :wink:
bpp
** Regular
Posts: 98
Joined: Tue Nov 26, 2002 6:46 am
Location: Japan

Post by bpp »

Hi raddr,
I don't know that this is the right way to implement a mean reverting strategy but it seems to model actual historical results quite well. Hopefully I am not confusing you further. :wink:


I think I finally understand what your procedure is, up until the last part perhaps. How do you do the following?
I would set the tolerance limits to spit out 1000 75 year sequences distributed around the chosen mean with an SD of 1.1%.


It sounds to me like you will end up with a truncated distribution this way. Maybe I've misunderstood. And it looks like you will have that same problem with your SD cuts as well.

I should say, that the idea of trying to add mean reversion to an MC seems like a novel and interesting one. If I might make a suggestion, I think that a cleaner way to do this might be to try to think of a mechanism for mean-reversion, and incorporate that into the number-generation process rather than first generating a distribution and then trying to clip and shave it to make it look sort of like what you want.

For example, and I'm not saying this is a realistic model, but one might for example try to vary the input mean parameter to the Gaussian random number generator each year depending on how far from the historical mean the total-to-date return of the current sequence has diverged. Or if you think the market feedbacks less smoothly than that, you could put in some probability of abrupt transition towards the historical mean, the magnitude and probability of which increase as the total return of the sequence diverges further from the historical mean. Or something else entirely.

Does any of this make sense?

Other issues I can think of are that reversion to the mean would seem to me to make sense mostly on an asset-class-by-asset-class basis, and not on a portfolio-as-a-whole basis. Though I'd have to think about this some more.

Well, I'll stop here and you can take or leave what I've said so far as you like. Possibly I haven't been very clear myself. :)
Feel free to ask for clarification if you wish. Also feel free to ignore my ramblings.

Cheers,
Bpp
[/quote]
Last edited by bpp on Mon Oct 06, 2003 12:26 pm, edited 1 time in total.
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

Hi Bpp,
bpp wrote:
I think I finally understand what your procedure is, up until the last part perhaps. How do you do the following?
I would set the tolerance limits to spit out 1000 75 year sequences distributed around the chosen mean with an SD of 1.1%.


It sounds to me like you will end up with a truncated distribution this way. Maybe I've misunderstood. And it looks like you will have that same problem with your SD cuts as well.


Actually the distribution is not really truncated because it is the mean average annual return that is filtered, not the compound annual return. This is a fine point but it does allow for a normal distribution of datapoints, just one that is grouped a little more tightly around the mean than you'd see with a standard MC simulator. The SD's are truncated and I've looked at this and feel that it really doesn't make much difference.

I should say, that the idea of trying to add mean reversion to an MC seems like a novel and interesting one. If I might make a suggestion, I think that a cleaner way to do this might be to try to think of a mechanism for mean-reversion, and incorporate that into the number-generation process rather than first generating a distribution and then trying to clip and shave it to make it look like sort of like what you want.


I think I have confused you - sorry. :oops: Each 75 year sequence is taken as is and then run through the SD and mean return filters. IOW, nothing within the sequence is manipulated or shaved, etc.
For example, and I'm not saying this is a realistic model, but one might for example try to vary the input mean parameter to the Gaussian random number generator each year depending on how far from the historical mean the current sequence has diverged. Or if you think the market feedbacks less smoothly than that, you could put in some probability of abrupt transition towards the historical mean, the magnitude and probability of which increase as the total return of the sequence diverges further from the historical mean. Or something else entirely.

Does any of this make sense?


Yes it does make sense. I think that this would be hard to implement in code and I would need to do what I've done anyway, namely look at the generated sequences and see how closely they model past history. I like your idea, though, and I'll give it some thought to see if there is any way to improve the model through yearly manipulation although I think that you might start to get into some of the problems you allude to above.
Other issues I can think of are that reversion to the mean would seem to me to make sense mostly on an asset-class-by-asset-class basis, and not on a portfolio-as-a-whole basis. Though I'd have to think about this some more.


I really don't think that asset-by-asset mean reversion is as important as that of the portfolio as a whole. Obviously, the more fixed income there is in a portfolio the less mean reversion there would be. This is accounted for in my model.
Well, I'll stop here and you can take or leave what I've said so far as you like. Possibly I haven't been very clear myself. :)
Feel free to ask for clarification if you wish. Also feel free to ignore my ramblings.


LOL - quite the contrary - I love discussing this sort of stuff and you ask some great questions. Fire away! :D
bpp
** Regular
Posts: 98
Joined: Tue Nov 26, 2002 6:46 am
Location: Japan

Post by bpp »

Hi raddr,
I think I have confused you - sorry. :oops: Each 75 year sequence is taken as is and then run through the SD and mean return filters. IOW, nothing within the sequence is manipulated or shaved, etc.


I do understand that the sequences are not modified, merely accepted or rejected. But what I worry about is the distribution of sequences, as opposed to the distribution within a sequence. Culling the sequences after generation is likely to lead to a subtly skewed distribution of possible outcomes relative to whatever the natural range of possibilities would be. (This could be important for SWR studies, since they depend so much on the behaviour at the tails.) If you add a mean-reversion mechanism at the front end instead of making cuts at the back end, then you could in principle have some kind of idea of what biases are being introduced. And even vary them intentionally to explore different mechanisms.

You are right that you would need to compare things like the SD_40/SD_1 ratio with the historical data in order to find the appropriate reversion coefficients for your model. It would make for a somewhat iterative process, but I don't think it would be problematic for the data distributions any more than finding the average return would be, for example.

Anyway, just some more thoughts.

Cheers,
Bpp
raddr
*** Veteran
Posts: 265
Joined: Mon Nov 25, 2002 3:25 am
Contact:

Post by raddr »

bpp wrote:
I do understand that the sequences are not modified, merely accepted or rejected. But what I worry about is the distribution of sequences, as opposed to the distribution within a sequence. Culling the sequences after generation is likely to lead to a subtly skewed distribution of possible outcomes relative to whatever the natural range of possibilities would be. (This could be important for SWR studies, since they depend so much on the behaviour at the tails.) If you add a mean-reversion mechanism at the front end instead of making cuts at the back end, then you could in principle have some kind of idea of what biases are being introduced. And even vary them intentionally to explore different mechanisms.


Hi Bpp,

Interesting thoughts. I think, however, that the end result would effectively be the same whether you filter the data or apply a correction on the front end. Either way you are altering the tails of the distributions vs. a standard MC approach.
Post Reply