首页 > 解决方案 > ugarchforecast 似乎无法识别我的外部回归器

问题描述

我是 R 的新手,并且使用带有外部回归器的 rugarch 包 一切似乎都适用于拟合步骤,但我在预测中苦苦挣扎。请参阅下面的拟合代码和预测,以使其变得简单,模型中没有 ARMA 和恒定均值。所以通常我希望我的预测(平均模型)仅取决于外部回归器及其负载

模型规格规格 = ugarchspec(variance.model=list(garchOrder=c(1,1)),

mean.model=list(armaOrder =c(0,0),include.mean=FALSE,external.regressors=pca_factor[-nrow(db_sel),]),distribution.model="std")

合身

def.fit=ugarchfit(spec = spec, data = rets_sel[,1],solver = 'hybrid')

拟合参数

     GARCH Model Fit        *

---------------------------------

条件方差动力学

GARCH 模型:sGARCH(1,1) 平均模型:ARFIMA(0,0,0) 分布:std

最佳参数

    Estimate  Std. Error    t value Pr(>|t|)

mxreg1 -0.000079 0.000068 -1.154394 0.24834 mxreg2 0.000205 0.000210 0.975847 0.32914 mxreg3 0.000504 0.000514 0.980258 0.32696 omega 0.000000 0.000001 0.000000 1.00000 alpha1 0.000046 0.001816 0.025302 0.97981 beta1 0.998771 0.002060 484.876499 0.00000 shape 21.454153 31.537211 0.680281 0.49633

稳健的标准错误:估计标准。Error t value Pr(>|t|) mxreg1 -0.000079 0.000067 -1.169832 0.24207 mxreg2 0.000205 0.000276 0.744341 0.45667 mxreg3 0.000504 0.000560 0.898923 0.36869 omega 0.000000 0.000006 0.000000 1.00000 alpha1 0.000046 0.000666 0.068985 0.94500 beta1 0.998771 0.001158 862.159146 0.00000 shape 21.454153 55.198058 0.388676 0.69752

但在这里我得到的平均模型预测值为 0

预报

ugarchforecast(def.fit, n.ahead = 1,external.forecasts =list(-6,-2.3,3.2))

------------------------------------ * GARCH 模型预测 * --------- --------------------------------------- 型号:sGARCH 地平线:1 滚动步数:0 样本外:0

0-roll 预测 [T0=2012-11-02]:Sigma 系列 T+1 0 0.007263

我认为,这个 external.forecasts =list(-6,-2.3,3.2) 不能正常工作?

有谁知道这样做的正确方法?

谢谢

标签: pythonrtime-seriesforecastingquantitative-finance

解决方案


我有一个类似的问题。默认情况下,ugarchfit 中的拟合算法具有非负约束这在估计 GARCH 模型的标准系数时是有意义的,但在使用外部回归器时则不然。

因此,您需要重置规范对象的边界以允许负值。请记住,这不仅是最终系数的界限,而且是求解例程期间任何点的系数值的界限。因此,即使您的系数在求解程序结束时可能为正,您仍然需要让求解器自由操作。

rugarch::setbounds(model.spec,list("vxreg1" = c(-2,2)))

这将允许外部回归数据 ( vxreg1) 中第一列的系数在例程中的任何时候取值从 -2 到 2。


推荐阅读