Dueker (1997) output
-
DanielKing
- Posts: 8
- Joined: Fri May 25, 2012 9:08 am
Dueker (1997) output
Dear Tom(s)
Following your previous advice, I have included Dueker's (1997) MS GARCH (with a switching normalisation factor) in my current study as a sharper alternative to Gray(1996).
As part of the assessment, I am trying to measure forecasting performance of the various models. The problem that I'm having with the Dueker model is that it produces impossibly high variance estimates (on average about 50 to 100 times as high as the observed squared residual). Specifically, the hs(DFFilterSize) series, which are supposed to provide a measure of the variance in each regime, don't seem to be related to the actual scale of the data. This is not easily seen because the coefficient estimates seem realistic.
This problem occurs using both the replication file example and my own data.
Please let me know if I'm missing something.
Thank you for any help offered.
Regards,
Daniel King
Following your previous advice, I have included Dueker's (1997) MS GARCH (with a switching normalisation factor) in my current study as a sharper alternative to Gray(1996).
As part of the assessment, I am trying to measure forecasting performance of the various models. The problem that I'm having with the Dueker model is that it produces impossibly high variance estimates (on average about 50 to 100 times as high as the observed squared residual). Specifically, the hs(DFFilterSize) series, which are supposed to provide a measure of the variance in each regime, don't seem to be related to the actual scale of the data. This is not easily seen because the coefficient estimates seem realistic.
This problem occurs using both the replication file example and my own data.
Please let me know if I'm missing something.
Thank you for any help offered.
Regards,
Daniel King
Re: Dueker (1997) output
The HS series isn't the variance---instead it's a unit-free measure of persistence. If you look at the way H is generated:
function GARCHRegimeH time
type vector GARCHRegimeH
type integer time
*
local integer i
*
dim GARCHRegimeH(nexpand)
do i=1,nexpand
compute GARCHRegimeH(i)=1.0+msg(2)*hs(%MSLagState(i,1))(time-1)+$
msg(1)*uus(%MSLagState(i,1))(time-1)/gv(%MSLagState(i,1))
end do i
end
it has that 1.0 constant, which is the normalization. Note that the squared residuals need to be scaled down by the regime-specific variance scaling as part of the update for H. The working variance is H x GV.
function GARCHRegimeH time
type vector GARCHRegimeH
type integer time
*
local integer i
*
dim GARCHRegimeH(nexpand)
do i=1,nexpand
compute GARCHRegimeH(i)=1.0+msg(2)*hs(%MSLagState(i,1))(time-1)+$
msg(1)*uus(%MSLagState(i,1))(time-1)/gv(%MSLagState(i,1))
end do i
end
it has that 1.0 constant, which is the normalization. Note that the squared residuals need to be scaled down by the regime-specific variance scaling as part of the update for H. The working variance is H x GV.
-
DanielKing
- Posts: 8
- Joined: Fri May 25, 2012 9:08 am
Re: Dueker (1997) output
Thank you very much, that makes a lot more sense!
-
DanielKing
- Posts: 8
- Joined: Fri May 25, 2012 9:08 am
Re: Dueker (1997) output
I am struggling to comprehend how one would update the hs series for the sake of forecasting.
I imagine it would be, for example:
frml hsfore1 hs(1) = 1.0 + msg(2)*hs(1){1} + msg(1)*uus(1){1}/gv(1)
and similarly for hs(2).
Is this formula appropriate?
I imagine it would be, for example:
frml hsfore1 hs(1) = 1.0 + msg(2)*hs(1){1} + msg(1)*uus(1){1}/gv(1)
and similarly for hs(2).
Is this formula appropriate?
Re: Dueker (1997) output
It would be the standard for extrapolating GARCH(1,1) models where the final term will simplify to msg(1)*hs(1){1} after the first period out-of-sample.
frml hsfore1 hs(1) = 1.0 + msg(2)*hs(1){1} + msg(1)*uus(1){1}/gv(1)
frml hsfore1 hs(1) = 1.0 + msg(2)*hs(1){1} + msg(1)*uus(1){1}/gv(1)