Skip to content

Problem with estimation results of ARMAX-GARCHX

6 messages · Alexios Ghalanos, Philipp Lammers

#
Hello everybody,

 

I am currently facing an estimation problem in the ARMAX-GARCHX model. The
"rugarch"-package is used for estimation. The problem arises because my
professor is not satisfied with the estimation results, he expects the
ARMAX-GARCH results in the mean equation to be the same as the normal ARMAX
results. But this is not the case and the results differ significantly. 

 

I already wrote to the programmer of the rugarch package, who thankfully
gave me a hint , that the results are different under the presence of
heteroskedasticity. He recommended me to post to this mailing list. Can
anybody confirm that the results are different? Where can I find this issue
in the literature?

 

My R-code can be downloaded from my Dropbox:
https://www.dropbox.com/s/k557ev4lmmnykqu/ARMAGARCH.R?dl=0 .Note that the
corresponding data will be downloaded from the Dropbox as well, when the
code is executed.

 

I hope that you can help me.

 

Thank you all in advance.

 

Philipp Lammers
#
Philipp,

In the presence of heteroscedasticity, there is a loss in the asymptotic
efficiency of the parameter estimates which are no longer BLUE (see the
original ARCH paper by Engle 1982). This effectively means that for most
datasets of length N (where N is some finite number), the parameters
will be somewhat different.
In the rugarch package, ARMA-GARCH is jointly estimated.

If you want to compare non-GARCH ARMA with the typical arima function in
R, use the arfimaspec/arfimafit functions (or set the ugarchspec
garchOrder to c(0,0) and the stationarity flag in the fit.control to 0).
You should also choose method="ML" for arima.

Regards,

Alexios

PS I could not download your dataset from dropbox (only the code).
On 18/09/2014 10:35, Philipp Lammers wrote:
#
Dear Alexios,

thank you for your help. Now, I get decent results for AR and MA part from
ugarchfit. These are approximately the same as for arima(). Nevertheless,
the results for the exogenous variables added are still different between
the two functions.

I attachted the data in a .csv file.

Regards,

Philipp

-----Urspr?ngliche Nachricht-----
Von: alexios ghalalanos [mailto:alexios at 4dscape.com] 
Gesendet: Donnerstag, 18. September 2014 10:01
An: Philipp Lammers; r-sig-finance at r-project.org
Cc: alexios at 4dscape.com
Betreff: Re: [R-SIG-Finance] Problem with estimation results of ARMAX-GARCHX

Philipp,

In the presence of heteroscedasticity, there is a loss in the asymptotic
efficiency of the parameter estimates which are no longer BLUE (see the
original ARCH paper by Engle 1982). This effectively means that for most
datasets of length N (where N is some finite number), the parameters will be
somewhat different.
In the rugarch package, ARMA-GARCH is jointly estimated.

If you want to compare non-GARCH ARMA with the typical arima function in R,
use the arfimaspec/arfimafit functions (or set the ugarchspec garchOrder to
c(0,0) and the stationarity flag in the fit.control to 0).
You should also choose method="ML" for arima.

Regards,

Alexios

PS I could not download your dataset from dropbox (only the code).
On 18/09/2014 10:35, Philipp Lammers wrote:
significantly.
should go.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: data.csv
Type: application/vnd.ms-excel
Size: 31163 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20140918/ca233cdd/attachment.xlb>
#
Philipp,

I've checked your data and here are my comments:
spec <- arfimaspec(mean.model = list(armaOrder = c(1,
1),include.mean=FALSE,arfima=FALSE,
external.regressors=X),distribution.model ="norm")
setbounds(spec)<-list(mxreg1=c(-2,2), mxreg2=c(-2,2), mxreg3=c(-2,2))
fit1 <- arfimafit(spec,data=P)
fit2 = arima(P, order=c(1,0,1), method="ML",xreg=X, include.mean=FALSE)

cbind(c(coef(fit1),"LLH"=likelihood(fit1)), c(coef(fit2),
"sigma"=sqrt(fit2$sigma2), "LLH"=fit2$loglik))

ar1       0.22517917    0.22668311
ma1      -0.99999998   -0.99999860
mxreg1    1.39220340    1.35950370
mxreg2   -0.04714268   -0.04866735
mxreg3    0.03632310    0.03341936
sigma     0.34747055    0.34745002
LLH    -247.51441921 -250.50795353

As far as the pure arma estimation goes, I don't see any problems here.
rugarch and arima are identical (small difference which gives a higher
likelihood to the rugarch estimation is probably down to start-up
recursion method).

As regards the ARMA-GARCH model:

spec <- ugarchspec(mean.model = list(armaOrder = c(1,
1),include.mean=FALSE,arfima=FALSE,
external.regressors=X),distribution.model ="norm")
fit3 <- ugarchfit(spec,data=P)


data.frame("ARMA-GARCH"=c(coef(fit3), "LLH"=likelihood(fit3)))

          ARMA.GARCH
ar1      0.709683664
ma1     -0.997124020
mxreg1   0.448243364
mxreg2  -0.031824864
mxreg3  -0.016998532
omega    0.001552758
alpha1   0.315193600
beta1    0.241478834
LLH    942.895313178

The log-likelihood is significantly higher, but the GARCH persistence is
not very high. If you look at your dataset (P), you have a HUGE
spike/outlier. Try removing that and re-test for
heteroscedasticity...but I am guessing that you already know all this
since you must have learned it in class?

Alexios
On 18/09/2014 11:42, Philipp Lammers wrote:
#
Dear Alexios,

thank you for taking your time to help me.
Now I receive the exact results as you do.

But there is still a difference in the estimation of the external
parameters, if the ARMAX-GARCH is regarded. Is this due to the limited
asymptotic efficiency you mentioned?

Thank you.

Regards,

Philipp 


-----Urspr?ngliche Nachricht-----
Von: alexios ghalalanos [mailto:alexios at 4dscape.com] 
Gesendet: Donnerstag, 18. September 2014 11:15
An: Philipp Lammers; r-sig-finance at r-project.org
Cc: alexios at 4dscape.com
Betreff: Re: AW: [R-SIG-Finance] Problem with estimation results of
ARMAX-GARCHX

Philipp,

I've checked your data and here are my comments:
spec <- arfimaspec(mean.model = list(armaOrder = c(1,
1),include.mean=FALSE,arfima=FALSE,
external.regressors=X),distribution.model ="norm")
setbounds(spec)<-list(mxreg1=c(-2,2), mxreg2=c(-2,2), mxreg3=c(-2,2))
fit1 <- arfimafit(spec,data=P)
fit2 = arima(P, order=c(1,0,1), method="ML",xreg=X, include.mean=FALSE)

cbind(c(coef(fit1),"LLH"=likelihood(fit1)), c(coef(fit2),
"sigma"=sqrt(fit2$sigma2), "LLH"=fit2$loglik))

ar1       0.22517917    0.22668311
ma1      -0.99999998   -0.99999860
mxreg1    1.39220340    1.35950370
mxreg2   -0.04714268   -0.04866735
mxreg3    0.03632310    0.03341936
sigma     0.34747055    0.34745002
LLH    -247.51441921 -250.50795353

As far as the pure arma estimation goes, I don't see any problems here.
rugarch and arima are identical (small difference which gives a higher
likelihood to the rugarch estimation is probably down to start-up recursion
method).

As regards the ARMA-GARCH model:

spec <- ugarchspec(mean.model = list(armaOrder = c(1,
1),include.mean=FALSE,arfima=FALSE,
external.regressors=X),distribution.model ="norm")
fit3 <- ugarchfit(spec,data=P)


data.frame("ARMA-GARCH"=c(coef(fit3), "LLH"=likelihood(fit3)))

          ARMA.GARCH
ar1      0.709683664
ma1     -0.997124020
mxreg1   0.448243364
mxreg2  -0.031824864
mxreg3  -0.016998532
omega    0.001552758
alpha1   0.315193600
beta1    0.241478834
LLH    942.895313178

The log-likelihood is significantly higher, but the GARCH persistence is not
very high. If you look at your dataset (P), you have a HUGE spike/outlier.
Try removing that and re-test for heteroscedasticity...but I am guessing
that you already know all this since you must have learned it in class?

Alexios
On 18/09/2014 11:42, Philipp Lammers wrote:
#
I think I've already answered that question and also provided a reference which you can consult (apart from the myriad resources on the internet with regards to this).

Regards,

Alexios