random_ind {uGMAR}R Documentation

Create random GMAR, StMAR, or G-StMAR model compatible parameter vector

Description

random_ind creates a random GMAR, StMAR, or G-StMAR model compatible mean-parametrized parameter vector.

smart_ind creates a random GMAR, StMAR, or G-StMAR model compatible parameter vector close to argument params. Sometimes returns exactly the given parameter vector.

Usage

random_ind(
  p,
  M,
  model = c("GMAR", "StMAR", "G-StMAR"),
  restricted = FALSE,
  constraints = NULL,
  mu_scale,
  sigma_scale,
  forcestat = FALSE
)

smart_ind(
  p,
  M,
  params,
  model = c("GMAR", "StMAR", "G-StMAR"),
  restricted = FALSE,
  constraints = NULL,
  mu_scale,
  sigma_scale,
  accuracy,
  which_random = numeric(0),
  forcestat = FALSE
)

Arguments

p

a positive integer specifying the autoregressive order of the model.

M
For GMAR and StMAR models:

a positive integer specifying the number of mixture components.

For G-StMAR models:

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.

model

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.

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 imposed to each regime's autoregressive parameters separately.

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

The symbol \phi denotes an AR coefficient. Note that regardless of any constraints, the autoregressive order is always p for all regimes. Ignore or set to NULL if applying linear constraints is not desired.

mu_scale

a real valued vector of length two specifying the mean (the first element) and standard deviation (the second element) of the normal distribution from which the \phi_{m,0} or \mu_{m} (depending on the desired parametrization) parameters (for random regimes) should be generated.

sigma_scale

a positive real number specifying the standard deviation of the (zero mean, positive only by taking absolute value) normal distribution from which the component variance parameters (for random regimes) should be generated.

forcestat

use the algorithm by Monahan (1984) to force stationarity on the AR parameters (slower) for random regimes? Not supported for constrained models.

params

a real valued parameter vector specifying the model.

For non-restricted models:

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

  • \upsilon_{m}=(\phi_{m,0},\phi_{m},\sigma_{m}^2)

  • \phi_{m}=(\phi_{m,1},...,\phi_{m,p}), m=1,...,M

  • \nu=(\nu_{M1+1},...,\nu_{M})

  • M1 is the number of GMAR type regimes.

In the GMAR model, M1=M and the parameter \nu dropped. In the StMAR model, M1=0.

If the model imposes linear constraints on the autoregressive parameters: Replace the vectors \phi_{m} with the vectors \psi_{m} that satisfy \phi_{m}=C_{m}\psi_{m} (see the argument constraints).

For restricted models:

Size (3M+M-M1+p-1x1) vector \theta=(\phi_{1,0},...,\phi_{M,0},\phi, \sigma_{1}^2,...,\sigma_{M}^2,\alpha_{1},...,\alpha_{M-1},\nu), where \phi=(\phi_{1},...,\phi_{p}) contains the AR coefficients, which are common for all regimes.

If the model imposes linear constraints on the autoregressive parameters: Replace the vector \phi with the vector \psi that satisfies \phi=C\psi (see the argument constraints).

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 the 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 mixing weight parameters \alpha are dropped, and in the case of StMAR or G-StMAR model, the degrees of freedom parameters \nu have to be larger than 2.

accuracy

a real number larger than zero specifying how close to params the generated parameter vector should be. Standard deviation of the normal distribution from which new parameter values are drawn from will be corresponding parameter value divided by accuracy.

which_random

a numeric vector of maximum length M specifying which regimes should be random instead of "smart" when using smart_ind. Does not affect mixing weight parameters. Default in none.

Details

These functions can be used, for example, to create initial populations for the genetic algorithm. Mean-parametrization (instead of intercept terms \phi_{m,0}) is assumed.

Value

Returns estimated parameter vector with the form described in initpop.

References

Examples

set.seed(1)

# GMAR model parameter vector
params22 <- random_ind(p=2, M=2, mu_scale=c(0, 1), sigma_scale=1)
smart22 <- smart_ind(p=2, M=2, params22, accuracy=10)
cbind(params22, smart22)

# Restricted GMAR parameter vector
params12r <- random_ind(p=1, M=2, restricted=TRUE, mu_scale=c(-2, 2), sigma_scale=2)
smart12r <- smart_ind(p=1, M=2, params12r, restricted=TRUE, accuracy=20)
cbind(params12r, smart12r)

# StMAR parameter vector: first regime is random in the "smart individual"
params13t <- random_ind(p=1, M=3, model="StMAR", mu_scale=c(3, 1), sigma_scale=3)
smart13t <- smart_ind(p=1, M=3, params13t, model="StMAR", accuracy=15,
                      mu_scale=c(3, 3), sigma_scale=3, which_random=1)
cbind(params13t, smart13t)

# Restricted StMAR parameter vector
params22tr <- random_ind(p=2, M=2, model="StMAR", restricted=TRUE,
                         mu_scale=c(3, 2), sigma_scale=0.5)
smart22tr <- smart_ind(p=2, M=2, params22tr, model="StMAR", restricted=TRUE,
                       accuracy=30)
cbind(params22tr, smart22tr)

# G-StMAR parameter vector
params12gs <- random_ind(p=1, M=c(1, 1), model="G-StMAR", mu_scale=c(0, 1),
                         sigma_scale=1)
smart12gs <- smart_ind(p=1, M=c(1, 1), params12gs, model="G-StMAR",
                       accuracy=20)
cbind(params12gs, smart12gs)

# 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. Second regime is random in the "smart individual".
params32trc <- random_ind(p=3, M=2, model="StMAR", restricted=TRUE,
                          constraints=matrix(c(1, 0, 0, 0, 0, 1), ncol=2),
                          mu_scale=c(-2, 0.5), sigma_scale=4)
smart32trc <- smart_ind(p=3, M=2, params32trc, model="StMAR", restricted=TRUE,
                        constraints=matrix(c(1, 0, 0, 0, 0, 1), ncol=2),
                        mu_scale=c(0, 0.1), sigma_scale=0.1, which_random=2,
                        accuracy=20)
cbind(params32trc, smart32trc)

[Package uGMAR version 3.5.0 Index]