Learn R Programming

rugarch (version 1.2-2)

GMMTest: The GMM Orthogonality Test of Hansen

Description

Implements the GMM Orthogonality Test of Hansen.

Usage

GMMTest(z, lags = 1, skew=0, kurt=3, conf.level = 0.95)

Arguments

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.

Value

  • A list with the following items:
  • joint.matThe matrix of the joint tests.
  • moment.matThe matrix of the individual moment tests.
  • H0The Null Hypothesis.
  • DecisionWhether to reject or not the Null given the conf.level.

Details

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.

References

Hansen, L. (1982), Large Sample Properties of Generalized Method of Moments Estimators, Econometrica, 50(4), 1029--1054.

Examples

Run this code
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))

Run the code above in your browser using DataLab