[R-SIG-Finance] Different results using "rugarch" and "fGarch" packages

Wildi Marc (wlmr) wlmr at zhaw.ch
Fri Sep 19 13:39:10 CEST 2014


Here's an explanation:

-ARMA-models are not uniquely identified: x_t-a1x_{t-1}=epsilon_t-a1 epsilon_{t-1} is the same as x_t=epsilon_t i.e. white noise.

-Your two ARMA-models are fakes: both sides of each equality could be simplified (AR- and MA lag polynomials are `almost' identical). Stated otherwise: in both cases you really just have white noise (efficient market hypothesis...)! The spurious differences are due to (generally inocuous) differences in numerical algorithms. Since the estimation problem is nearly singular, you can obtain substantially different estimates depending on the algorithm. Mind you: these estimates are `fakes'.

To summarize: everything's OK. Just simplify your ARMA-model specification.
________________________________
Von: r-sig-finance-bounces at r-project.org [r-sig-finance-bounces at r-project.org]" im Auftrag von "Gareth McEwan [mcewan.gareth at gmail.com]
Gesendet: Freitag, 19. September 2014 13:22
An: r-sig-finance at r-project.org
Betreff: [R-SIG-Finance] Different results using "rugarch" and "fGarch" packages

Hi Alexios

I am modelling the same data and getting vastly different estimates using "rugarch" package and "fGarch" package (all installs and packages have been recently downloaded and should be up to date). The data is 242 monthly log returns in raw log return format (i.e. not multiplied by 100 to get percent format). I have attached the file for reproducible results.

In estimating an ARMA(2,2)-GARCH(1,1) with "normal" errors, I get the following output using:

(1) "rugarch" package:
spec <- ugarchspec(variance.model=list(model="sGARCH",garchOrder=c(1,1),
          submodel=NULL,external.regressors=NULL,variance.targeting=F),
          mean.model=list(armaOrder=c(2,2),include.mean=T,external.regressors=NULL),
          distribution.model="norm")
tempgarch <- ugarchfit(spec=spec,data=ALSI.reg.log.ret,solver="hybrid")
show(tempgarch)

Output:
Optimal Parameters
------------------------------------
              Estimate     Std. Error     t value       Pr(>|t|)
mu         0.015107    0.003310     4.56480      0.000005
ar1         0.561145    0.577557     0.97158      0.331258
ar2        -0.303709    0.526705    -0.57662      0.564195
ma1      -0.629355    0.555266    -1.13343      0.257033
ma2       0.430343    0.511488     0.84135      0.400149
omega   0.000257    0.000343     0.75094      0.452687
alpha1   0.197622    0.148026     1.33505      0.181862
beta1     0.730256    0.228730     3.19265      0.001410

(2) "fGarch" package
garch.fit=garchFit(formula=~arma(2,2)+garch(1,1),data=ALSI.reg.log.ret,cond.dist="norm",trace=F,include.mean=T)
summary(garch.fit)

Output:
Error Analysis:
              Estimate      Std. Error      t value    Pr(>|t|)
mu          0.0368275   0.0070622    5.215      0.000000184 ***
ar1        -0.4909910   0.0955405   -5.139      0.000000276 ***
ar2        -0.8424945   0.0538062  -15.658     < 2e-16 ***
ma1       0.4733331   0.0904955    5.230      0.000000169 ***
ma2       0.8844500   0.0550194   16.075     < 2e-16 ***
omega   0.0003106   0.0001838    1.690      0.0910 .
alpha1   0.3696620   0.1496237    2.471      0.0135 *
beta1     0.5808720   0.1434332    4.050      0.000051267 ***

I am confused as to why the output differs to such a great extent. Any idea why this is happening?

Thank you very much
Gareth


	[[alternative HTML version deleted]]



More information about the R-SIG-Finance mailing list