stochvol_ksc1998 | R Documentation |
Produces a draw of log-volatilities.
stochvol_ksc1998(y, h, sigma, h_init, constant)
y |
a |
h |
a |
sigma |
a numeric of the variance of the log-volatilites. |
h_init |
a numeric of the initial state of log-volatilities. |
constant |
a numeric of the constant that should be added to |
The function produces a posterior draw of the log-volatility h
for the model
y_{t} = e^{\frac{1}{2}h_t} \epsilon_{t},
where \epsilon_t \sim N(0, 1)
and h_t
is assumed to evolve according to a random walk
h_t = h_{t - 1} + u_t,
with u_t \sim N(0, \sigma^2)
.
The implementation follows the algorithm of Kim, Shephard and Chip (1998) and performs the following steps:
Perform the transformation y_t^* = ln(y_t^2 + constant)
.
Obtain a sample from the seven-component normal mixture for
approximating the log-\chi_1^2
distribution.
Obtain a draw of log-volatilities.
The implementation follows the code provided on the website to the textbook by Chan, Koop, Poirier, and Tobias (2019).
A vector of log-volatility draws.
Chan, J., Koop, G., Poirier, D. J., & Tobias J. L. (2019). Bayesian econometric methods (2nd ed.). Cambridge: Cambridge University Press.
Kim, S., Shephard, N., & Chib, S. (1998). Stochastic volatility. Likelihood inference and comparison with ARCH models. Review of Economic Studies 65(3), 361–393. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1111/1467-937X.00050")}
data("us_macrodata")
y <- us_macrodata[, "r"]
# Initialise log-volatilites
h_init <- log(var(y))
h <- rep(h_init, length(y))
# Obtain draw
stochvol_ksc1998(y - mean(y), h, .05, h_init, 0.0001)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.