rugarch - estimation problem with an external regressor in the GARCH(1, 1) model
Harald, 1. The data you are passing to the variance equation is negative, while the constraints on the regressor coefficients in the conditional variance equation default to a positive range (0,100). You can of course change the defaults with the "setbounds<-" method. 2. Whether you divide by 1000 or any other value, what you should compare are the likelihoods of the solution. They should all be VERY close, but it is likely that they are NOT the same since scaling of the parameters+bounds does not use any sophisticated algorithm. To avoid scaling problems and having to make adjustments to default solver parameters, you really should try to pass values in the external regressor which are close in scale to the variance equation. 3. Try using the eGARCH model when using external regressors in the variance equation since it guarantees positivity. e.g. ###################################################################### gspec.ru <- ugarchspec(variance.model=list(model="eGARCH", garchOrder=c(1,1), external.regressors=(RVARtmp1/100)^2), mean.model=list(arfima=FALSE, armaOrder=c(0,0), include.mean=TRUE), distribution="std") gfit <- ugarchfit(gspec.ru, RDAXtmp, solver="nlminb") ###################################################################### likelihood(gfit) = 6034 Compare that with the likelihood of a non-RV enhanced model=5818 (info criteria/LR Test will show that difference is significant). -Alexios
On 01/03/2013 12:35, Harald Weiss wrote:
Hi R-users,
I'm estimating an extended GACH(1,1) model (solver is "nlminb") where
realized volatility is added to the variance equation as an explanatory
variable. Since the estimated coefficient of realized volatility was
very small, I divided it by 1,000, 10,000, and so on. While realized
volatility was still significant when I divided it by 1,000, the
variable gets insignificant if I divide by 100,000. Using the solver
"nloptr" I receive similar results. To my knowledge this should
(normally) not happen. If I use the solver "solnp" realized volatility
is not significant. However, many studies found that realized volatility
is significant when added to the variance equation. My question is how
can I explain this result. Is this due to an instability of the
algorithm or perhaps the accuracy of the calculation in R?
Than you very much for helping me,
Harald
My code is:
library(rugarch)
rm(list=ls())
DATA <- read.table("20130121_rdax-Lrvar_1month.csv",header=FALSE,sep=";")
RDAX <- DATA[2:2035,1]
RVAR <- DATA[2:2035,4]
D <- matrix(RDAX)
B <- matrix(RVAR)
RDAXtmp <- D[1:2034,1]
RVARtmp1 <- matrix(B[1:2034,1])
#1. model estimation based on original data
gspec.ru <- ugarchspec(variance.model=list(model="sGARCH",
garchOrder=c(1,1), external.regressors=RVARtmp1),
mean.model=list(arfima=FALSE, armaOrder=c(0,0), include.mean=TRUE),
distribution="ged")
gfit <- ugarchfit(gspec.ru, RDAXtmp, solver="nlminb", fit.control =
list(stationarity = 1))
#2. model estimation based on adjusted volatility
RVARtmp2 <- RVARtmp1/1000
gspec.ru2 <- ugarchspec(variance.model=list(model="sGARCH",
garchOrder=c(1,1), external.regressors=RVARtmp2),
mean.model=list(arfima=FALSE, armaOrder=c(0,0), include.mean=TRUE),
distribution="ged")
gfit2 <- ugarchfit(gspec.ru2, RDAXtmp, solver="nlminb", fit.control =
list(stationarity = 1))
#3. model estimation based on adjusted volatility
RVARtmp3 <- RVARtmp1/10000
gspec.ru3 <- ugarchspec(variance.model=list(model="sGARCH",
garchOrder=c(1,1), external.regressors=RVARtmp3),
mean.model=list(arfima=FALSE, armaOrder=c(0,0), include.mean=TRUE),
distribution="ged")
gfit3 <- ugarchfit(gspec.ru3, RDAXtmp, solver="nlminb", fit.control =
list(stationarity = 1))
#4. model estimation based on adjusted volatility
RVARtmp4 <- RVARtmp1/100000
gspec.ru4 <- ugarchspec(variance.model=list(model="sGARCH",
garchOrder=c(1,1), external.regressors=RVARtmp4),
mean.model=list(arfima=FALSE, armaOrder=c(0,0), include.mean=TRUE),
distribution="ged")
gfit4 <- ugarchfit(gspec.ru4, RDAXtmp, solver="nlminb", fit.control =
list(stationarity = 1))
_______________________________________________ R-SIG-Finance at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.