Learn R Programming

uGMAR (version 1.0.1)

simulateGMAR: Simulate GMAR or StMAR process

Description

simulateGMAR simulates values from the specified GMAR or StMAR process.

Usage

simulateGMAR(p, M, params, StMAR = FALSE, restricted = FALSE,
  constraints = FALSE, R, nsimu, initvalues)

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.

nsimu

a positive integer specifying how many values will be simulated.

initvalues

an (optional) size \((px1)\) vector (where \(p\) is the order of AR coefficients) specifying the initial values for the simulation. If not specified, initial values will be simulated from the process's stationary distribution.

Value

Returns a list with...

$sample

a numeric vector containing the simulated values.

$component

a numeric vector the containing the information from which component each value is generated from.

$mixingWeights

a size (nsimu\(xM\)) matrix containing the mixing weights corresponding to the sample so that \(i\):th column is for \(i\):th component.

Examples

Run this code
# NOT RUN {
# GMAR process
params12 <- c(-0.3, 0.9, 0.5, 0.1, -0.2, 0.1, 0.6)
simu12 <- simulateGMAR(1, 2, params12, nsimu=100)

# Restricted GMAR process
params12r <- c(1.4, 1.8, 0.9, 0.3, 3.2, 0.8)
simu12r <- simulateGMAR(1, 2, params12r, restricted=TRUE, nsimu=100)

# StMAR process with initial values
params22t <- c(0.1, 0.7, 0.1, 0.5, -0.1, 0.5, -0.2, 0.3, 0.6, 3, 10)
simu22t <- simulateGMAR(2, 2, params22t, StMAR=TRUE, nsimu=100, initvalues=c(0.1, 0.2))

# Restricted StMAR process
params13tr <- c(0.1, 0.2, 0.3, -0.9, 0.1, 0.2, 0.3, 0.45, 0.35, 3, 9, 27)
simu13tr <- simulateGMAR(1, 3, params13tr, StMAR=TRUE, restricted=TRUE, nsimu=100)

# Restricted GMAR process with p=4, where the first three AR coefficients are restricted to be zero
R <- as.matrix(c(0, 0, 0, 1))
params42rc <- c(0.4, 0.5, 0.9, 0.5, 0.6, 0.6)
simu42rc <-simulateGMAR(4, 2, params42rc, restricted=TRUE, constraints=TRUE, R=R, nsimu=100)

# Mixture version of Heterogenuous Autoregressive (HAR) process
paramsHAR2 <- c(1, 0.3, 0.2, 0.1, 1, 1.5, 0.3, 0.25, -0.1, 0.6, 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)
simuHAR2 <- simulateGMAR(22, 2, paramsHAR2, constraints=TRUE, R=list(R0, R0), nsimu=100)
# }

Run the code above in your browser using DataLab