Learn R Programming

dsp (version 1.2.0)

btf_sparse: Run the MCMC for sparse Bayesian trend filtering

Description

Sparse Bayesian trend filtering has two penalties: (1) a penalty on the first (D = 1) or second (D = 2) differences of the conditional expectation and (2) a penalty on the conditional expectation, i.e., shrinkage to zero.

Usage

btf_sparse(
  y,
  evol_error = "DHS",
  zero_error = "DHS",
  D = 2,
  obsSV = "const",
  nsave = 1000,
  nburn = 1000,
  nskip = 4,
  mcmc_params = list("mu", "yhat", "evol_sigma_t2", "obs_sigma_t2", "zero_sigma_t2",
    "dhs_phi", "dhs_mean", "dhs_phi_zero", "dhs_mean_zero", "h", "h_smooth"),
  computeDIC = TRUE,
  verbose = TRUE,
  D_asv = 1,
  evol_error_asv = "HS",
  nugget_asv = TRUE
)

Value

A named list of the nsave MCMC samples for the parameters named in mcmc_params

Arguments

y

the T x 1 vector of time series observations

evol_error

the evolution error distribution; must be one of 'DHS' (dynamic horseshoe prior), 'HS' (horseshoe prior), 'BL' (Bayesian lasso), or 'NIG' (normal-inverse-gamma prior)

zero_error

the shrinkage-to-zero distribution; must be one of 'DHS' (dynamic horseshoe prior), 'HS' (horseshoe prior), 'BL' (Bayesian lasso), or 'NIG' (normal-inverse-gamma prior)

D

degree of differencing (D = 1, or D = 2)

obsSV

Options for modeling the error variance. It must be one of the following:

  • const: Constant error variance for all time points.

  • SV: Stochastic Volatility model.

  • ASV: Adaptive Stochastic Volatility model.

nsave

number of MCMC iterations to record

nburn

number of MCMC iterations to discard (burnin-in)

nskip

number of MCMC iterations to skip between saving iterations, i.e., save every (nskip + 1)th draw

mcmc_params

named list of parameters for which we store the MCMC output; must be one or more of:

  • "mu" (conditional mean)

  • "yhat" (posterior predictive distribution)

  • "evol_sigma_t2" (evolution error variance)

  • "zero_sigma_t2" (shrink-to-zero error variance)

  • "obs_sigma_t2" (observation error variance)

  • "dhs_phi" (DHS AR(1) coefficient for evolution error)

  • "dhs_mean" (DHS AR(1) unconditional mean for evolution error)

  • "dhs_phi_zero" (DHS AR(1) coefficient for shrink-to-zero error)

  • "dhs_mean_zero" (DHS AR(1) unconditional mean for shrink-to-zero error)

  • "h" (log variances or log of "obs_sigma_t2". Only used when obsSV = "ASV")

  • "h_smooth" (smooth estimate of log variances. Only used when obsSV = "ASV" and nugget_asv = TRUE)

computeDIC

logical; if TRUE, compute the deviance information criterion DIC and the effective number of parameters p_d

verbose

logical; should R report extra information on progress?

D_asv

integer; degree of differencing (0, 1, or 2) for the ASV model. Only used when obsSV = "ASV".

evol_error_asv

character; evolution error distribution for the ASV model. Must be one of the five options used in evol_error. Only used when obsSV = "ASV".

nugget_asv

logical; if TRUE, fits the nugget variant of the ASV model. Only used when obsSV = "ASV".

Details

Each penalty is determined by a prior, which include:

  • the dynamic horseshoe prior ('DHS');

  • the static horseshoe prior ('HS');

  • the Bayesian lasso ('BL');

  • the normal stochastic volatility model ('SV');

  • the normal-inverse-gamma prior ('NIG').

In each case, the prior is a scale mixture of Gaussians. Sampling is accomplished with a (parameter-expanded) Gibbs sampler, mostly relying on a dynamic linear model representation.