[R-SIG-Finance] Loop For - ARMA+GARCH Model estimation and selection
Andrea Bosio
andrea_bosio at rocketmail.com
Sun Oct 16 21:53:05 CEST 2016
Hello,
I would like to put you the other question that I have about how to use
loops for in R. The first is entitled “Loop For – ARMA model estimation
and selection”. If you take a look and try to give me an answer to the
first, I would be extremely thankful. I am an R beginner and I need R
technical experts’ judgement to conduct my empirical analysis as
efficiently as I can.
My second question is on how to loop over six variables (a,b,c,d,e) for
an ARMA+GARCH model estimation.
Here is the function to loop.
USDlogreturns=diff(log(prices))
model<-ugarchspec(variance.model=list(model="fGARCH",submodel="c",garchOrder=c(d,e)),mean.model=list(armaOrder=c(a,b),include.mean=TRUE),distribution.model="f")
modelfit<-ugarchfit(spec=model, data=USDlogreturns, solver="hybrid")
Here is a description of the variables from a to f to be looped.
·ARMA orders (a,b). Both orders should be allowed to vary between 0 and 10.
·GARCH version (c). The versions should be allowed to switch from GARCH
to AVGARCH, GJRGARCH, TGARCH, NGARCH, NAGARCH, APARCH and EGARCH. Note
that the EGARCH version must be passed directly as “model” to the
ugarchfit function.
·GARCH orders (d,e). The d order should be allowed to vary between 1 and
2. The e order should be allowed to vary between 0 and 2.
·Error distribution (f). The error distribution should be allowed to
switch from Normal Gaussian to Student-T and GED.
The objects to be returned from the loop are the model Akaike
Information Criterion indicators, the p-values of the ADF test for
standardized (stz) residual stationarity, the p-values of the Box-Ljung
tests for stz residual serial uncorrelation and independence and the
p-values of the Jarque-Bera test for stz residual normality. Here is the
full list of the objects.
armagarchaic=infocriteria(modelfit)[1]
armagarchadftest=adf.test(modelfit at fit$z,k=trunc((length(modelfit at fit$z)-1)^(1/3)))$p.value
armagarchboxtest=Box.test(modelfit at fit$z,lag=30,fitdf=d+e,type=c("Ljung-Box"))$p.value
armagarchboxtest2=Box.test(modelfit at fit$z^2,lag=30,fitdf=d+e,type=c("Ljung-Box"))$p.value
armagarchgoftest=gof(modelfit,c(20,30,40,50))
P.S. How do you tell R to set (d+e) (i.e. the sum of ARCH and GARCH
orders) as fitdf in the Box-Ljung test command? Is it right as I typed?
If you also believe that I should run the same model estimation in a
simpler and efficient way, let me know on how to do that.
Thank you in advance.
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
[[alternative HTML version deleted]]
More information about the R-SIG-Finance
mailing list