The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
We provide functions to generate matrix-variate Normal and inverse-Wishart.
sim_mnormal(num_sim, mu, sig)
: num_sim
of
\(\mathbf{X}_i \stackrel{iid}{\sim}
N(\boldsymbol{\mu}, \Sigma)\).sim_matgaussian(mat_mean, mat_scale_u, mat_scale_v)
:
One \(X_{m \times n} \sim MN(M_{m \times n},
U_{m \times m}, V_{n \times n})\) which means that \(vec(X) \sim N(vec(M), V \otimes U)\).sim_iw(mat_scale, shape)
: One \(\Sigma \sim IW(\Psi, \nu)\).sim_mniw(num_sim, mat_mean, mat_scale_u, mat_scale, shape)
:
num_sim
of \((X_i, \Sigma_i)
\stackrel{iid}{\sim} MNIW(M, U, V, \nu)\).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))
#> [,1] [,2]
#> [1,] -0.626 0.184
#> [2,] -0.836 1.595
#> [3,] 0.330 -0.820
The output of sim_matgaussian()
is a matrix.
sim_matgaussian(matrix(1:20, nrow = 4), diag(4), diag(5), FALSE)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1.49 5.74 9.58 12.7 18.5
#> [2,] 2.39 5.38 7.79 15.1 18.0
#> [3,] 2.98 7.94 11.82 15.6 19.9
#> [4,] 4.78 8.07 10.01 16.6 19.9
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)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.1827 0.0894 -0.0411 -0.0924 -0.1305
#> [2,] 0.0894 0.6110 0.0860 -0.3754 -0.1015
#> [3,] -0.0411 0.0860 0.2189 -0.1649 -0.0988
#> [4,] -0.0924 -0.3754 -0.1649 0.4577 0.2136
#> [5,] -0.1305 -0.1015 -0.0988 0.2136 0.7444
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)
#> $mn
#> $mn[[1]]
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1.19 4.96 8.03 12.7 14.6
#> [2,] 2.13 5.17 10.41 14.1 19.3
#> [3,] 3.01 7.15 10.29 14.9 18.1
#> [4,] 4.59 7.99 12.12 15.0 18.5
#>
#> $mn[[2]]
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.323 5.07 8.24 13.1 17.4
#> [2,] 2.022 5.56 9.96 13.9 19.4
#> [3,] 3.380 7.24 11.34 15.5 17.9
#> [4,] 3.755 8.79 11.84 15.6 19.6
#>
#>
#> $iw
#> $iw[[1]]
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.2887 -0.04393 0.11892 -0.2959 0.110
#> [2,] -0.0439 0.33357 0.00197 0.0106 -0.167
#> [3,] 0.1189 0.00197 1.30074 -0.0291 2.210
#> [4,] -0.2959 0.01061 -0.02913 0.5072 0.250
#> [5,] 0.1104 -0.16736 2.20957 0.2504 4.623
#>
#> $iw[[2]]
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 0.28118 -0.1397 0.00529 0.0283 0.038
#> [2,] -0.13965 0.2876 0.06156 -0.1575 -0.186
#> [3,] 0.00529 0.0616 0.31282 -0.1372 -0.299
#> [4,] 0.02831 -0.1575 -0.13724 0.3441 0.122
#> [5,] 0.03803 -0.1856 -0.29860 0.1217 0.738
This function has been defined for the next simulation functions.
Consider BVAR Minnesota prior setting,
\[A \sim MN(A_0, \Omega_0, \Sigma_e)\]
\[\Sigma_e \sim IW(S_0, \alpha_0)\]
build_xdummy()
build_ydummy()
sigma
: Vector \(\sigma_1,
\ldots, \sigma_m\)
lambda
m
increases, \(\lambda\) should be smaller to avoid
overfitting (De Mol et al. (2008))delta
: Persistence
eps
: Very small number to make matrix invertiblebvar_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
))
#> Model Specification for BVAR
#>
#> Parameters: Coefficent matrice and Covariance matrix
#> Prior: Minnesota
#> ========================================================
#>
#> Setting for 'sigma':
#> [1] 3.25 11.10 2.20 6.80
#>
#> Setting for 'lambda':
#> [1] 0.2
#>
#> Setting for 'delta':
#> [1] 1 1 1 1
#>
#> Setting for 'eps':
#> [1] 1e-04
#>
#> Setting for 'hierarchical':
#> [1] FALSE
sim_mncoef(p, bayes_spec, full = TRUE)
can generate
both \(A\) and \(\Sigma\) matrices.bayes_spec
, only set_bvar()
works.full = FALSE
, \(\Sigma\) is not random. It is same as
diag(sigma)
from the bayes_spec
.full = TRUE
is the default.(sim_mncoef(bvar_lag, spec_to_sim))
#> $coefficients
#> [,1] [,2] [,3] [,4]
#> [1,] 0.996255 -0.19084 -0.026363 0.07600
#> [2,] -0.017158 1.07873 -0.033404 -0.00816
#> [3,] -0.225869 0.31165 0.927705 -0.48148
#> [4,] -0.002706 -0.26068 0.038566 0.84105
#> [5,] -0.023064 -0.11717 -0.030881 0.35496
#> [6,] 0.000253 -0.05523 -0.018351 0.03580
#> [7,] -0.001364 -0.06563 -0.051615 -0.33330
#> [8,] -0.025569 0.11938 -0.011720 -0.15248
#> [9,] 0.062006 -0.07985 -0.001830 0.15440
#> [10,] 0.008609 -0.03437 0.016242 0.00866
#> [11,] -0.069804 0.11559 0.003275 0.30043
#> [12,] 0.001677 0.01789 -0.000582 -0.02224
#> [13,] -0.000864 0.05893 0.038960 0.06788
#> [14,] 0.008799 -0.04337 0.005557 0.02273
#> [15,] -0.053924 0.16120 -0.006870 0.10085
#> [16,] -0.009109 0.00284 -0.008880 -0.01168
#> [17,] 0.008001 -0.05816 0.012293 -0.05256
#> [18,] -0.006107 0.03645 -0.004491 -0.00687
#> [19,] -0.011204 0.05703 0.036651 0.13185
#> [20,] -0.003148 -0.05735 0.016794 0.04086
#>
#> $covmat
#> [,1] [,2] [,3] [,4]
#> [1,] 2.615 -5.1044 0.1522 2.44
#> [2,] -5.104 32.2768 -0.0549 -12.04
#> [3,] 0.152 -0.0549 1.4573 0.31
#> [4,] 2.440 -12.0446 0.3101 30.83
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)\]
bayes_spec
option wants
bvharspec
. But
set_bvhar()
set_weight_bvhar()
full = TRUE
, too.(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
))
#> Model Specification for BVHAR
#>
#> Parameters: Coefficent matrice and Covariance matrix
#> Prior: MN_VAR
#> ========================================================
#>
#> Setting for 'sigma':
#> [1] 1.2 2.3
#>
#> Setting for 'lambda':
#> [1] 0.2
#>
#> Setting for 'delta':
#> [1] 0.3 1.0
#>
#> Setting for 'eps':
#> [1] 1e-04
#>
#> Setting for 'hierarchical':
#> [1] FALSE
(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
))
#> Model Specification for BVHAR
#>
#> Parameters: Coefficent matrice and Covariance matrix
#> Prior: MN_VHAR
#> ========================================================
#>
#> Setting for 'sigma':
#> [1] 1.2 2.3
#>
#> Setting for 'lambda':
#> [1] 0.2
#>
#> Setting for 'eps':
#> [1] 1e-04
#>
#> Setting for 'daily':
#> [1] 0.5 1.0
#>
#> Setting for 'weekly':
#> [1] 0.2 0.3
#>
#> Setting for 'monthly':
#> [1] 0.1 0.1
#>
#> Setting for 'hierarchical':
#> [1] FALSE
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.