Minnesota Prior

knitr::opts_chunk$set(
  comment = "#>",
  collapse = TRUE,
  out.width = "70%",
  fig.align = "center",
  fig.width = 6,
  fig.asp = .618
)
orig_opts <- options("digits")
options(digits = 3)
set.seed(1)
library(bvhar)

Normal-inverse-Wishart Matrix

We provide functions to generate matrix-variate Normal and inverse-Wishart.

Multivariate Normal generation gives num_sim x dim matrix. For example, generating 3 vector from Normal($\boldsymbol{\mu} = \mathbf{0}_2$, $\Sigma = diag(\mathbf{1}_2)$):

sim_mnormal(3, rep(0, 2), diag(2))

The output of sim_matgaussian() is a matrix.

sim_matgaussian(matrix(1:20, nrow = 4), diag(4), diag(5), FALSE)

When generating IW, violating $\nu > dim - 1$ gives error. But we ignore $\nu > dim + 1$ (condition for mean existence) in this function. Nonetheless, we recommend you to keep $\nu > dim + 1$ condition. As mentioned, it guarantees the existence of the mean.

sim_iw(diag(5), 7)

In case of sim_mniw(), it returns list with mn (stacked MN matrices) and iw (stacked IW matrices). Each mn and iw has draw lists.

sim_mniw(2, matrix(1:20, nrow = 4), diag(4), diag(5), 7, FALSE)

This function has been defined for the next simulation functions.

Minnesota Prior

BVAR

Consider BVAR Minnesota prior setting,

$$A \sim MN(A_0, \Omega_0, \Sigma_e)$$

$$\Sigma_e \sim IW(S_0, \alpha_0)$$

bvar_lag <- 5
(spec_to_sim <- set_bvar(
  sigma = c(3.25, 11.1, 2.2, 6.8), # sigma vector
  lambda = .2, # lambda
  delta = rep(1, 4), # 4-dim delta vector
  eps = 1e-04 # very small number
))
(sim_mncoef(bvar_lag, spec_to_sim))

BVHAR

sim_mnvhar_coef(bayes_spec, full = TRUE) generates BVHAR model setting:

$$\Phi \mid \Sigma_e \sim MN(M_0, \Omega_0, \Sigma_e)$$

$$\Sigma_e \sim IW(\Psi_0, \nu_0)$$

BVHAR-S

(bvhar_var_spec <- set_bvhar(
  sigma = c(1.2, 2.3), # sigma vector
  lambda = .2, # lambda
  delta = c(.3, 1), # 2-dim delta vector
  eps = 1e-04 # very small number
))
(sim_mnvhar_coef(bvhar_var_spec))

BVHAR-L

(bvhar_vhar_spec <- set_weight_bvhar(
  sigma = c(1.2, 2.3), # sigma vector
  lambda = .2, # lambda
  eps = 1e-04, # very small number
  daily = c(.5, 1), # 2-dim daily weight vector
  weekly = c(.2, .3), # 2-dim weekly weight vector
  monthly = c(.1, .1) # 2-dim monthly weight vector
))
(sim_mnvhar_coef(bvhar_vhar_spec))
options(orig_opts)


Try the bvhar package in your browser

Any scripts or data that you put into this service are public.

bvhar documentation built on April 4, 2025, 5:22 a.m.