1
$\begingroup$

I estimated 5 different garch models using rugarch package as:

spec1 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)), 
                mean.model = list(armaOrder = c(1,1), include.mean = T), 
                distribution.model = "norm", fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04))
spec2 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)), 
                mean.model = list(armaOrder = c(1,1), include.mean = T), 
                distribution.model = "std", fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04, omega = 0))
spec3 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)), 
                mean.model = list(armaOrder = c(1,1), include.mean = T), 
                distribution.model = "ged", fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04, omega = 0))
spec4 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)), 
                mean.model = list(armaOrder = c(1,1), include.mean = T), 
                distribution.model = "sstd", fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04, omega = 0))
spec5 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,1)), 
                mean.model = list(armaOrder = c(1,1), include.mean = T), 
                distribution.model = "nig", fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04, omega = 0)).
norfitt <- ugarchfit(spec1, ret, out.sample = 250, solver = "solnp", 
                    fit.control = list(stationarity = 1), rec.int = "all")
stdfitt <- ugarchfit(spec2, ret, out.sample = 250, solver = "solnp", 
                fit.control = list(stationarity = 1), rec.int = "all")
gefitt <- ugarchfit(spec3, ret, out.sample = 250, solver = "solnp", 
               fit.control = list(stationarity = 1), rec.int = "all")
sstdfitt <- ugarchfit(spec4, ret, out.sample = 250, solver = "solnp", 
                 fit.control = list(stationarity = 1), rec.int = "all")
nigfitt <- ugarchfit(spec5, ret, out.sample = 250, solver = "solnp", 
                fit.control = list(stationarity = 1), rec.int = "all").
garn.fcst = ugarchforecast(norfitt, n.roll=100, n.ahead=1)
garst.fcst = ugarchforecast(stdfitt, n.roll=100, n.ahead=1)
garsst.fcst = ugarchforecast(sstdfitt, n.roll=100, n.ahead=1)
garged.fcst = ugarchforecast(gefitt, n.roll=100, n.ahead=1)
garnig.fcst = ugarchforecast(nigfitt, n.roll=100, n.ahead=1)

And then:

fcst.list = list(garn=garn.fcst,
             garst=garst.fcst,
             garsst=garsst.fcst,
             garged=garged.fcst,
             garnig=garnig.fcst)
fpm.mat = sapply(fcst.list, fpm)
fpm.mat

Is it normal that I get exactly the same result?

as:  garn        garst       garsst      garged      garnig     
MSE 4.98334e-05 4.98334e-05 4.98334e-05 4.98334e-05 4.98334e-05
MAE 0.00549423  0.00549423  0.00549423  0.00549423  0.00549423 
DAC 0.5544554   0.5544554   0.5544554   0.5544554   0.5544554  
$\endgroup$
2
$\begingroup$

You have fixed the conditional mean model by specifying fixed.pars = list(ar1 = 0.6038, ma1 = -0.6701, mu = 2e-04). Since the forecast accuracy measures you are using measure the accuracy of the conditional mean forecasts, no wonder you are getting the same result; your conditional mean model is always the same. What is different among the different specifications is the conditional variance model, but you are not measuring its performance.

$\endgroup$
  • $\begingroup$ thanks! and how do I measure conditional variance performace? I have not found yet which R-function to use $\endgroup$ – Alessandro Mar 1 '16 at 15:11
  • $\begingroup$ Measuring the fit of conditional variance is nontrivial. Actually, most of the papers I have seen do not do that at all. But see Andersen, T.G. & T. Bollerslev (1998) Answering the skeptics: Yes, standard volatility models do provide accurate forecasts. International Economic Review, 39 (4), 885–905 for a methodology. $\endgroup$ – Richard Hardy Mar 1 '16 at 15:20
  • $\begingroup$ @Alessandro, I was going through my old answers and noticed this one was not accepted. Do you perhaps need further clarification? $\endgroup$ – Richard Hardy Feb 12 '17 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.