I'm dealing with a GARCH-M model that I've estimated using R and EViews. Here are its mean and variance equations.
Mean equation:
$$ y_t=\mu + \rho \sigma^2_t + \varepsilon_t $$
Variance equation:
$$ \sigma^2_t = \omega + \alpha \varepsilon_{t-1}^2 + \beta \sigma^2_{t-1} + T$$
where T is a dummy variable containing 0 and 1 to indicate structural change.
Here is my EViews result:
eviews result http://s25.postimg.org/m8gc8y6ql/eviews_result.jpg
And my R code is as follows:
#get data
re=read.table("return.csv",sep=",",header=TRUE)
......
xts<-as.xts(re[,-1],order.by=re[,1])
......
T<- as.matrix(xts[,2])
#GARCH specification
garchspec<- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1),
submodel = NULL, external.regressors = T,
variance.targeting = FALSE),
mean.model = list(armaOrder = c(0, 0), include.mean = TRUE,
archm = TRUE, archpow = 1, arfima = FALSE,
external.regressors = NULL, archex = FALSE),
distribution.model = "ged",
start.pars = list(), fixed.pars = list())
#fitting
fit<-ugarchfit(spec=garchspec, data=xts[,1], out.sample = 0,solver="solnp",
solver.control = list(trace=0), fit.control =
list(stationarity = 1, fixed.se = 0, scale = 0, rec.init = 0.7))
show(fit)
It gives these results:
As you can see, the dummy variable (denoted by vxreg1
) is totally insignificant using rugarch
in R contrary to a 2.58% p-value in the EViews result. Other estimates have some differences with their counterparts, but they are all minor.
I checked the vignette of rugarch
package for many times and cannot find any mistakes in the syntax, and R didn't show any error as well. I wonder what the problem is.
I really appreciate it if you can solve my problem.
Best Answer
This is quiet old thread and screenshots are not available anymore, but probably somebody will find my comment usefull.
According to the mean equation we're dealing with GARCH-M which has $σ^2_t$ in mean equation. But topicstarter specified ARCH-M in ugarchspec() which has $σ_t$ in mean. To specify GARCH-M one should not only include parameter archm = TRUE inside of ugarchspec(mean.model = list(...)), but also archpow = 2.