Quiero usar el paquete R stochvol para ajustar un modelo SV a un conjunto de entrenamiento DAX y usar el resultado para estimar un pronóstico de un paso adelante:
DAX2log<- (logret(DAX, demean=TRUE))^2
trainset <- DAX2log[1:1912]
SV <- svsample(trainset, priormu = c(-10, 1), priorphi =
c(20, 1.1), priorsigma = .1, draws = 50000, burnin = 5000)
SVroll <- function(svsampleOBJ, NumofForecast, Data)
{
mu <- summary(svsampleOBJ)$para[1]
phi <- summary(svsampleOBJ)$para[2]
sigma <- summary(svsampleOBJ)$para[3]
HSV <- vector(mode=c("double"),length=NoF)
for(i in 1:NumofForecast)
{
H <- mu + phi*(Data[i] - mu) + sigma
HSV[i] <- exp(H/2)
}
return(HSV)
}
HSV <- SVroll(svsampleOBJ = SV,NumofForecast = 2000,
Data = DAX2log[1913:length(DAx2log)])
El principal problema de este código es que el modelo se convierte en determinista, pero no he conseguido extraer más extracciones de la función de predicción para la previsión rodante.
¿Cómo puedo obtener esas extracciones de la distribución posterior y es adecuada mi fórmula?
Además, parece que hay una confusión en las unidades, ya que el HSV es rendimientos diarios al cuadrado, mientras que la entrada está en log.