MSGARCH在R中滚动窗口预测中的错误

时间:2019-01-11 12:50:20

标签: r

我正在使用MSGARCH来基于滚动窗口获得波动率预测。

但是,在滚动窗口上拟合预测时,出现以下错误消息:

temp

此外:

Error: $ operator is invalid for atomic vectors

从预测输出的某个点开始为零。

我试图更改所使用数据的范围,但它只会导致从不同点开始的零。 如果更改提前一天预测的次数,则预测输出中将有NA和零。 我也将Warning messages: 1: In sqrt(diag(mSandwitch)) : NaNs produced更改为FitML,并且没有错误,但是预测的输出大部分包括5e + 37之类的大数字,这对于波动率和我的数据来说是非常不现实的。 此外,如果我对n天的提前预测(n = 1、50、400,..)进行无循环预测相同的模型,则不会有问题。 如果我使用随机生成的数据代替FitMCMC函数runif的数据,问题将保持不变。

(min=-1,max=1)

如何修改我的代码,以便产生正确的预测值?

P.S。我是SO的新手,所以如果可以提供其他任何信息来使问题更明确,请引导我。

1 个答案:

答案 0 :(得分:0)

错误必须在方法“窗口”中,该方法接受时间序列的日期作为参数。请尝试以下方式:

Create the forecasts vector to store the predictions
windowLength = 100
foreLength<-365
MSforecasts <- vector(length=foreLength)

for (d in 1:foreLength) {
  # Obtain the rolling window 
  RollingWindow = FileAllData$Returns[(6850+d):(6850+windowLength+d)] 
  MSmodel<-CreateSpec(variance.spec = list(model = c("sGARCH", "gjrGARCH", "eGARCH")),
                  distribution.spec = list(distribution = c("snorm", "std", "sged")),
                  switch.spec = list(do.mix = FALSE))
  MSmodel_est<-FitML(spec = MSmodel, data=RollingWindow)

  #Forecasting
  MSforecast<-predict(MSmodel_est, nahead = 1)
  MSforecasts[d]<-MSforecast$vol
}
MSforecasts