1

提供给 external.regressors = .. 的变量的正确格式是什么?我的数据如下所示:

           regressor     dependent
2008-01-04         3  0.0243990059
2008-01-08         3  0.0057341705
2008-01-09         3  0.0047333058
2008-01-10         3  0.0003631741
2008-01-11         3 -0.0019384547
2008-01-14         3 -0.0016992358

我正在使用 Rugarch 包来估计 ARMA(2,0)-GARCH(1,1) 过程,在均值和方差中都有一个外部回归器。因为(当然)我正在处理时间序列,所以我的数据被格式化为动物园。

如果我在这里提供 zoo 变量:

garch.spec <- ugarchspec(
  variance.model = list(model="sGARCH", garchOrder = c(1,1), 
external.regressors = regressor),
  mean.model = list(armaOrder = c(2, 0), include.mean = TRUE),
)

我收到以下错误:

Error in modelinc[15] <- dim(variance.model$external.regressors)[2] : 
  replacement has length zero 

如果我将回归量指定为external.regressors = as.matrix(coredata(regressor)) 错误不会出现,我可以用

ugarchfit(garch.spec, dependent)

其中dependent是一个动物园变量。然而,结果没有意义。

我相信我不明白数据类型在这里是如何工作的。我相信 garch 应该能够使用 zoo 文件并阅读了包描述,但没有发现任何有用的东西。请问有什么建议吗?

4

1 回答 1

1

?ugarchspec我们发现

external.regressors - 一个矩阵对象,包含要包含在方差方程中的外部回归量,其中包含的行数与数据中包含的行数一样多(在 fit 函数中传递)。

因此,如果df包含您的示例数据,请使用

garch.spec <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1, 1), external.regressors = matrix(df$regressor)),
  mean.model = list(armaOrder = c(2, 0), include.mean = TRUE))
ugarchfit(garch.spec, df$dependent)

作品。这是正确用法external.regressors和结果最有可能令人满意的问题与方法有关,更适合Stats.SE

于 2019-01-24T16:31:37.820 回答