Uses Gibbs sampling to fit an AR model to time series data.
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)
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.
time series data (univariate only)
autoregression order
number of iterations for the sampler
number of startup iterations for the sampler (these are removed)
if TRUE (default) returns two graphics, (1) the draws after warmup and (2) a scatterplot matrix of the draws with histograms on the diagonal
color of the plots
prior variance of the vector of AR coefficients; see details
first prior for the variance component; see details
second prior for the variance component; see details
D.S. Stoffer
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 Example 8.36 of Douc, Moulines, & Stoffer, D. (2014). Nonlinear Time Series: Theory, Methods and Applications with R Examples. CRC press. ISBN 9781466502253.
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 are https://www.stat.pitt.edu/stoffer/tsa4/ and https://www.stat.pitt.edu/stoffer/tsda/.
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