Fix MCMC algorithm for include_mean = TRUE
case.
Fix predictive distribution update codes (predict()
,
forecast_roll()
, and forecast_expand()
for
ldltmod
and svmod
classes).
Fix out-of-forecasting (forecast_roll()
and
forecast_expand()
) result process codes.
When using GIG generation in MCMC, it has maximum iteration numbers of while statement.
Defined USE_RCPP
macro in the C++ header so that
Rcpp source usage works fine.
Use Signal Adaptive Variable Selector (SAVS) to generate sparse coefficient from shrinkage priors.
var_bayes()
and vhar_bayes()
now handle
both shrinkage priors and stochastic volatility.
bvar_ssvs()
, bvar_horseshoe()
,
bvar_sv()
, bvhar_ssvs()
,
bvhar_horseshoe()
, and bvhar_sv()
are
deprecated, and will be removed in v2.1.0 with their source
functions.
set_horseshoe()
has additional setting for
group_shrinkage
. Horseshoe sampling now has additional
group shrinkage level parameters.
set_ssvs()
now additionally should specify different
Beta hyperparameters for each own-lag and cross-lag.
set_ssvs()
sets scaling factor and inverse-gamma
hyperparameters for coefficients and cholesky factor slab sd.
Use full bayesian approach to SSVS spike and slab sd’s instead of
semi-automatic approach, in var_bayes()
and
vhar_bayes()
.
MCMC functions return give $param
and
$param_names
, not individual $*_record
members.
sim_gig()
generates Generalized Inverse Gaussian
(GIG) random numbers using the algorithm of R package
GIGrvg
.
set_dl()
specifies Dirichlet-Laplace (DL) prior in
var_bayes()
and vhar_bayes()
.
set_ng()
specifies Normal-Gamma (NG) prior in
var_bayes()
and vhar_bayes()
.
bvar_sv()
and bvhar_sv()
supports
hierarchical Minnesota prior.
Added regularization step in internal Normal posterior generation function against non-existing LLT case.
Added BOOST_DISABLE_ASSERTS
flag against
boost
asserts.
spillover()
computes static spillover given
model.
dynamic_spillover()
computes dynamic spillover given
model.
predict()
, forecast_roll()
, and
forecast_expand()
with LDLT models can use CI level when
adding sparsity.
predict()
, forecast_roll()
, and
forecast_expand()
of ldltmod
have
sparse
option to use sparsity.
predict()
, forecast_roll()
, and
forecast_expand()
with SV models can use CI level when
adding sparsity.
predict()
, forecast_roll()
, and
forecast_expand()
of svmod
have
sparse
option to use sparsity.
Out-of-sample forecasting functions are now S3 generics
(forecast_roll()
and
forecast_expand()
).
Add Rolling-window forecasting for LDLT models
(forecast_roll.ldltmod()
).
Add Expanding-window forecasting for LDLT models
(forecast_expand.ldltmod()
).
Add Rolling-window forecasting for SV models
(forecast_roll.svmod()
).
Add Expanding-window forecasting for SV models
(forecast_expand.svmod()
).
When forecasting SV models, it is available to choose whether to
use time-varying covariance (use_sv
option, which is
TRUE
by default).
forecast_roll()
and forecast_expand()
can implement OpenMP multithreading, except in bvarflat
class.
If the model uses multiple chain MCMC, static schedule is used in
forecast_roll()
and dynamic schedule in
forecast_expand()
.
sim_mniw()
output format has been changed into list
of lists.
Now can use MNIW generation by including header
(std::vector<Eigen::MatrixXd> sim_mn_iw(...)
).
Compute LPL inside forecast_roll.svmod()
and
forecast_expand.svmod()
using lpl
option.
Instead, lpl
method is removed.
Fix internal vectorization and unvectorization behavior.
Used Eigen 3.4 feature (reshaped()
) to solve these
(RcppEigen >= 0.3.4.0.0
).
Start to implement OOP in C++ source for each model, ready for major update.
Add SV specification (sv_spec
argument) in
bvhar_sv()
and bvar_sv()
(set_sv()
).
Prevent SSVS overflow issues by using log-sum-exp trick when computing Bernoulli posterior probability.
Add separate constant term prior specification
(intercept
) in bvhar_sv()
and
bvar_sv()
(set_intercept()
).
Convert every header file inst/include to header-only format.
This enables external inclusion of our classes, structs, and Rcpp
functions by using LinkingTo
(in R package development) or
// [[Rcpp::depends(RcppEigen, BH, bvhar)]]
.
Use OpenMP parallel for loop
Progress bar will show the status only for master thread when OpenMP enabled.
Interruption detect will just save values and break the loop, not return immediately.
Do burn-in and thinning in each returnRecords()
method to make pre-process parallel chains easier.
Use boost library (BH
package) RNG instead of Rf_*
RNG of Rcpp
for thread-safety.
Introduce function overloading to internal Rcpp random generation
functions temporarily. It’s for maintaining set.seed()
usage of some functions.
Replace progress bar of RcppProgress
package with
custom header (bvharprogress.h
).
Replace checking user interruption in the same package with
custom header (bvharinterrupt.h
).
Fix triangular algorithm. Found missing update of some variables
(bvar_sv()
and bvhar_sv()
).
For new research, add new features for shrinkage priors.
Add Shrinkage priors SSVS and Horseshoe
(bvar_ssvs()
, bvhar_ssvs()
,
bvar_horseshoe()
, and
bvhar_horseshoe()
).
bvar_sv()
, bvhar_sv()
works with SSVS
(set_ssvs()
) and Horseshoe
(set_horseshoe()
).
Update the shrinkage structure in the spirit of Minnesota.
(minnesota = TRUE
,
minnesota = c("no", "short", "longrun")
).
Stochastic volatility models implement corrected triangular algorithm of Carriero et al. (2021).
License has been changed to GPLv3.
Remove unnecessary Rcpp plugins in source files.
knitr::knit_print()
method export methods (#2).“Bayesian Vector Heterogeneous Autoregressive Modeling” has been accepted in JSCS 🎉
Update to major version before publication.
Add Stochastic Search Variable Selection (SSVS) models for VAR
and VHAR (bvar_ssvs()
and
bvhar_ssvs()
)
Can do corresponding variable selection
(summary.ssvsmod()
)
bvar_sv()
and bvhar_sv()
).Fix not working Hierarchical natural conjugate MNIW function
(bvar_niwhm()
).
Use posterior
package for
summary.normaliw()
to improve processing and
printing.
Now can use heavy-tailed distribution (Multivariate
t-distribution) when generating VAR and VHAR process
(sim_var()
and sim_vhar()
).
Also provide independent MVT generation function
(sim_mvt()
).
Added method = c("nor", "chol", "qr")
option in VAR
and VHAR fitting function to use cholesky and Householder QR method
(var_lm()
and vhar_lm()
).
Now include_mean
works internally with
Rcpp
.
Add partial t-test for each VAR and VHAR coefficient
(summary.varlse()
and
summary.vharlse()
).
Appropriate print method for the updated summary method
(print.summary.varlse()
and
print.summary.vharlse()
).
Can compute impulse response function for VAR
(varlse
) and VHAR (vharlse
) models
(analyze_ir()
).
Can draw impulse -> response plot in grid panels
(autoplot.bvharirf()
).
Changed the way of specifying the lower and upper bounds of
empirical bayes (bound_bvhar()
).
Added Empirical Bayes vignette.
sim_mgaussian()
).choose_bayes()
and bound_bvhar()
).oxfordman
more elaborately
(it becomes same with etf_vix
).Added weekly and monthly order feature in VHAR family
(vhar_lm()
and bvhar_minnesota()
).
Other functions are compatible with har order option
(predict.vharlse()
, predict.bvharmn()
, and
choose_bvhar()
)
choose_bvar()
and choose_bvhar()
).gg_loss()
).Added rolling window and expanding window features
(forecast_roll()
and
forecast_expand()
).
Can compute loss for each rolling and expanding window method
(mse.bvharcv()
, mae.bvharcv()
,
mape.bvharcv()
, and mape.bvharcv()
).
Fix Marginal likelihood form
(compute_logml()
).
Optimize empirical bayes method using stabilized marginal
likelihood function (logml_stable()
).
Change the way to compute the CI of BVAR and BVHAR
(predict.bvarmn()
, predict.bvharmn()
, and
predict.bvarflat()
)
Used custom random generation function - MN, IW, and MNIW based on RcppEigen
Added Bayesian model specification functions and class
(bvharspec
).
Replaced hyperparameters with model specification in Bayesian
models (bvar_minnesota()
, bvar_flat()
, and
bvhar_minnesota()
).
var_lm()
,
vhar_lm()
, bvar_minnesota()
,
bvar_flat()
, and bvhar_minnesota()
).NEWS.md
file to track changes to the
package.