我想估计Realized GARCH(1,1)模型。在我的数据集中,我有以下时间序列:
ret <- replicate(1, rnorm(100))
RV <- replicate(1, rnorm(100))
date <- c(1:100)
我执行以下操作:
install.packages("rugarch")
library(rugarch)
attspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), variance.model = list(model = 'realGARCH', garchOrder = c(1, 1)))
fit <- ugarchfit(spec=attspec, data=ret, solver = 'hybrid', realizedVol = RV[, 1])
在最后一行之后我收到错误: realizeVol必须是xts对象
我尝试使用xts包描述中给出的示例将我的RV矩阵转换为xts对象:
require(xts)
rownames(RV) <- date
matrix_xts <- as.xts(RV,dateFormat='Date')
或
df_xts <- as.xts(as.data.frame(RV))
在这两种情况下,错误是字符串不是标准的明确格式
那么,为了为realizeVol规范制作合适的xts objest格式,我该怎么做呢?
答案 0 :(得分:3)
您应该同时拥有ret
和RV
xts
个对象,可以通过以下方式对其进行初始化:
times<-Sys.time()+date
ret_xts<-xts(ret,order.by = times)
RV_xts <- xts(RV,order.by = times)
然后你就可以成功致电:
fit <- ugarchfit(spec=attspec, data=ret_xts, solver = 'hybrid', realizedVol = RV_xts)