TARMAGARCH.test {tseriesTARMA} | R Documentation |
ARMA GARCH versus TARMA GARCH supLM test for nonlinearity
Description
Implements a supremum Lagrange Multiplier test for a ARMA-GARCH specification versus a TARMA-GARCH specification. Both the AR and MA parameters are tested
Usage
TARMAGARCH.test(
x,
pa = 0.25,
pb = 0.75,
ar.ord = 1,
ma.ord = 1,
arch.ord = 1,
garch.ord = 1,
d = 1,
thd.range,
method = "CSS",
...
)
Arguments
x |
A univariate time series. |
pa |
Real number in |
pb |
Real number in |
ar.ord |
Order of the AR part. |
ma.ord |
Order of the MA part. |
arch.ord |
Order of the ARCH part. |
garch.ord |
Order of the GARCH part. |
d |
Delay parameter. Defaults to |
thd.range |
Vector of optional user defined threshold range. If missing then |
method |
Fitting method to be passed to |
... |
Additional arguments to be passed to |
Details
Implements an asymptotic supremum Lagrange Multiplier test to test an ARMA-GARCH specification versus a TARMA-GARCH specification. In other words, the test is robust with respect to heteroskedasticity. Both the AR parameters and the MA parameters are tested. This is an asymptotic test and the value of the test statistic has to be compared with the critical values tabulated in (Angelini et al. 2022) or (Andrews 2003).
Value
A list of class htest
with components:
statistic
The value of the supLM statistic.
parameter
A named vector:
threshold
is the value that maximises the Lagrange Multiplier values.test.v
Vector of values of the LM statistic for each threshold given in
thd.range
.thd.range
Range of values of the threshold.
fit.ARMA
The null model: ARMA fit over
x
.fit.GARCH
The null model: GARCH fit over the residuals of the ARMA fit.
sigma2
Estimated innovation variance from the ARMA fit.
data.name
A character string giving the name of the data.
prop
Proportion of values of the series that fall in the lower regime.
p.value
The p-value of the test. It is
NULL
for the asymptotic test.method
A character string indicating the type of test performed.
d
The delay parameter.
pa
Lower threshold quantile.
dfree
Effective degrees of freedom. It is the number of tested parameters.
Author(s)
Simone Giannerini, simone.giannerini@unibo.it
Greta Goracci, greta.goracci@unibz.it
References
-
Angelini F, Castellani M, Goracci G, Giannerini S (2022). “Testing for Threshold Effects in Presence of Volatility and Measurement Error: The Case of Italian Strikes.” University of Bologna, University of Bolzano.
-
Goracci G, Giannerini S, Chan K, Tong H (2021). “Testing for threshold effects in the TARMA framework.” University of Bologna, Free University of Bolzano, University of Iowa, London School of Economics. https://arxiv.org/abs/2103.13977.
-
Andrews DWK (2003). “Tests for Parameter Instability and Structural Change with Unknown Change Point: A Corrigendum.” Econometrica, 71(1), 395-397. doi:10.1111/1468-0262.00405.
See Also
TARMA.test
and TAR.test.B
for the asymptotic and bootstrap test without the GARCH component. TARMA.sim
to simulate from a TARMA process. TARMA.fit
and TARMA.fit2
for TARMA modelling.
Examples
## Function to simulate from a ARMA-GARCH process
arma11.garch11 <- function(n, ph, th, a, b, a0=1, rand.gen = rnorm, innov = rand.gen(n, ...),
n.start = 500, start.innov = rand.gen(n.start, ...),...){
# Simulates a ARMA(1,1)-GARCH(1,1) process
# with parameeters ph, th, a, b, a0.
# x[t] <- ph*x[t-1] + th*eps[t-1] + eps[t]
# eps[t] <- e[t]*sqrt(v[t])
# v[t] <- a0 + a*eps[t-1]^2 + b*v[t-1];
# ph : AR
# th : MA
# a : ARCH
# b : GARCH
# checks
if(abs(a+b)>=1) stop("model is not stationary")
if(b/(1-a)>=1) stop("model has infinite fourth moments")
if (!missing(start.innov) && length(start.innov) < n.start)
stop(gettextf("'start.innov' is too short: need %d points", n.start), domain = NA)
e <- c(start.innov[1L:n.start], innov[1L:n])
ntot <- length(e)
x <- v <- eps <- double(ntot)
v[1] <- a0/(1.0-a-b);
eps[1] <- e[1]*sqrt(v[1])
x[1] <- eps[1];
for(i in 2:ntot){
v[i] <- a0 + a*eps[i-1]^2 + b*v[i-1];
eps[i] <- e[i]*sqrt(v[i])
x[i] <- ph*x[i-1] + th*eps[i-1] + eps[i]
}
if (n.start > 0) x <- x[-(1L:n.start)]
return(ts(x));
}
## **************************************************************************
## Comparison between the robust and the non-robust test in presence of GARCH errors
## Simulates from the ARMA(1,1)-GARCH(1,1)
set.seed(12)
x1 <- arma11.garch11(n=100, ph=0.9, th=0.5, a=0.85, b=0.1, a0=1,n.start=500)
TARMAGARCH.test(x1, ar.ord=1, ma.ord=1, arch.ord=1, garch.ord=1, d=1)
TARMA.test(x1, ar.ord=1, ma.ord=1, d=1, ma.fixed=FALSE)
## a TARMA(1,1,1,1) where the threshold effect is on the AR parameters
set.seed(123)
x2 <- TARMA.sim(n=100, phi1=c(0.5,-0.5), phi2=c(0.0,0.8), theta1=0.5, theta2=0.5, d=1, thd=0.2)
TARMAGARCH.test(x2, ar.ord=1, ma.ord=1, d=1)