Changelog
Source:NEWS.md
bvhar (development version)
Can filter MCMC draws where coefficient is stable when forecasting.
Changed Eigen and boost assertion behavior (
eigen_assert
andBOOST_ASSERT
) to give error instead of abort.Transpose the predictive distribution update loop.
med = TRUE
gives median of forecast draws as point forecast.var_bayes()
andvhar_bayes()
can choose to use only group shrinkage parameters without global parameter withggl = FALSE
option.SAVS penalty is zero in own-lag.
C++ Header file changes
Use template to avoid code duplicates among LDLT and SV models.
Can easily conduct MCMC using
McmcRun
class in C++ source.Can easily implement forecasting for LDLT and SV MCMC using
McmcVarforecastRun<>
andMcmcVharforecastRun<>
.Can easily use rolling and expanding forecast for LDLT ans SV MCMC using
McmcVarforecastRun<>
andMcmcVharforecastRun<>
.
bvhar 2.1.2
CRAN release: 2024-10-11
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.
bvhar 2.1.1
CRAN release: 2024-10-05
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.
bvhar 2.1.0
CRAN release: 2024-09-16
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
.
New priors
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.
Internal changes
Added regularization step in internal Normal posterior generation function against non-existing LLT case.
Added
BOOST_DISABLE_ASSERTS
flag againstboost
asserts.
Spillover effects
spillover()
computes static spillover given model.dynamic_spillover()
computes dynamic spillover given model.
Forecasting
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.
bvhar 2.0.1
CRAN release: 2024-03-01
Fix internal vectorization and unvectorization behavior.
Used Eigen 3.4 feature (
reshaped()
) to solve these (RcppEigen >= 0.3.4.0.0
).
bvhar 2.0.0
CRAN release: 2024-02-14
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)]]
.
Parallel Chain MCMC
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.
bvhar 1.2.0
CRAN release: 2024-01-09
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()
).
bvhar 1.1.0
CRAN release: 2023-12-18
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).
bvhar 1.0.2
CRAN release: 2023-12-06
License has been changed to GPLv3.
Remove unnecessary Rcpp plugins in source files.
bvhar 1.0.0
CRAN release: 2023-11-08
“Bayesian Vector Heterogeneous Autoregressive Modeling” has been accepted in JSCS 🎉
Update to major version before publication.
bvhar 0.14.0
Add Stochastic Search Variable Selection (SSVS) models for VAR and VHAR (
bvar_ssvs()
andbvhar_ssvs()
)Can do corresponding variable selection (
summary.ssvsmod()
)
bvhar 0.12.1
Fix not working Hierarchical natural conjugate MNIW function (
bvar_niwhm()
).Use
posterior
package forsummary.normaliw()
to improve processing and printing.
bvhar 0.12.0
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()
).
bvhar 0.10.0
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()
).
bvhar 0.9.0
Can compute impulse response function for VAR (
varlse
) and VHAR (vharlse
) models (analyze_ir()
).Can draw impulse -> response plot in grid panels (
autoplot.bvharirf()
).
bvhar 0.8.0
Changed the way of specifying the lower and upper bounds of empirical bayes (
bound_bvhar()
).Added Empirical Bayes vignette.
bvhar 0.7.0
- Add one integrated function that can do empirical bayes (
choose_bayes()
andbound_bvhar()
).
bvhar 0.6.0
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()
)
bvhar 0.5.2
- Added parallel option for empirical bayes (
choose_bvar()
andchoose_bvhar()
).
bvhar 0.5.1
- Added facet feature for the loss plot and changed its name (
gg_loss()
).
bvhar 0.5.0
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()
).
bvhar 0.4.1
Fix Marginal likelihood form (
compute_logml()
).Optimize empirical bayes method using stabilized marginal likelihood function (
logml_stable()
).
bvhar 0.4.0
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
bvhar 0.3.0
Added Bayesian model specification functions and class (
bvharspec
).Replaced hyperparameters with model specification in Bayesian models (
bvar_minnesota()
,bvar_flat()
, andbvhar_minnesota()
).
bvhar 0.2.0
- Added constant term choice in each function (
var_lm()
,vhar_lm()
,bvar_minnesota()
,bvar_flat()
, andbvhar_minnesota()
).