Skip to contents

The class StartingValuesBSVARMSH presents starting values for the bsvar model with Markov Switching Heteroskedasticity.

Super class

bsvars::StartingValuesBSVAR -> StartingValuesBSVARMSH

Public fields

A

an NxK matrix of starting values for the parameter \(A\).

B

an NxN matrix of starting values for the parameter \(B\).

hyper

a (2*N+1)x2 matrix of starting values for the shrinkage hyper-parameters of the hierarchical prior distribution.

sigma2

an NxM matrix of starting values for the MS state-specific variances of the structural shocks. Its elements sum to value M over the rows.

PR_TR

an MxM matrix of starting values for the transition probability matrix of the Markov process. Its elements sum to 1 over the rows.

xi

an MxT matrix of starting values for the Markov process indicator. Its columns are a chosen column of an identity matrix of order M.

pi_0

an M-vector of starting values for state probability at time t=0. Its elements sum to 1.

Methods


Method new()

Create new starting values StartingValuesBSVAR-MS.

Usage

specify_starting_values_bsvar_msh$new(N, p, M, T, d = 0, finiteM = TRUE)

Arguments

N

a positive integer - the number of dependent variables in the model.

p

a positive integer - the autoregressive lag order of the SVAR model.

M

an integer greater than 1 - the number of Markov process' heteroskedastic regimes.

T

a positive integer - the the time series dimension of the dependent variable matrix \(Y\).

d

a positive integer - the number of exogenous variables in the model.

finiteM

a logical value - if true a stationary Markov switching model is estimated. Otherwise, a sparse Markov switching model is estimated in which M=20 and the number of visited states is estimated.

Returns

Starting values StartingValuesBSVAR-MS.


Method get_starting_values()

Returns the elements of the starting values StartingValuesBSVAR-MS as a list.

Usage

specify_starting_values_bsvar_msh$get_starting_values()

Examples

# starting values for a homoskedastic bsvar with 1 lag for a 3-variable system
sv = specify_starting_values_bsvar_msh$new(N = 3, p = 1, M = 2, T = 100)
sv$get_starting_values()   # show starting values as list


Method set_starting_values()

Returns the elements of the starting values StartingValuesBSVARMSH as a list.

Usage

specify_starting_values_bsvar_msh$set_starting_values(last_draw)

Arguments

last_draw

a list containing the last draw.

Returns

An object of class StartingValuesBSVAR-MS including the last draw of the current MCMC as the starting value to be passed to the continuation of the MCMC estimation using estimate().

Examples

# starting values for a bsvar model with 1 lag for a 3-variable system
sv = specify_starting_values_bsvar_msh$new(N = 3, p = 1, M = 2, T = 100)

# Modify the starting values by:
sv_list = sv$get_starting_values()   # getting them as list
sv_list$A <- matrix(rnorm(12), 3, 4) # modifying the entry
sv$set_starting_values(sv_list)      # providing to the class object


Method clone()

The objects of this class are cloneable with this method.

Usage

specify_starting_values_bsvar_msh$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# starting values for a bsvar model for a 3-variable system
sv = specify_starting_values_bsvar_msh$new(N = 3, p = 1, M = 2, T = 100)


## ------------------------------------------------
## Method `specify_starting_values_bsvar_msh$get_starting_values`
## ------------------------------------------------

# starting values for a homoskedastic bsvar with 1 lag for a 3-variable system
sv = specify_starting_values_bsvar_msh$new(N = 3, p = 1, M = 2, T = 100)
sv$get_starting_values()   # show starting values as list
#> $B
#>      [,1] [,2] [,3]
#> [1,]    1    0    0
#> [2,]    0    1    0
#> [3,]    0    0    1
#> 
#> $A
#>           [,1]      [,2]      [,3] [,4]
#> [1,] 0.4795441 0.0000000 0.0000000    0
#> [2,] 0.0000000 0.7099984 0.0000000    0
#> [3,] 0.0000000 0.0000000 0.6358542    0
#> 
#> $hyper
#>      [,1] [,2]
#> [1,]   10   10
#> [2,]   10   10
#> [3,]   10   10
#> [4,]   10   10
#> [5,]   10   10
#> [6,]   10   10
#> [7,]   10   10
#> 
#> $sigma2
#>      [,1] [,2]
#> [1,]    1    1
#> [2,]    1    1
#> [3,]    1    1
#> 
#> $PR_TR
#>      [,1] [,2]
#> [1,]    1    0
#> [2,]    0    1
#> 
#> $xi
#>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
#> [1,]    1    1    0    1    1    1    1    1    0     0     1     0     1     1
#> [2,]    0    0    1    0    0    0    0    0    1     1     0     1     0     0
#>      [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26]
#> [1,]     0     1     1     0     0     0     0     1     0     0     0     0
#> [2,]     1     0     0     1     1     1     1     0     1     1     1     1
#>      [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38]
#> [1,]     0     0     0     0     0     0     1     0     1     0     1     1
#> [2,]     1     1     1     1     1     1     0     1     0     1     0     0
#>      [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50]
#> [1,]     1     0     1     1     0     0     0     0     1     0     1     1
#> [2,]     0     1     0     0     1     1     1     1     0     1     0     0
#>      [,51] [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61] [,62]
#> [1,]     0     1     0     1     0     1     1     1     1     1     0     0
#> [2,]     1     0     1     0     1     0     0     0     0     0     1     1
#>      [,63] [,64] [,65] [,66] [,67] [,68] [,69] [,70] [,71] [,72] [,73] [,74]
#> [1,]     0     1     1     0     0     1     0     0     0     1     0     1
#> [2,]     1     0     0     1     1     0     1     1     1     0     1     0
#>      [,75] [,76] [,77] [,78] [,79] [,80] [,81] [,82] [,83] [,84] [,85] [,86]
#> [1,]     1     0     0     0     0     1     0     1     1     1     1     1
#> [2,]     0     1     1     1     1     0     1     0     0     0     0     0
#>      [,87] [,88] [,89] [,90] [,91] [,92] [,93] [,94] [,95] [,96] [,97] [,98]
#> [1,]     0     1     0     1     1     1     0     0     1     0     1     0
#> [2,]     1     0     1     0     0     0     1     1     0     1     0     1
#>      [,99] [,100]
#> [1,]     1      0
#> [2,]     0      1
#> 
#> $pi_0
#> [1] 0.5 0.5
#> 


## ------------------------------------------------
## Method `specify_starting_values_bsvar_msh$set_starting_values`
## ------------------------------------------------

# starting values for a bsvar model with 1 lag for a 3-variable system
sv = specify_starting_values_bsvar_msh$new(N = 3, p = 1, M = 2, T = 100)

# Modify the starting values by:
sv_list = sv$get_starting_values()   # getting them as list
sv_list$A <- matrix(rnorm(12), 3, 4) # modifying the entry
sv$set_starting_values(sv_list)      # providing to the class object