View source: R/rugarch-tests.R
GMMTest | R Documentation |
Implements the GMM Orthogonality Test of Hansen.
GMMTest(z, lags = 1, skew=0, kurt=3, conf.level = 0.95)
z |
A numeric vector the standardized residuals. |
lags |
The number of lags to test for. |
skew |
The skewness of the standardized residuals (derived from the estimated model). This can be either a scalar or numeric vector the same size as z. |
kurt |
The kurtosis (not excess) of the standardized residuals (derived from the estimated model). This can be either a scalar or numeric vector the same size as z. |
conf.level |
The confidence level at which the Null Hypothesis is evaluated. |
This is a mispecification test based on Hansen's GMM procedure. Under a correctly specified model, certain population moment conditions should be satisfied and hold in the sample using the standardized residuals. The moment conditions can be tested both individually using a t-test or jointly using a Wald test (the vignette gives more details). The test returns a matrix (moment.mat) containing the first 4 moments statistics, their standard errors and t-values (2-sided t-test with alternative hypothesis that the value is not equal to zero). The matrix of joint conditions (joint.mat) contains the t-values and critical values of ‘Q2’, ‘Q3’ and ‘Q4’ representing the autocorrelation, given the chosen lags in the second, third and fourth moments and distributed as chi-squared with n.lag d.o.f, and the joint test (‘J’) for all moment conditions distributed chi-squared with 4+(n.lagx3) d.o.f.
A list with the following items:
joint.mat |
The matrix of the joint tests. |
moment.mat |
The matrix of the individual moment tests. |
H0 |
The Null Hypothesis. |
Decision |
Whether to reject or not the Null given the conf.level. |
Alexios Ghalanos
Hansen, L. (1982), Large Sample Properties of Generalized Method of Moments Estimators, Econometrica, 50(4), 1029–1054.
## Not run:
data(dji30ret)
spec = ugarchspec(mean.model = list(armaOrder = c(1,1), include.mean = TRUE),
variance.model = list(model = "gjrGARCH"), distribution.model = "sstd")
fit = ugarchfit(spec, data = dji30ret[, 1, drop = FALSE])
z = residuals(fit)\/sigma(fit)
skew = dskewness("sstd",skew = coef(fit)["skew"], shape= coef(fit)["shape"])
# add back 3 since dkurtosis returns the excess kurtosis
kurt = 3+dkurtosis("sstd",skew = coef(fit)["skew"], shape= coef(fit)["shape"])
print(GMMTest(z, lags = 1, skew=skew, kurt=kurt))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.