Learn R Programming

astsa (version 2.1)

ar.mcmc: Fit Bayesian AR Model

Description

Uses Gibbs sampling to fit an AR model to time series data.

Usage

ar.mcmc(xdata, porder, n.iter = 1000, n.warmup = 100, plot = TRUE, col = 4, 
        prior_var_phi = 50, prior_sig_a = 1, prior_sig_b = 2, ...)

Value

In addition to the graphics (if plot is TRUE), the draws of each parameter (phi0, phi1, ..., sigma) are returned invisibly and various quantiles are displayed.

Arguments

xdata

time series data (univariate only)

porder

autoregression order

n.iter

number of iterations for the sampler

n.warmup

number of startup iterations for the sampler (these are removed)

plot

if TRUE (default) returns two graphics, (1) the draws after warmup and (2) a scatterplot matrix of the draws with histograms on the diagonal

col

color of the plots

prior_var_phi

prior variance of the vector of AR coefficients; see details

prior_sig_a

first prior for the variance component; see details

prior_sig_b

second prior for the variance component; see details

...

additional graphic parameters for the scatterplots

Author

D.S. Stoffer

Details

Assumes a normal-inverse gamma model, $$x_t = \phi_0 + \phi_1 x_{t-1} + \dots + \phi_p x_{t-p} + \sigma z_t ,$$ where \(z_t\) is standard Gaussian noise. With \(\Phi\) being the (p+1)-dimensional vector of the \(\phi\)s, the priors are \(\Phi \mid \sigma \sim N(0, \sigma^2 V_0)\) and \(\sigma^2 \sim IG(a,b)\), where \(V_0 = \gamma^2 I\). Defaults are given for the hyperparameters, but the user may choose \((a,b)\) as (prior_sig_a, prior_sig_b) and \(\gamma^2\) as prior_var_phi.

The algorithm is efficient and converges quickly. Further details can be found in Chapter 6 of the 5th edition of the Springer text.

References

You can find demonstrations of astsa capabilities at FUN WITH ASTSA.

The most recent version of the package can be found at https://github.com/nickpoison/astsa/.

In addition, the News and ChangeLog files are at https://github.com/nickpoison/astsa/blob/master/NEWS.md.

The webpages for the texts and some help on using R for time series analysis can be found at https://nickpoison.github.io/.

Examples

Run this code
if (FALSE) {

u = ar.mcmc(rec, 2)

tsplot(u, ncolm=2, col=4)  # plot the traces

apply(u, 2, ESS)    # effective sample sizes
}

Run the code above in your browser using DataLab