-
Fix MCMC algorithm for
include_mean = TRUE
case. -
Fix predictive distribution update codes (
predict()
,forecast_roll()
, andforecast_expand()
forldltmod
andsvmod
classes). -
Fix out-of-forecasting (
forecast_roll()
andforecast_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()
andvhar_bayes()
now handle both shrinkage priors and stochastic volatility. -
bvar_ssvs()
,bvar_horseshoe()
,bvar_sv()
,bvhar_ssvs()
,bvhar_horseshoe()
, andbvhar_sv()
are deprecated, and will be removed in v2.1.0 with their source functions. -
set_horseshoe()
has additional setting forgroup_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()
andvhar_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 packageGIGrvg
.
-
set_dl()
specifies Dirichlet-Laplace (DL) prior invar_bayes()
andvhar_bayes()
. -
set_ng()
specifies Normal-Gamma (NG) prior invar_bayes()
andvhar_bayes()
. -
bvar_sv()
andbvhar_sv()
supports hierarchical Minnesota prior.
-
Added regularization step in internal Normal posterior generation function against non-existing LLT case.
-
Added
BOOST_DISABLE_ASSERTS
flag againstboost
asserts.
-
spillover()
computes static spillover given model. -
dynamic_spillover()
computes dynamic spillover given model.
-
predict()
,forecast_roll()
, andforecast_expand()
with LDLT models can use CI level when adding sparsity. -
predict()
,forecast_roll()
, andforecast_expand()
ofldltmod
havesparse
option to use sparsity. -
predict()
,forecast_roll()
, andforecast_expand()
with SV models can use CI level when adding sparsity. -
predict()
,forecast_roll()
, andforecast_expand()
ofsvmod
havesparse
option to use sparsity. -
Out-of-sample forecasting functions are now S3 generics (
forecast_roll()
andforecast_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 isTRUE
by default). -
forecast_roll()
andforecast_expand()
can implement OpenMP multithreading, except inbvarflat
class. -
If the model uses multiple chain MCMC, static schedule is used in
forecast_roll()
and dynamic schedule inforecast_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()
andforecast_expand.svmod()
usinglpl
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) inbvhar_sv()
andbvar_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
) inbvhar_sv()
andbvar_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 ofRcpp
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()
andbvhar_sv()
).
-
For new research, add new features for shrinkage priors.
-
Add Shrinkage priors SSVS and Horseshoe (
bvar_ssvs()
,bvhar_ssvs()
,bvar_horseshoe()
, andbvhar_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.
- Fix
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()
andbvhar_ssvs()
) -
Can do corresponding variable selection (
summary.ssvsmod()
)
- Add stochastic volatility models VAR-SV and VHAR-SV (
bvar_sv()
andbvhar_sv()
).
-
Fix not working Hierarchical natural conjugate MNIW function (
bvar_niwhm()
). -
Use
posterior
package forsummary.normaliw()
to improve processing and printing.
-
Now can use heavy-tailed distribution (Multivariate t-distribution) when generating VAR and VHAR process (
sim_var()
andsim_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()
andvhar_lm()
). -
Now
include_mean
works internally withRcpp
.
-
Add partial t-test for each VAR and VHAR coefficient (
summary.varlse()
andsummary.vharlse()
). -
Appropriate print method for the updated summary method (
print.summary.varlse()
andprint.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.
- When simulation, asymmetric covariance error is caught now (
sim_mgaussian()
).
- Add one integrated function that can do empirical bayes (
choose_bayes()
andbound_bvhar()
).
- Pre-process date column of
oxfordman
more elaborately (it becomes same withetf_vix
).
-
Added weekly and monthly order feature in VHAR family (
vhar_lm()
andbvhar_minnesota()
). -
Other functions are compatible with har order option (
predict.vharlse()
,predict.bvharmn()
, andchoose_bvhar()
)
- Added parallel option for empirical bayes (
choose_bvar()
andchoose_bvhar()
).
- Added facet feature for the loss plot and changed its name (
gg_loss()
).
-
Added rolling window and expanding window features (
forecast_roll()
andforecast_expand()
). -
Can compute loss for each rolling and expanding window method (
mse.bvharcv()
,mae.bvharcv()
,mape.bvharcv()
, andmape.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()
, andpredict.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()
, andbvhar_minnesota()
).
- Added constant term choice in each function (
var_lm()
,vhar_lm()
,bvar_minnesota()
,bvar_flat()
, andbvhar_minnesota()
).
- Added a
NEWS.md
file to track changes to the package.