Learn R Programming

uGMAR (version 3.1.0)

GSMAR: Create object of class 'gsmar' defining a GMAR, StMAR or G-StMAR model

Description

GSMAR creates an S3 object of class 'gsmar' that defines a GMAR, StMAR or G-StMAR model.

Usage

GSMAR(data, p, M, params, model = c("GMAR", "StMAR", "G-StMAR"),
  restricted = FALSE, constraints = NULL, conditional = TRUE,
  parametrization = c("intercept", "mean"), calc_qresiduals,
  calc_cond_moments, calc_std_errors = FALSE)

# S3 method for gsmar logLik(object, ...)

# S3 method for gsmar residuals(object, ...)

# S3 method for gsmar summary(object, ..., digits = 2)

# S3 method for gsmar plot(x, ...)

# S3 method for gsmar print(x, ..., digits = 2, summary_print = FALSE)

Arguments

data

a numeric vector class 'ts' object containing the data. NA values are not supported.

p

a positive integer specifying the order of AR coefficients.

M
For GMAR and StMAR models:

a positive integer specifying the number of mixture components.

For G-StMAR model:

a size (2x1) vector specifying the number of GMAR-type components M1 in the first element and StMAR-type components M2 in the second. The total number of mixture components is M=M1+M2.

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}\)).

For G-StMAR model:

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

With linear constraints:

Replace the vectors \(\phi_{m}\) with vectors \(\psi_{m}\) and provide a list of constraint matrices C 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})\).

For G-StMAR model:

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

With linear constraints:

Replace the vector \(\phi\) with vector \(\psi\) and provide a constraint matrix \(C\) 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 \(\nu\) a degrees of freedom parameter. If parametrization=="mean" just replace each intercept term \(\phi_{m,0}\) with regimewise mean \(\mu_m = \phi_{m,0}/(1-\sum\phi_{i,m})\). In the G-StMAR model the first M1 components are GMAR-type and the rest M2 components are StMAR-type. Note that in the case M=1 the parameter \(\alpha\) is dropped, and in the case of StMAR or G-StMAR model the degrees of freedom parameters \(\nu_{m}\) have to be larger than \(2\).

model

is "GMAR", "StMAR" or "G-StMAR" model considered? In G-StMAR model the first M1 components are GMAR-type and the rest M2 components are StMAR-type.

restricted

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

constraints

specifies linear constraints applied to the autoregressive parameters.

For non-restricted models:

a list of size \((pxq_{m})\) constraint matrices \(C_{m}\) of full column rank satisfying \(\phi_{m}\)\(=\)\(C_{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 \(C\) of full column rank satisfying \(\phi\)\(=\)\(C\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. Ignore or set to NULL if applying linear constraints is not desired.

conditional

a logical argument specifying whether the conditional or exact log-likelihood function should be used.

parametrization

is the model parametrized with the "intercepts" \(\phi_{m,0}\) or "means" \(\mu_m = \phi_{m,0}/(1-\sum\phi_{i,m})\)?

calc_qresiduals

should quantile residuals be calculated? Default is TRUE iff the model contains data.

calc_cond_moments

should conditional means and variances be calculated? Default is TRUE iff the model contains data.

calc_std_errors

should approximate standard errors be calculated?

object

object of class 'gsmar' created with fitGSMAR or GSMAR.

...

graphical parameters passed to ts.plot.

digits

number of digits to be printed (max 20)

x

object of class 'gsmar' created with fitGSMAR or GSMAR.

summary_print

if set to TRUE then the print will include approximate standard errors, log-likelihood and information criteria values. Supported only for models with data.

Value

Returns an object of class 'gsmar' defining the specified GMAR, StMAR or G-StMAR model. If data is suplied, the returned object contains (by default) empirical mixing weights, conditional means and variances and quantile residuals. Note that the first p observations are taken as the initial values so mixing weights, conditional moments and qresiduals start from the p+1:th observation (interpreted as t=1).

Methods (by generic)

  • logLik: Log-likelihood method

  • residuals: residuals method to extract multivariate quantile residuals

  • summary: summary method, standard errors in brackets

  • plot: plot method for class 'gsmar'

  • print: print method

Details

Models can be built without data, e.q., in order to simulate from the process, but some elements such as quantile residuals and conditional moments can't be calculated without data.

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.

  • Meitz M., Preve D., Saikkonen P. 2018. A mixture autoregressive model based on Student's t-distribution. arXiv:1805.04010 [econ.EM].

  • There are currently no published references for the G-StMAR model, but it's a straightforward generalization with theoretical properties similar to the GMAR and StMAR models.

See Also

fitGSMAR, iterate_more, add_data, stmar_to_gstmar, swap_parametrization, get_gradient, simulateGSMAR, predict.gsmar, condMoments, uncondMoments

Examples

Run this code
# NOT RUN {
# GMAR model
params12 <- c(0.18, 0.93, 0.01, 0.86, 0.68, 0.02, 0.88)
gmar12 <- GSMAR(data=logVIX, p=1, M=2, params=params12, model="GMAR")
gmar12

# Restricted GMAR model
params12r <- c(0.21, 0.23, 0.92, 0.01, 0.02, 0.86)
gmar12r <- GSMAR(data=logVIX, p=1, M=2, params=params12r, model="GMAR",
 restricted=TRUE)
gmar12r

# StMAR model, without data
params12t <- c(1.38, 0.88, 0.27, 3.8, 0.74, 3.15, 0.8, 300, 3.6)
stmar12t <- GSMAR(p=1, M=2, params=params12t, model="StMAR")
stmar12t

# G-StMAR model (similar to the StMAR model above), without data
params12gs <- c(1.38, 0.88, 0.27, 3.8, 0.74, 3.15, 0.8, 3.6)
gstmar12 <- GSMAR(p=1, M=c(1, 1), params=params12gs, model="G-StMAR")
gstmar12

# Restricted G-StMAR-model
params12gsr <- c(0.31, 0.33, 0.88, 0.01, 0.02, 0.77, 2.72)
gstmar12r <- GSMAR(data=logVIX, p=1, M=c(1, 1), params=params12gsr,
 model="G-StMAR", restricted=TRUE)
gstmar12r

# GMAR model as a mixture of AR(2) and AR(1) models
constraints <- list(diag(1, ncol=2, nrow=2), as.matrix(c(1, 0)))
params22c <- c(0.61, 0.83, -0.06, 0.02, 0.21, 0.91, 0.01, 0.16)
gmar22c <- GSMAR(logVIX, p=2, M=2, params=params22c,
 model="GMAR", constraints=constraints)
gmar22c

# 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(0.35, 0.33, 0.88, -0.02, 0.01, 0.01, 0.36, 4.53, 1000)
stmar32rc <- GSMAR(logVIX, p=3, M=2, params=params32trc, model="StMAR",
 restricted=TRUE, constraints=matrix(c(1, 0, 0, 0, 0, 1), ncol=2))
stmar32rc

# Mixture version of Heterogenuous autoregressive (HAR) model (without data)
paramsHAR <- c(1, 0.1, 0.2, 0.3, 1, 2, 0.15, 0.25, 0.35, 2, 0.55)
r1 = c(1, rep(0, 21)); r2 = c(rep(0.2, 5), rep(0, 17)); r3 = rep(1/22, 22)
R0 = cbind(r1, r2, r3)
mixhar <- GSMAR(p=22, M=2, params=paramsHAR, model="GMAR", constraints=list(R0, R0))
mixhar
# }

Run the code above in your browser using DataLab