check_weightfun_pars function

Check the argument weightfun_pars

Check the argument weightfun_pars

check_weightfun_pars checks that the argument weightfun_pars. is correctly set, if not, tries to correct them.

check_weightfun_pars( data, p, M, d, weight_function = c("relative_dens", "logistic", "mlogit", "exponential", "threshold", "exogenous"), weightfun_pars = NULL, cond_dist = c("Gaussian", "Student", "ind_Student", "ind_skewed_t") )

Arguments

  • data: a matrix or class 'ts' object with d>1 columns. Each column is taken to represent a univariate time series. Missing values are not supported.

  • p: a positive integer specifying the autoregressive order

  • M: a positive integer specifying the number of regimes

  • weight_function: What type of transition weights αm,t\alpha_{m,t} should be used?

    • "relative_dens":: c("alpham,t=\n\\alpha_{m,t}=\n", "fracalphamfm,dp(yt1,...,ytp+1)sumn=1Malphanfn,dp(yt1,...,ytp+1) \\frac{\\alpha_mf_{m,dp}(y_{t-1},...,y_{t-p+1})}{\\sum_{n=1}^M\\alpha_nf_{n,dp}(y_{t-1},...,y_{t-p+1})}"), where αm(0,1)\alpha_m\in (0,1) are weight parameters that satisfy m=1Mαm=1\sum_{m=1}^M\alpha_m=1 and fm,dp()f_{m,dp}(\cdot) is the dpdp-dimensional stationary density of the mmth regime corresponding to pp

       consecutive observations. Available for Gaussian conditional distribution only.
      
    • "logistic":: M=2M=2, α1,t=1α2,t\alpha_{1,t}=1-\alpha_{2,t}, and α2,t=[1+exp{γ(yitjc)}]1\alpha_{2,t}=[1+\exp\lbrace -\gamma(y_{it-j}-c) \rbrace]^{-1}, where yitjy_{it-j} is the lag jj

       observation of the $i$th variable, $c$ is a location parameter, and $\gamma > 0$ is a scale parameter.
      
    • "mlogit":: c("alpham,t=fracexplbracegammamzt1rbrace\n\\alpha_{m,t}=\\frac{\\exp\\lbrace \\gamma_m'z_{t-1} \\rbrace}\n", "sumn=1Mexplbracegammanzt1rbrace {\\sum_{n=1}^M\\exp\\lbrace \\gamma_n'z_{t-1} \\rbrace}"), where γm\gamma_m are coefficient vectors, γM=0\gamma_M=0, and zt1z_{t-1} (k×1)(k\times 1) is the vector containing a constant and the (lagged) switching variables.

    • "exponential":: M=2M=2, α1,t=1α2,t\alpha_{1,t}=1-\alpha_{2,t}, and α2,t=1exp{γ(yitjc)}\alpha_{2,t}=1-\exp\lbrace -\gamma(y_{it-j}-c) \rbrace, where yitjy_{it-j} is the lag jj

       observation of the $i$th variable, $c$ is a location parameter, and $\gamma > 0$ is a scale parameter.
      
    • "threshold":: αm,t=1\alpha_{m,t} = 1 if rm1<yitjrmr_{m-1}<y_{it-j}\leq r_{m} and 00 otherwise, where r0<r1<<rM1<rM-\infty\equiv r_0<r_1<\cdots <r_{M-1}<r_M\equiv\infty are thresholds yitjy_{it-j} is the lag jj

       observation of the $i$th variable.
      
    • "exogenous":: Exogenous nonrandom transition weights, specify the weight series in weightfun_pars.

    See the vignette for more details about the weight functions.

  • weightfun_pars: - If weight_function == "relative_dens":: Not used.

    • If weight_function %in% c("logistic", "exponential", "threshold"):: a numeric vector with the switching variable i{1,...,d}i\in\lbrace 1,...,d \rbrace in the first and the lag j{1,...,p}j\in\lbrace 1,...,p \rbrace in the second element.

    • If weight_function == "mlogit":: a list of two elements:

       - **The first element `$vars`:**: a numeric vector containing the variables that should used as switching variables in the weight function in an increasing order, i.e., a vector with unique elements in $\lbrace 1,...,d \rbrace$.
       - **The second element `$lags`:**: an integer in $\lbrace 1,...,p \rbrace$ specifying the number of lags to be used in the weight function.
      
    • If weight_function == "exogenous":: a size (nrow(data) - p x M) matrix containing the exogenous transition weights as [t, m] for time tt and regime mm. Each row needs to sum to one and only weakly positive values are allowed.

  • cond_dist: specifies the conditional distribution of the model as "Gaussian", "Student", "ind_Student", or "ind_skewed_t", where "ind_Student" the Student's tt distribution with independent components, and "ind_skewed_t" is the skewed tt distribution with independent components (see Hansen, 1994).

Returns

Does checks the argument weightfun_pars and throws an error if something is wrong; returns a corrected version of the argument if possible.

  • Maintainer: Savi Virolainen
  • License: GPL-3
  • Last published: 2025-02-27