【问题标题】:Select dates in 'rugarch' forecast R在“rugarch”预测中选择日期 R
【发布时间】:2021-07-06 10:22:09
【问题描述】:

我有特定年份的每日股市数据,因为股市仅在工作日开放我有给定年份(比如 2021 年)的数据集,但我只有 245 个数据点对应于市场开放。

由于我想预测 2022 年的第 4 天,并且模型的估计需要连续的数据点,我决定使用 decimal_date()(来自 lubridate)来获取我的 2021 年十进制时间索引的第一个日期,并假设数据点以人为的方式等距。那么我的tsobject 从 2021 年的第一个工作日开始就是这个样子:

library(lubridate)
x<-ts(rnorm(245),start=decimal_date(ymd("2021-01-04")),frequency = 245)

这是:

>x
Time Series:
Start = 2021.00821917808 
End = 2022.00413754543 
Frequency = 245 

然后我使用rugarch 包来估计这个数据的 GARCH 模型:

library(rugarch)
garch_setup <- ugarchspec(
  mean.model=list(armaOrder=c(1,1), include.mean=TRUE), #ARIMA
  variance.model=list(garchOrder=c(0,1)), #GARCH
  distribution.model = "norm")

garch_fit <- ugarchfit(spec = garch_setup, data = x, solver ='hybrid')

然后,当我想预测结果时,分配给模型中数据点的日期(索引)对应于纪元时间,而不是我之前在 tsdecimal_date() 函数中分配的日期:

forecast_garch <- ugarchforecast(garch_fit, n.ahead=4)

检查预测指标:

>forecast_garch@model$modeldata$index
  [1] "1970-01-01 19:00:00 -05" "1970-01-02 19:00:00 -05" "1970-01-03 19:00:00 -05"
  [4] "1970-01-04 19:00:00 -05" "1970-01-05 19:00:00 -05" "1970-01-06 19:00:00 -05"
  [7] "1970-01-07 19:00:00 -05" "1970-01-08 19:00:00 -05" "1970-01-09 19:00:00 -05"
...

我应该怎么做才能让rugarch 函数在估计和预测中使用我的ts 的对象日期索引?

谢谢!

PD:忽略 2021 年至今仍在进行的事实。

【问题讨论】:

    标签: r date datetime lubridate


    【解决方案1】:

    来自更新日志:

    2013-01-30 Alexios Ghalanos alexios@4dscape.com

    • 描述(版本):新版本为 1.01-3。

    [...]

    • xts 现在是包接受的唯一支持的数据“格式”。通过假设所提供数据的数字索引表示自 1970-01-01 以来的天数(目前已关闭警告),将没有适当的基于时间的索引的数字、data.frame 和矩阵数据强制为一个。

    [...]

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多