GSMAR
creates an S3 object of class 'gsmar'
that defines a GMAR, StMAR, or G-StMAR model.
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,
custom_h = NULL
)# 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, ..., include_dens = TRUE)
# S3 method for gsmar
print(x, ..., digits = 2, summary_print = FALSE)
a numeric vector or class 'ts'
object containing the data. NA
values are not supported.
a positive integer specifying the autoregressive order of the model.
a positive integer specifying the number of mixture components.
a size (2x1) integer vector specifying the number of GMAR type components M1
in the
first element and StMAR type components M2
in the second element. The total number of mixture components is M=M1+M2
.
a real valued parameter vector specifying the 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\).
Size \((M(p+4)-1x1)\) vector (\(\theta, \nu\))\(=\)(\(\upsilon_{1}\),...,\(\upsilon_{M}\), \(\alpha_{1},...,\alpha_{M-1}, \nu_{1},...,\nu_{M}\)).
Size \((M(p+3)+M2-1x1)\) vector (\(\theta, \nu\))\(=\)(\(\upsilon_{1}\),...,\(\upsilon_{M}\), \(\alpha_{1},...,\alpha_{M-1}, \nu_{M1+1},...,\nu_{M}\)).
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}})\).
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})\).
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})\).
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})\).
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\).
is "GMAR", "StMAR", or "G-StMAR" model considered? In the G-StMAR model, the first M1
components
are GMAR type and the rest M2
components are StMAR type.
a logical argument stating whether the AR coefficients \(\phi_{m,1},...,\phi_{m,p}\) are restricted to be the same for all regimes.
specifies linear constraints applied to the autoregressive parameters.
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}})\).
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 autoregressive order
is always p
for all regimes.
Ignore or set to NULL
if applying linear constraints is not desired.
a logical argument specifying whether the conditional or exact log-likelihood function should be used.
is the model parametrized with the "intercepts" \(\phi_{m,0}\) or "means" \(\mu_m = \phi_{m,0}/(1-\sum\phi_{i,m})\)?
should quantile residuals be calculated? Default is TRUE
iff the model contains data.
should conditional means and variances be calculated? Default is TRUE
iff the model contains data.
should approximate standard errors be calculated?
A numeric vector with same the length as the parameter vector: i:th element of custom_h is the difference
used in central difference approximation for partial differentials of the log-likelihood function for the i:th parameter.
If NULL
(default), then the difference used for differentiating overly large degrees of freedom parameters
is adjusted to avoid numerical problems, and the difference is 6e-6
for the other parameters.
object of class 'gsmar'
created with fitGSMAR
or GSMAR
.
in the plot method: arguments passed to the function density
which
calculates the kernel density estimate of the data.
number of digits to be printed (max 20)
object of class 'gsmar'
created with fitGSMAR
or GSMAR
.
Plot also kernel density estimate of the data and model implied stationary density with regimewise densities? See the details.
if set to TRUE
then the print will include approximate
standard errors for the estimates, log-likelihood, information criteria values,
modulus of the roots of the characteristic AR polynomias for each regime, and
several unconditional moments.
Supported for models that include data only.
Returns an object of class 'gsmar'
defining the specified GMAR, StMAR, or G-StMAR model. If data is supplied,
the returned object contains (by default) empirical mixing weights, some conditional and unconditional moments, and quantile
residuals. Note that the first p observations are taken as the initial values so the mixing weights, conditional moments, and
quantile residuals start from the p+1:th observation (interpreted as t=1).
logLik
: Log-likelihood method
residuals
: residuals method to extract quantile residuals
summary
: summary method, standard errors in brackets
plot
: Plot method for class 'gsmar'
print
: print method
Models can be built without data, e.q., in order to simulate from the process, but some things such as quantile residuals and conditional moments can't be calculated without data.
If include_dens == TRUE
, the kernel density estimate of the data is calculated
with the function density
from the package stats
. By default, the default
settings of that function are used, including the usage of Gaussian kernel. Use the dot
parameters to adjust the settings if desired.
By the model implied stationary density we mean the stationary one-dimensional mixture density of M regimes (see KMS 2015, Theorem 1 and the discussion following it for the Gaussian case and Theorem 2 in PMS 2018 for the Studen's t case). The regimewise densities (i.e. each density 1,...,M in the stationary mixture density) are multiplied with the mixing weight parameters accordingly.
In the density plot black represents the kernel density estimate of the data, grey dashed line the model implied density, and the colored dotter lines the regime wise densities.
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].
Virolainen S. 2020. A mixture autoregressive model based on Gaussian and Student's t-distribution. arXiv:2003.05221 [econ.EM].
fitGSMAR
, iterate_more
, add_data
, stmar_to_gstmar
,
swap_parametrization
, get_gradient
, simulateGSMAR
,
predict.gsmar
, condMoments
, uncondMoments
, LR_test
, Wald_test
# NOT RUN {
# GMAR model without data
params12 <- c(0.18, 0.93, 0.01, 0.86, 0.68, 0.02, 0.88)
gmar12 <- GSMAR(p=1, M=2, params=params12, model="GMAR")
gmar12
# 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
# Restricted G-StMAR-model
params42gsr <- c(0.11, 0.03, 1.27, -0.39, 0.24, -0.17, 0.03, 1.01, 0.3, 2.03)
gstmar42r <- GSMAR(data=T10Y1Y, p=4, M=c(1, 1), params=params42gsr,
model="G-StMAR", restricted=TRUE)
gstmar42r
# Two-regime GMAR p=2 model with the second AR coeffiecient of
# of the second regime contrained to zero.
constraints <- list(diag(1, ncol=2, nrow=2), as.matrix(c(1, 0)))
params22c <- c(0.03, 1.27, -0.29, 0.03, -0.01, 0.91, 0.34, 0.88)
gmar22c <- GSMAR(T10Y1Y, p=2, M=2, params=params22c,
model="GMAR", constraints=constraints)
gmar22c
# }
Run the code above in your browser using DataLab