Learn R Programming

exdqlm (version 0.1.4)

exdqlmMCMC: exDQLM - MCMC algorithm

Description

The function applies a Markov chain Monte Carlo (MCMC) algorithm to sample the posterior of an exDQLM.

Usage

exdqlmMCMC(
  y,
  p0,
  model,
  df,
  dim.df,
  fix.gamma = FALSE,
  gam.init = NA,
  fix.sigma = FALSE,
  sig.init = NA,
  dqlm.ind = FALSE,
  Sig.mh,
  joint.sample = FALSE,
  n.burn = 2000,
  n.mcmc = 1500,
  init.from.isvb = TRUE,
  PriorSigma = NULL,
  PriorGamma = NULL,
  verbose = TRUE
)

Value

A list of the following is returned:

  • `run.time` - Algorithm run time in seconds.

  • `model` - List of the state-space model including `GG`, `FF`, prior parameters `m0` and `C0`.

  • `p0` - The quantile which was estimated.

  • `df` - Discount factors used for each block.

  • `dim.df` - Dimension used for each block of discount factors.

  • `samp.theta` - Posterior sample of the state vector.

  • `samp.post.pred` - Sample of the posterior predictive distributions.

  • `map.standard.forecast.errors` - MAP standardized one-step-ahead forecast errors.

  • `samp.sigma` - Posterior sample of scale parameter sigma.

  • `samp.vts` - Posterior sample of latent parameters, v_t.

  • `theta.out` - List containing the distributions of the state vector including filtered distribution parameters (`fm` and `fC`) and smoothed distribution parameters (`sm` and `sC`).

If `dqlm.ind=FALSE`, the list also contains the following:

  • `samp.gamma` - Posterior sample of skewness parameter gamma.

  • `samp.sts` - Posterior sample of latent parameters, s_t.

  • `init.log.sigma` - Burned samples of log sigma from the random walk MH joint sampling of sigma and gamma.

  • `init.logit.gamma` - Burned samples of logit gamma from the random walk MH joint sampling of sigma and gamma.

  • `accept.rate` - Acceptance rate of the MH step.

  • `Sig.mh` - Covariance matrix used in MH step to jointly sample sigma and gamma.

Arguments

y

A univariate time-series.

p0

The quantile of interest, a value between 0 and 1.

model

List of the state-space model including `GG`, `FF`, prior parameters `m0` and `C0`.

df

Discount factors for each block.

dim.df

Dimension of each block of discount factors.

fix.gamma

Logical value indicating whether to fix gamma at `gam.init`. Default is `FALSE`.

gam.init

Initial value for gamma (skewness parameter), or value at which gamma will be fixed if `fix.gamma=TRUE`.

fix.sigma

Logical value indicating whether to fix sigma at `sig.init`. Default is `TRUE`.

sig.init

Initial value for sigma (scale parameter), or value at which sigma will be fixed if `fix.sigma=TRUE`.

dqlm.ind

Logical value indicating whether to fix gamma at `0`, reducing the exDQLM to the special case of the DQLM. Default is `FALSE`.

Sig.mh

Covariance matrix used in the random walk MH step to jointly sample sigma and gamma.

joint.sample

Logical value indicating whether or not to recompute `Sig.mh` based off the initial burn-in samples of gamma and sigma. Default is `FALSE`.

n.burn

Number of MCMC iterations to burn. Default is `n.burn = 2000`.

n.mcmc

Number of MCMC iterations to sample. Default is `n.mcmc = 1500`.

init.from.isvb

Logical value indicating whether or not to initialize the MCMC using the ISVB algorithm. Default is `TRUE`.

PriorSigma

List of parameters for inverse gamma prior on sigma; shape `a_sig` and scale `b_sig`. Default is an inverse gamma with mean 1 (or `sig.init` if provided) and variance 10.

PriorGamma

List of parameters for truncated student-t prior on gamma; center `m_gam`, scale `s_gam` and degrees of freedom `df_gam`. Default is a standard student-t with 1 degree of freedom, truncated to the support of gamma.

verbose

Logical value indicating whether progress should be displayed.

Examples

Run this code
# \donttest{
y = scIVTmag[1:100]
trend.comp = polytrendMod(1,mean(y),10)
seas.comp = seasMod(365,c(1,2,4),C0=10*diag(6))
model = combineMods(trend.comp,seas.comp)
M2 = exdqlmMCMC(y,p0=0.85,model,df=c(1,1),dim.df = c(1,6),
                gam.init=-3.5,sig.init=15,
                n.burn=100,n.mcmc=150)
# }

Run the code above in your browser using DataLab