Learn R Programming

uGMAR (version 3.0.1)

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_std_errors = FALSE)

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

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

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

# 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-likehood 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 if the model contains data.

calc_std_errors

should approximate standard errors be calculated?

object

object of class 'gsmar' generated by fitGSMAR() or GSMAR().

...

graphical parameters passed to ts.plot.

x

object of class 'gsmar' generated by fitGSMAR() or GSMAR().

digits

number of digits to be printed

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.

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 without data can be created.

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 G-StMAR model, but it's a straightforward generalization with theoretical properties similar to GMAR and StMAR models.

See Also

fitGSMAR, iterate_more, add_data, swap_parametrization, get_gradient, simulateGSMAR, predict.gsmar

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)
gmar13 <- GSMAR(data=VIX, p=1, M=3, params=params13, model="GMAR")
gmar13

# Restricted GMAR model
params12r <- c(1.4, 1.8, 0.88, 0.29, 3.18, 0.84)
gmar12r <- GSMAR(data=VIX, 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, 100, 3.6)
stmar12t <- GSMAR(VIX, p=1, M=2, params=params12t, model="StMAR")
stmar12t

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

# Restricted G-StMAR-model
params13gsr <- c(1.3, 1, 1.4, 0.8, 0.4, 2, 0.2, 0.25, 0.15, 20)
gstmar13r <- GSMAR(data=VIX, p=1, M=c(2, 1), params=params13gsr,
 model="G-StMAR", restricted=TRUE)
diagnosticPlot(gstmar13r)

# 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(1.2, 0.85, 0.04, 0.3, 3.3, 0.77, 2.8, 0.77)
gmar22c <- GSMAR(data=VIX, 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(2.2, 1.8, 0.88, -0.03, 2.4, 0.27, 0.40, 3.9, 1000)
stmar32rc <- GSMAR(data=VIX, 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