Hello,
I have been conducting some analysis on persistency in fund managers' skill in creating value for their investors.
I have sorted all funds based on skill ratio each time, t, as variable decile.
To analyze the differences between the performance of different deciles, I have used the rangestat command in a rolling window mean estimation. Since I need to consider each decile at each time, I'm not sure if stata is doing it correctly.
I'm supposed to use a measurement horizon of 3y-10y and estimate the skill for each decile. The deciles are supposed to "update" after each iteration of the rolling window estimation.
The simplest way of putting it is that stata measures mean skill for all 10 deciles, that cathegorize the different funds, in the interval 1-36 first. Then it does the same but with different funds behind the decile cathegorization. In this way, I can check if there is persistency in skill.
Below is my code and my problem lies on the "by(decile)" part, where I dont seem to find a way to tell stata that each iteration is supposed to consider new funds behind the deciles (different from the previous iteration).
The deciles are correct as they are defined for each date, meaning each fund is put in 1 of 10 deciles for each date.
Code:
by fund: gen skillratio = mskill / varskill
bys date: astile decile = skillratio, nq(10) // sort all funds based on skillratio each time, t
rangestat (mean) skill, by(decile) interval(date 1 36) // m=36
rangestat (mean) skill, by(decile) interval(date 1 48) // m=48
rangestat (mean) skill, by(decile) interval(date 1 60) // m=60
rangestat (mean) skill, by(decile) interval(date 1 72) // m=72
rangestat (mean) skill, by(decile) interval(date 1 84) // m=84
rangestat (mean) skill, by(decile) interval(date 1 96) // m=96
rangestat (mean) skill, by(decile) interval(date 1 108) // m=108
rangestat (mean) skill, by(decile) interval(date 1 120) // m=120
When plotting the graph i get 10 lines that are pretty identical (though not fully identical) which does not coincide with the paper that I'm working with since it exhibits much more variation in the graphs.
Therefore, I assume that what I'm doing with the "by(decile)" part must be wrong since I would expect some more variation between the plotted graphs.
I have tried doing by(deciles date), however its flawed as it does not distinguish between the measurement horizons, m, and I only get the same graph across the different measurement horizons.
I have been looking around and not found anything on this problem so any help is greatly appreciated.
Beforehand, thank you for your insights!
I have been conducting some analysis on persistency in fund managers' skill in creating value for their investors.
I have sorted all funds based on skill ratio each time, t, as variable decile.
To analyze the differences between the performance of different deciles, I have used the rangestat command in a rolling window mean estimation. Since I need to consider each decile at each time, I'm not sure if stata is doing it correctly.
I'm supposed to use a measurement horizon of 3y-10y and estimate the skill for each decile. The deciles are supposed to "update" after each iteration of the rolling window estimation.
The simplest way of putting it is that stata measures mean skill for all 10 deciles, that cathegorize the different funds, in the interval 1-36 first. Then it does the same but with different funds behind the decile cathegorization. In this way, I can check if there is persistency in skill.
Below is my code and my problem lies on the "by(decile)" part, where I dont seem to find a way to tell stata that each iteration is supposed to consider new funds behind the deciles (different from the previous iteration).
The deciles are correct as they are defined for each date, meaning each fund is put in 1 of 10 deciles for each date.
Code:
by fund: gen skillratio = mskill / varskill
bys date: astile decile = skillratio, nq(10) // sort all funds based on skillratio each time, t
rangestat (mean) skill, by(decile) interval(date 1 36) // m=36
rangestat (mean) skill, by(decile) interval(date 1 48) // m=48
rangestat (mean) skill, by(decile) interval(date 1 60) // m=60
rangestat (mean) skill, by(decile) interval(date 1 72) // m=72
rangestat (mean) skill, by(decile) interval(date 1 84) // m=84
rangestat (mean) skill, by(decile) interval(date 1 96) // m=96
rangestat (mean) skill, by(decile) interval(date 1 108) // m=108
rangestat (mean) skill, by(decile) interval(date 1 120) // m=120
When plotting the graph i get 10 lines that are pretty identical (though not fully identical) which does not coincide with the paper that I'm working with since it exhibits much more variation in the graphs.
Therefore, I assume that what I'm doing with the "by(decile)" part must be wrong since I would expect some more variation between the plotted graphs.
I have tried doing by(deciles date), however its flawed as it does not distinguish between the measurement horizons, m, and I only get the same graph across the different measurement horizons.
I have been looking around and not found anything on this problem so any help is greatly appreciated.
Beforehand, thank you for your insights!
Comment