1 votos

Estimación de la volatilidad estocástica en R

¿Puede alguien ayudarme con el stochvol en R? He estimado las volatilidades utilizando este paquete pero no consigo entender cómo descargar las volatilidades estimadas. He utilizado volplot para trazar las volatilidades pero no entiendo cómo descargar ese resultado.

He utilizado el siguiente código. Cuando utilizo el volplot las volatilidades estimadas tienen un aspecto muy diferente al que tienen cuando intento extraer los valores de la mediana en la función m_export_oil marco de datos.

Los datos necesarios están aquí: https://docs.google.com/spreadsheets/d/14r-_SxCvOG9-_tTNLgXWU-FPkx_8OYLh/edit?usp=sharing&ouid=118324139963698395675&rtpof=true&sd=true

library(stochvol)
library(xlsx)

set.seed(123)
oil_qtrly <- read.xlsx("oil_qtrly.xlsx", sheetIndex = 1L)
oil_qtrly$log_real_op <- log(oil_qtrly$real_price)

sv_model_oil <- svsample(oil_qtrly$log_real_op, priormu = c(-10, 1), priorphi = c(20, 1.1),
                         priorsigma = 0.1,designmatrix = "ar1")
summary(sv_model_oil, showlatent = FALSE)

sigma_oil <- sv_model_oil$latent;
sigma_matrix_oil <- matrix(unlist(sigma_oil), ncol = 100, byrow = TRUE)

num_draws_oil <- dim(sigma_matrix_oil)[1]
num_quarters_oil <- dim(sigma_matrix_oil)[2]

m_export_oil <- matrix(ncol = 4, nrow = num_quarters_oil)

for (i in 1:num_quarters_oil) {
  qq_oil = quantile(100*exp(sigma_matrix_oil[,i]/2),  probs = c(0.05, 0.5,0.95))
  m_export_oil[i,1:3]<- qq_oil
  m_export_oil[i,4] <- oil_qtrly$real_price[i]
}
m_export_oil<-data.frame(m_export_oil)

volplot(sv_model_oil, forecast = NULL, dates = oil_qtrly$date[-1])

2voto

Charles Chen Puntos 183

Los datos subyacentes de este gráfico pueden consultarse en sv_model_oil$summary$sd columnas c('5%', '50%', '95%') . También tiene la mean y sd (sd de las simulaciones, supongo).

Un gran truco en R(Studio) que puede utilizar para averiguar esto es sólo para inspeccionar la fuente. En una consola R simplemente ejecuta volplot sin o en RStudio seleccione "volplot" y pulse F2. Otro método consiste en ejecutar la función paso a paso ejecutando primero debug(volplot) seguido de su comando original. El depurador le permite inspeccionar los valores, avanzar utilizando el comando n y continuar la ejecución mediante el comando c . Para detener la depuración ejecute undebug(volplot) .

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X