smart_ind: Create random parameter vector of a GMVAR, StMVAR, or...

View source: R/generateParams.R

smart_indR Documentation

Create random parameter vector of a GMVAR, StMVAR, or G-StMVAR model fairly close to a given parameter vector

Description

smart_ind creates random mean-parametrized parameter vector of a GMVAR, StMVAR, or G-StMVAR model fairly close to a given parameter vector. The result may not be stationary.

Usage

smart_ind(
  p,
  M,
  d,
  params,
  model = c("GMVAR", "StMVAR", "G-StMVAR"),
  constraints = NULL,
  same_means = NULL,
  weight_constraints = NULL,
  structural_pars = NULL,
  accuracy = 1,
  which_random = numeric(0),
  mu_scale,
  mu_scale2,
  omega_scale,
  ar_scale = 1,
  ar_scale2 = 1,
  W_scale,
  lambda_scale
)

Arguments

p

a positive integer specifying the autoregressive order of the model.

M
For GMVAR and StMVAR models:

a positive integer specifying the number of mixture components.

For G-StMVAR models:

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

d

the number of time series in the system.

params

a real valued vector specifying the parameter values.

For reduced form models:

Should be size ((M(pd^2+d+d(d+1)/2+2)-M1-1)x1) and have the form \theta = (\upsilon_{1}, ...,\upsilon_{M}, \alpha_{1},...,\alpha_{M-1},\nu), where

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

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

  • and \sigma_{m} = vech(\Omega_{m}), m=1,...,M,

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

  • M1 is the number of GMVAR type regimes.

For structural model:

Should have the form \theta = (\phi_{1,0},...,\phi_{M,0},\phi_{1},...,\phi_{M}, vec(W),\lambda_{2},...,\lambda_{M},\alpha_{1},...,\alpha_{M-1},\nu), where

  • \lambda_{m}=(\lambda_{m1},...,\lambda_{md}) contains the eigenvalues of the mth mixture component.

Above, \phi_{m,0} is the intercept parameter, A_{m,i} denotes the ith coefficient matrix of the mth mixture component, \Omega_{m} denotes the error term covariance matrix of the m:th mixture component, and \alpha_{m} is the mixing weight parameter. The W and \lambda_{mi} are structural parameters replacing the error term covariance matrices (see Virolainen, 2022). If M=1, \alpha_{m} and \lambda_{mi} are dropped. If parametrization=="mean", just replace each \phi_{m,0} with regimewise mean \mu_{m}. vec() is vectorization operator that stacks columns of a given matrix into a vector. vech() stacks columns of a given matrix from the principal diagonal downwards (including elements on the diagonal) into a vector.

In the GMVAR model, M1=M and \nu is dropped from the parameter vector. In the StMVAR model, M1=0. In the G-StMVAR model, the first M1 regimes are GMVAR type and the rest M2 regimes are StMVAR type. In StMVAR and G-StMVAR models, the degrees of freedom parameters in \nu # should be strictly larger than two.

The notation is similar to the cited literature.

model

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

constraints

a size (Mpd^2 x q) constraint matrix C specifying general linear constraints to the autoregressive parameters. We consider constraints of form (\phi_{1},...,\phi_{M}) = C \psi, where \phi_{m} = (vec(A_{m,1}),...,vec(A_{m,p}) (pd^2 x 1), m=1,...,M, contains the coefficient matrices and \psi (q x 1) contains the related parameters. For example, to restrict the AR-parameters to be the same for all regimes, set C= [I:...:I]' (Mpd^2 x pd^2) where I = diag(p*d^2). Ignore (or set to NULL) if linear constraints should not be employed.

same_means

Restrict the mean parameters of some regimes to be the same? Provide a list of numeric vectors such that each numeric vector contains the regimes that should share the common mean parameters. For instance, if M=3, the argument list(1, 2:3) restricts the mean parameters of the second and third regime to be the same but the first regime has freely estimated (unconditional) mean. Ignore or set to NULL if mean parameters should not be restricted to be the same among any regimes. This constraint is available only for mean parametrized models; that is, when parametrization="mean".

weight_constraints

a numeric vector of length M-1 specifying fixed parameter values for the mixing weight parameters \alpha_m, \ m=1,...,M-1. Each element should be strictly between zero and one, and the sum of all the elements should be strictly less than one.

structural_pars

If NULL a reduced form model is considered. Reduced models can be used directly as recursively identified structural models. For a structural model identified by conditional heteroskedasticity, should be a list containing at least the first one of the following elements:

  • W - a (dxd) matrix with its entries imposing constraints on W: NA indicating that the element is unconstrained, a positive value indicating strict positive sign constraint, a negative value indicating strict negative sign constraint, and zero indicating that the element is constrained to zero.

  • C_lambda - a (d(M-1) x r) constraint matrix that satisfies (\lambda_{2},..., \lambda_{M}) = C_{\lambda} \gamma where \gamma is the new (r x 1) parameter subject to which the model is estimated (similarly to AR parameter constraints). The entries of C_lambda must be either positive or zero. Ignore (or set to NULL) if the eigenvalues \lambda_{mi} should not be constrained.

  • fixed_lambdas - a length d(M-1) numeric vector (\lambda_{2},..., \lambda_{M}) with elements strictly larger than zero specifying the fixed parameter values for the parameters \lambda_{mi} should be constrained to. This constraint is alternative C_lambda. Ignore (or set to NULL) if the eigenvalues \lambda_{mi} should not be constrained.

See Virolainen (2022) for the conditions required to identify the shocks and for the B-matrix as well (it is W times a time-varying diagonal matrix with positive diagonal entries).

accuracy

a positive real number adjusting how close to the given parameter vector the returned individual should be. Larger number means larger accuracy. Read the source code for details.

which_random

a vector with length between 1 and M specifying the mixture components that should be random instead of close to the given parameter vector. This does not consider constrained AR or lambda parameters.

mu_scale

a size (dx1) vector defining means of the normal distributions from which each mean parameter \mu_{m} is drawn from in random mutations. Default is colMeans(data). Note that mean-parametrization is always used for optimization in GAfit - even when parametrization=="intercept". However, input (in initpop) and output (return value) parameter vectors can be intercept-parametrized.

mu_scale2

a size (dx1) strictly positive vector defining standard deviations of the normal distributions from which each mean parameter \mu_{m} is drawn from in random mutations. Default is 2*sd(data[,i]), i=1,..,d.

omega_scale

a size (dx1) strictly positive vector specifying the scale and variability of the random covariance matrices in random mutations. The covariance matrices are drawn from (scaled) Wishart distribution. Expected values of the random covariance matrices are diag(omega_scale). Standard deviations of the diagonal elements are sqrt(2/d)*omega_scale[i] and for non-diagonal elements they are sqrt(1/d*omega_scale[i]*omega_scale[j]). Note that for d>4 this scale may need to be chosen carefully. Default in GAfit is var(stats::ar(data[,i], order.max=10)$resid, na.rm=TRUE), i=1,...,d. This argument is ignored if structural model is considered.

ar_scale

a positive real number adjusting how large AR parameter values are typically proposed in construction of the initial population: larger value implies larger coefficients (in absolute value). After construction of the initial population, a new scale is drawn from (0, 0.) uniform distribution in each iteration.

ar_scale2

a positive real number adjusting how large AR parameter values are typically proposed in some random mutations (if AR constraints are employed, in all random mutations): larger value implies smaller coefficients (in absolute value). Values larger than 1 can be used if the AR coefficients are expected to be very small. If set smaller than 1, be careful as it might lead to failure in the creation of stationary parameter candidates

W_scale

a size (dx1) strictly positive vector partly specifying the scale and variability of the random covariance matrices in random mutations. The elements of the matrix W are drawn independently from such normal distributions that the expectation of the main diagonal elements of the first regime's error term covariance matrix \Omega_1 = WW' is W_scale. The distribution of \Omega_1 will be in some sense like a Wishart distribution but with the columns (elements) of W obeying the given constraints. The constraints are accounted for by setting the element to be always zero if it is subject to a zero constraint and for sign constraints the absolute value or negative the absolute value are taken, and then the variances of the elements of W are adjusted accordingly. This argument is ignored if reduced form model is considered.

lambda_scale

a length M - 1 vector specifying the standard deviation of the mean zero normal distribution from which the eigenvalue \lambda_{mi} parameters are drawn from in random mutations. As the eigenvalues should always be positive, the absolute value is taken. The elements of lambda_scale should be strictly positive real numbers with the m-1th element giving the degrees of freedom for the mth regime. The expected value of the main diagonal elements ij of the mth (m>1) error term covariance matrix will be W_scale[i]*(d - n_i)^(-1)*sum(lambdas*ind_fun) where the (d x 1) vector lambdas is drawn from the absolute value of the t-distribution, n_i is the number of zero constraints in the ith row of W and ind_fun is an indicator function that takes the value one iff the ijth element of W is not constrained to zero. Basically, larger lambdas (or smaller degrees of freedom) imply larger variance.

If the lambda parameters are constrained with the (d(M - 1) x r) constraint matrix C_lambda, then provide a length r vector specifying the standard deviation of the (absolute value of the) mean zero normal distribution each of the \gamma parameters are drawn from (the \gamma is a (r x 1) vector). The expected value of the main diagonal elements of the covariance matrices then depend on the constraints.

This argument is ignored if M==1 or a reduced form model is considered. Default is rep(3, times=M-1) if lambdas are not constrained and rep(3, times=r) if lambdas are constrained.

As with omega_scale and W_scale, this argument should be adjusted carefully if specified by hand. NOTE that if lambdas are constrained in some other way than restricting some of them to be identical, this parameter should be adjusted accordingly in order to the estimation succeed!

Value

Returns random mean-parametrized parameter vector that has the same form as the argument params in the other functions, for instance, in the function loglikelihood.

Warning

No argument checks!

References

  • Kalliovirta L., Meitz M. and Saikkonen P. 2016. Gaussian mixture vector autoregression. Journal of Econometrics, 192, 485-498.

  • Virolainen S. 2022. Structural Gaussian mixture vector autoregressive model with application to the asymmetric effects of monetary policy shocks. Unpublished working paper, available as arXiv:2007.04713.

  • Virolainen S. 2022. Gaussian and Student's t mixture vector autoregressive model with application to the asymmetric effects of monetary policy shocks in the Euro area. Unpublished working paper, available as arXiv:2109.13648.

@keywords internal


gmvarkit documentation built on Nov. 15, 2023, 1:07 a.m.