Bollerslev and Mikkelson(1996) FIEGARCH Model
Bollerslev and Mikkelson(1996) FIEGARCH Model
This is an example of estimating a FIEGARCH (Fractionally Integrated EGARCH) model from Bollerslev and Mikkelson(1996), "Modeling and pricing long memory in stock market volatility", Journal of Econometrics, vol 73, pp 151-184. The first example file does a FIGARCH, though in a bit more complicated setting than for the Baillie, Bollerslev, Mikkelson example, since it also includes a shift variable for the variance; the second does the FIEGARCH.
Note that the FIEGARCH estimates take a very long time with a data set this size. The FIGARCH estimates, by contrast, are quite quick because the fractional integration is applied to the observable eps^2, which depends only upon the data and the mean parameters. As a result, that can be computed once at the start of each function evaluation. The DIFF instruction with FRACTION executes very quickly because it works in the frequency domain; as a result, the time requirement is on the order of T log2 T. FIEGARCH applies fractional integration to a function of eps/sqrt(h). Since the h needs to be computed recursively, there is no good alternative to crunching out the long lag filter at each data point. As a result, the time requirement is on the order of T(T+1)/2. When T is 9000, the timing ratio between FIEGARCH and FIGARCH is on the order of 100's.
Note that the FIEGARCH estimates take a very long time with a data set this size. The FIGARCH estimates, by contrast, are quite quick because the fractional integration is applied to the observable eps^2, which depends only upon the data and the mean parameters. As a result, that can be computed once at the start of each function evaluation. The DIFF instruction with FRACTION executes very quickly because it works in the frequency domain; as a result, the time requirement is on the order of T log2 T. FIEGARCH applies fractional integration to a function of eps/sqrt(h). Since the h needs to be computed recursively, there is no good alternative to crunching out the long lag filter at each data point. As a result, the time requirement is on the order of T(T+1)/2. When T is 9000, the timing ratio between FIEGARCH and FIGARCH is on the order of 100's.
Re: FIEGARCH model
Many thanks for the very useful FIGARCH and FIEGARCH codes provided here. Is there available an extension that provides the generalisation to the HYGARCH model described in
J. Davidson (2004) "Moment and memory properties of linear conditional heteroscedasticity models, and a new model", Journal of Business and Economic Statistics 22(1), pp16-29.
Kind regards,
BDW
J. Davidson (2004) "Moment and memory properties of linear conditional heteroscedasticity models, and a new model", Journal of Business and Economic Statistics 22(1), pp16-29.
Kind regards,
BDW
Re: FIEGARCH model
In the FIGARCH code, you have the following formula for the evolution of the variance:
For the HYGARCH model in the paper, this would be replaced with
If alpha=1 and delta=0, this is the basic FIGARCH model.
Code: Select all
frml varf = c+b*h{1}+uu-b*uu{1}-uufilter
Code: Select all
frml varf = omega*(1-beta)+beta*h{1}+alpha*uu-(beta-(1-alpha)*delta)*uu{1}-alpha*uufilter+alpha*delta*uufilter{1}
Re: FIEGARCH model
This is "spot on". Thanks very much.
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
i wanted to know why the gap column is needed in the data set? could you please explain?
Looking forward for your reply,
Prashant
Looking forward for your reply,
Prashant
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
Have you read the paper? It's the number of extra (calendar) days between observations (thus 2 for the typical Monday after Friday). The assumption is that the variance increases systematically based upon that.
Bollerslev-Mikkelson 1996
Hello Tom,
I tried applying the RATS code of Bollerslev and Mikkelson(1996) to equity data and when i got to
"maximize(parmset=meanparms+garchparms,trace,iters=500) logl gstart gend"
I received the following error message
"## SR10. Missing Values And/Or SMPL Options Leave No Usable Data Points"
I have scoured through the data for missing observation and found none.
When I did the log transformation and printed results, I noticed that the first four columns had zeros. Is this the cause?
Many hours with the RATS manual and browsing through the help file have gotten me nowhere.
I do not know how to work around this problem and I need your help.
Gorgorm
I tried applying the RATS code of Bollerslev and Mikkelson(1996) to equity data and when i got to
"maximize(parmset=meanparms+garchparms,trace,iters=500) logl gstart gend"
I received the following error message
"## SR10. Missing Values And/Or SMPL Options Leave No Usable Data Points"
I have scoured through the data for missing observation and found none.
When I did the log transformation and printed results, I noticed that the first four columns had zeros. Is this the cause?
Many hours with the RATS manual and browsing through the help file have gotten me nowhere.
I do not know how to work around this problem and I need your help.
Gorgorm
Bollerslev-Mikkelson 1996
See Section 4.15 of the User's Guide. I'm assuming that you picked a value for GSTART which is too early (given lost lags) or that you haven't initialized all of the variables that are used in the recursion.
Re: Bollerslev-Mikkelson 1996
Hello Tom,
I have checked the code and I think all the variables are initialised. it now run without the syntax error.
The only problem is that the estimation cannot converge. I have increased the number of sub-iterations, introduce npal (criterion value=value, CVCRIT=0.00000001)before maximize(.......). it worked for the AR3-EGARCH model, but for the I-EGARCH and the FI-EGARCH, the convergence problem does not go away .
Is there any way around this?
Gorgorm
I have checked the code and I think all the variables are initialised. it now run without the syntax error.
The only problem is that the estimation cannot converge. I have increased the number of sub-iterations, introduce npal (criterion value=value, CVCRIT=0.00000001)before maximize(.......). it worked for the AR3-EGARCH model, but for the I-EGARCH and the FI-EGARCH, the convergence problem does not go away .
Is there any way around this?
Gorgorm
Re: Bollerslev-Mikkelson 1996
Increasing the number of subiterations is almost never the right strategy. The model in the original paper converges without preliminary simplex iterations, but with your data, you may need those. Also, the AR(3) is chosen for the original data set. Have you checked whether it's appropriate for yours?
Re: Bollerslev-Mikkelson 1996 and Den Haan JME 2000
Hello Tom,
Thanks a lot. I have been able to get it to converge. I used "logl gstart+4 gend" and it worked.
Thanks a lot.
Thanks a lot. I have been able to get it to converge. I used "logl gstart+4 gend" and it worked.
Thanks a lot.
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
Hello,
I know this may seem to be trivial, but as a new user to RATS, I am having difficulties evaluating the fiegarch model without the AR terms- which may be a better model given my data set.
Is there a way to do this?
Looking forward to your response and thanking you in anticipation.
I know this may seem to be trivial, but as a new user to RATS, I am having difficulties evaluating the fiegarch model without the AR terms- which may be a better model given my data set.
Is there a way to do this?
Looking forward to your response and thanking you in anticipation.
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
You would replace
linreg r
# constant r{1 2 3}
with
linreg r
# constant
Everything else follows from that. Did you read the caution about how long it takes to estimate this model?
linreg r
# constant r{1 2 3}
with
linreg r
# constant
Everything else follows from that. Did you read the caution about how long it takes to estimate this model?
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
Firstly, thank you for the quick reply.TomDoan wrote:You would replace
linreg r
# constant r{1 2 3}
with
linreg r
# constant
Everything else follows from that. Did you read the caution about how long it takes to estimate this model?
Intuitively, I had already thought of doing such a replacement and I am also aware of the long computation time.
Unfortunately,
I end up with the error: "## SR10. Missing Values And/Or SMPL Options Leave No Usable Data Points " and only the parameters MU(1), OMEGA and DELTA are calculated in a very short computation time here.
I have also tried this replacement in the figarch code(for all the places where" linreg r # constant r{1 2 3} "is present) but once again the same error occurs.
Re: Bollerslev and Mikkelson(1996) FIEGARCH Model
If you take the lags out of the mean model, the GSTART is too early to compute the variance recursion. If you replace
compute gstart=%regstart(),gend=%regend()
with
compute gstart=%regstart()+2,gend=%regend()
it should work. (I assume you have a "GAP" series that runs from the start of the data, as you need two lags of that as well).
compute gstart=%regstart(),gend=%regend()
with
compute gstart=%regstart()+2,gend=%regend()
it should work. (I assume you have a "GAP" series that runs from the start of the data, as you need two lags of that as well).