I have been working with the two packages fGarch and rugarch to fit a GARCH(1,1) model to my exchange rate time series consisting of 3980 daily log-returns.
fx_rates <- data.frame(read.csv("WMCOFixingsTimeSeries.csv", header=T, sep=";", stringsAsFactors=FALSE))
#data series
EURUSD <- ts(diff(log(fx_rates$EURUSD), lag=1), frequency=1)
#GARCH(1,1)
library(timeSeries)
library(fGarch)
x <- EURUSD
fit <- garchFit(~garch(1,1), data=x, cond.dist="std", trace=F, include.mean=F)
fit@fit$matcoef
library(rugarch)
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
mean.model=list(armaOrder=c(0,0), include.mean=F), distribution.model="std")
gfit <- ugarchfit(spec, x, solver="hybrid", fit.control=list(stationarity=0))
gfit@fit$matcoef
The two models show the following results:
fGarch:
fit@fit$matcoef
Estimate Std. Error t value Pr(>|t|)
omega 1.372270e-07 6.206406e-08 2.211054 2.703207e-02
alpha1 2.695012e-02 3.681467e-03 7.320484 2.471356e-13
beta1 9.697648e-01 3.961845e-03 244.776060 0.000000e+00
shape 8.969562e+00 1.264957e+00 7.090804 1.333378e-12
rugarch:
gfit@fit$matcoef
Estimate Std. Error t value Pr(>|t|)
omega 1.346631e-07 3.664294e-07 0.3675008 7.132455e-01
alpha1 2.638156e-02 2.364896e-03 11.1554837 0.000000e+00
beta1 9.703710e-01 1.999087e-03 485.4070764 0.000000e+00
shape 8.951322e+00 1.671404e+00 5.3555696 8.528729e-08
I have found a thread http://r.789695.n4.nabble.com/Comparison-between-rugarch-and-fGarch-td4683770.html on why the estimates are not identical, however I can't figure out the big difference in the standard errors and therethrough the different significancs for omega. The difference is not caused by the stationarity constraint as omega remains insignificant. Does anybody know how the standard errors of the estimated parameters (omega, alpha, beta and nu (shape)) are calculated?