Learn R Programming

astsa (version 2.1)

SV.mcmc: Fit Bayesian Stochastic Volatility Model

Description

Fits a stochastic volatility model to a univariate time series of returns.

Usage

SV.mcmc(y, nmcmc = 1000, burnin = 100, init = NULL, hyper = NULL, tuning = NULL, 
         sigma_MH = NULL, npart = NULL, mcmseed = NULL)

Value

Returned invisibly:

phi

vector of sampled state AR parameter

sigma

vector of sampled state error stnd deviation

beta

vector of sampled observation error scale

log.vol

matrix of sampled log-volatility

options

values of the input arguments

Arguments

y

single time series of returns

nmcmc

number of iterations for the MCMC procedure

burnin

number of iterations to discard for the MCMC procedure

init

initial values of (phi, sigma, beta) - default is c(0.9, 0.5, .1)

hyper

hyperparameters for bivariate normal distribution of (phi, sigma); user inputs (mu_phi, mu_q, sigma_phi, sigma_q, rho) - default is c(0.9, 0.5, 0.075, 0.3, -0.25)

tuning

tuning parameter - default is .03

sigma_MH

covariance matrix used for random walk Metropolis; it will be scaled by tuning in the script - default is matrix(c(1,-.25,-.25,1), nrow=2, ncol=2)

npart

number of particles used in particle filter - default is 10

mcmseed

seed for mcmc - default is 90210

Author

D.S. Stoffer

Details

The log-volatility process is \(x_t\) and the returns are \(y_t\). The SV model is $$x_t = \phi x_{t-1} + \sigma w_t \qquad y_t = \beta \exp\{\frac{1}{2} x_t\}\epsilon_t$$ where \(w_t\) and \(\epsilon_t\) are independent standard normal white noise.

The model is fit using a technique described in the paper listed below (in the Source section) where the state parameters \((\phi, \sigma)\) are sampled simultaneously with a bivariate normal prior specified in the arguments init and hyper.

Two graphics are returned: (1) the three parameter traces with the posterior mean highlighted, their ACFs [with effective sample sizes (ESS)], and their histograms with the .025, .5, and .975 quantiles displayed, and (2) the log-volatility posterior mean along with corresponding .95 credible intervals.

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/.

See Also

SV.mle

Examples

Run this code
if (FALSE) {
#--   A minimal example  --##
myrun <- SV.mcmc(sp500w)   # results in object myrun - don't forget it 

str(myrun)                 # an easy way to see the default input options
}

Run the code above in your browser using DataLab