Learn R Programming

uGMAR (version 1.0.1)

plotGMAR: Quantile residual based diagnostic plots for GMAR or StMAR model

Description

plotGMAR plots quantile residual time series, normal QQ-plot, autocorrelation function and squared quantile residual autocorrelation function. There is an option to also plot the individual statistics associated with the quantile residual tests (for autocorrelation and conditional heteroskedasticity) divided by their approximate standard errors, with their approximate 95% critical bounds.

Usage

plotGMAR(data, p, M, params, StMAR = FALSE, restricted = FALSE,
  constraints = FALSE, R, nlags = 20, nsimu = 2000,
  approxBounds = FALSE)

Arguments

data

a numeric vector or column matrix containing the data. NA values are not supported.

p

a positive integer specifying the order of AR coefficients.

M

a positive integer specifying the number of mixture components or regimes.

params

a real valued parameter vector specifying the model.

For non-restricted models:

For GMAR model:

Size \((M(p+3)-1x1)\) vector \(\theta\)\(=\)(\(\upsilon_{1}\),...,\(\upsilon_{M}\), \(\alpha_{1},...,\alpha_{M-1}\)), where \(\upsilon_{m}\)\(=(\phi_{m,0},\)\(\phi_{m}\)\(, \sigma_{m}^2)\) and \(\phi_{m}\)=\((\phi_{m,1},...,\phi_{m,p}), m=1,...,M\).

For StMAR model:

Size \((M(p+4)-1x1)\) vector (\(\theta, \nu\))\(=\)(\(\upsilon_{1}\),...,\(\upsilon_{M}\), \(\alpha_{1},...,\alpha_{M-1}, \nu_{1},...,\nu_{M}\)).

With linear constraints:

Replace the vectors \(\phi_{m}\) with vectors \(\psi_{m}\) and provide a list of constraint matrices R that satisfy \(\phi_{m}\)\(=\)\(R_{m}\psi_{m}\) for all \(m=1,...,M\), where \(\psi_{m}\)\(=(\psi_{m,1},...,\psi_{m,q_{m}})\).

For restricted models:

For GMAR model:

Size \((3M+p-1x1)\) vector \(\theta\)\(=(\phi_{1,0},...,\phi_{M,0},\)\(\phi\)\(, \sigma_{1}^2,...,\sigma_{M}^2,\alpha_{1},...,\alpha_{M-1})\), where \(\phi\)=\((\phi_{1},...,\phi_{M})\).

For StMAR model:

Size \((4M+p-1x1)\) vector (\(\theta, \nu\))\(=(\phi_{1,0},...,\phi_{M,0},\)\(\phi\)\(, \sigma_{1}^2,...,\sigma_{M}^2,\alpha_{1},...,\alpha_{M-1}, \nu_{1},...,\nu_{M})\).

With linear constraints:

Replace the vector \(\phi\) with vector \(\psi\) and provide a constraint matrix \(R\) that satisfies \(\phi\)\(=\)\(R\psi\), where \(\psi\)\(=(\psi_{1},...,\psi_{q})\).

Symbol \(\phi\) denotes an AR coefficient, \(\sigma^2\) a variance, \(\alpha\) a mixing weight and \(v\) a degrees of freedom parameter. Note that in the case M=1 the parameter \(\alpha\) is dropped, and in the case of StMAR model the degrees of freedom parameters \(\nu_{m}\) have to be larger than \(2\).

StMAR

an (optional) logical argument stating whether StMAR model should be considered instead of GMAR model. Default is FALSE.

restricted

an (optional) logical argument stating whether the AR coefficients \(\phi_{m,1},...,\phi_{m,p}\) are restricted to be the same for all regimes. Default is FALSE.

constraints

an (optional) logical argument stating whether general linear constraints should be applied to the model. Default is FALSE.

R

Specifies the linear constraints.

For non-restricted models:

a list of size \((pxq_{m})\) constraint matrices \(R_{m}\) of full column rank satisfying \(\phi_{m}\)\(=\)\(R_{m}\psi_{m}\) for all \(m=1,...,M\), where \(\phi_{m}\)\(=(\phi_{m,1},...,\phi_{m,p})\) and \(\psi_{m}\)\(=(\psi_{m,1},...,\psi_{m,q_{m}})\).

For restricted models:

a size \((pxq)\) constraint matrix \(R\) of full column rank satisfying \(\phi\)\(=\)\(R\psi\), where \(\phi\)\(=(\phi_{1},...,\phi_{p})\) and \(\psi\)\(=\psi_{1},...,\psi_{q}\).

Symbol \(\phi\) denotes an AR coefficient. Note that regardless of any constraints, the nominal order of AR coefficients is alway p for all regimes. This argument is ignored if constraints==FALSE.

nlags

an (optional) positive integer specifying how many lags should be calculated for the autocorrelation and conditional heteroscedasticity statistics. Default is 20.

nsimu

an (optional) positive integer specifying to how many process's simulated values the covariance matrix "Omega" should be based on. If smaller than data size, then it will be based on the given data. Ignored if approxBounds==FALSE. Default is 2000.

approxBounds

set TRUE if the individual statistics and their approximate 95% critical bounds should be plotted (this may take some time). Default is FALSE.

Value

plotGMAR only plots to a graphical device and doesn't return anything. Use the function quantileResidualTests if you wish to obtain the statistics.

Suggested packages

Install the suggested package "gsl" for faster evaluations in the cases of StMAR models. For large StMAR models with large data the evaluations for approximating the critical bounds may take significantly long time without the package "gsl".

Details

Sometimes the individual statistics are not plotted because it was not (numerically) possible for the code to calculate all the necessary estimates required. This may suggest that the model is misspecified.

References

  • Kalliovirta L., Meitz M. and Saikkonen P. (2015) Gaussian Mixture Autoregressive model for univariate time series. Journal of Time Series Analysis, 36, 247-266.

  • Kalliovirta L. (2012) Misspecification tests based on quantile residuals. The Econometrics Journal, 15, 358-393.

  • Lutkepohl H. New Introduction to Multiple Time Series Analysis, Springer, 2005.

  • Galbraith, R., Galbraith, J., (1974). On the inverses of some patterned matrices arising in the theory of stationary time series. Journal of Applied Probability 11, 63-71.

  • References regarding the StMAR model and general linear constraints will be updated after they are published.

Examples

Run this code
# NOT RUN {
# GMAR model
params13 <- c(1.4, 0.88, 0.26, 2.46, 0.82, 0.74, 5.0, 0.68, 5.2, 0.72, 0.2)
plotGMAR(VIX, 1, 3, params13)

# Restricted GMAR model: plot also the individual statistics with their approximate
# critical bounds using the given data
params12r <- c(1.4, 1.8, 0.88, 0.29, 3.18, 0.84)
plotGMAR(VIX, 1, 2, params12r, restricted=TRUE, nsimu=1, approxBounds=TRUE)

# StMAR model
params12t <- c(1.38, 0.88, 0.27, 3.8, 0.74, 3.15, 0.8, 120, 3.6)
plotGMAR(VIX, 1, 2, params12t, StMAR=TRUE, nlags=15)

# GMAR model as a mixture of AR(2) and AR(1) models
R <- list(diag(1, ncol=2, nrow=2), as.matrix(c(1, 0)))
params22c <- c(1.2, 0.85, 0.04, 0.3, 3.3, 0.77, 2.8, 0.77)
plotGMAR(VIX, 2, 2, params22c, constraints=TRUE, R=R)

# Such StMAR(3,2) that the AR coefficients are restricted to be
# the same for both regimes and that the second AR coefficients are
# constrained to zero.
params32trc <- c(2.2, 1.8, 0.88, -0.03, 2.4, 0.27, 0.40, 3.9, 1000)
plotGMAR(VIX, 3, 2, params32trc, StMAR=TRUE, restricted=TRUE,
         constraints=TRUE, R=matrix(c(1, 0, 0, 0, 0, 1), ncol=2))
# }

Run the code above in your browser using DataLab