Learn R Programming

uGMAR (version 1.0.1)

isStationary: Check the stationary condition of specified GMAR or StMAR model.

Description

isStationary checks the stationarity condition of the specified GMAR or StMAR model.

Usage

isStationary(p, M, params, StMAR = FALSE, restricted = FALSE,
  constraints = FALSE, R)

Arguments

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.

Value

Returns TRUE or FALSE accordingly.

Details

This function uses numerical approximations and it will falsely return FALSE for stationary models when the stationarity condition is really close to break.

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.

  • References regarding the StMAR model will be updated after they are published.

Examples

Run this code
# NOT RUN {
# GMAR model
params22 <- c(0.4, 0.39, 0.6, 0.3, 0.4, 0.1, 0.6, 0.3, 0.8)
isStationary(2, 2, params22)

# StMAR model
params12t <- c(-0.3, 1, 0.9, 0.1, 0.8, 0.6, 0.7, 10, 12)
isStationary(1, 2, params12t, StMAR=TRUE)

# Restricted GMAR model
params13r <- c(0.1, 0.2, 0.3, -0.99, 0.1, 0.2, 0.3, 0.5, 0.3)
isStationary(1, 3, params13r, restricted=TRUE)

# Restricted StMAR model
params22tr <- c(-0.1, -0.2, 0.01, 0.99, 0.3, 0.4, 0.9, 3, 13)
isStationary(2, 2, params22tr, StMAR=TRUE, restricted=TRUE)

# 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.8, 0.2, 0.3, 3.3, 0.7, 3, 0.8)
isStationary(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(1, 2, 0.8, -0.3, 1, 2, 0.7, 11, 12)
isStationary(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