Python 我的预测似乎不承认我的外部回归

Python 我的预测似乎不承认我的外部回归,python,r,time-series,forecasting,quantitative-finance,Python,R,Time Series,Forecasting,Quantitative Finance,我是R方面的新手,使用带有外部回归的rugarch软件包 一切似乎都配合得很好,但我很难预测。 请参见下面的配件和预测代码 为了简单起见,模型中没有ARMA和常数均值。 因此,通常我希望我的预测(平均模型)只取决于外部回归及其负荷 模型规格 spec=ugarchspec( 方差.model=list(garchOrder=c(1,1)) 均值.模型=列表(armaOrder=c(0,0),include.mean=FALSE,external.regressors=pca_因子[-nrow(d

我是R方面的新手,使用带有外部回归的rugarch软件包 一切似乎都配合得很好,但我很难预测。 请参见下面的配件和预测代码 为了简单起见,模型中没有ARMA和常数均值。 因此,通常我希望我的预测(平均模型)只取决于外部回归及其负荷

模型规格 spec=ugarchspec( 方差.model=list(garchOrder=c(1,1))

均值.模型=列表(armaOrder=c(0,0),include.mean=FALSE,external.regressors=pca_因子[-nrow(db_sel),]), distribution.model=“std”)

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

拟合参数 ---------------------------------

条件方差动力学 GARCH模型:sGARCH(1,1) 平均模型:ARFIMA(0,0,0) 分布:性病

最佳参数 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 欧米茄0.0000000.000001 0.0000001.00000 alpha1 0.000046 0.001816 0.025302 0.97981 beta1 0.998771 0.002060484.876499 0.00000 形状21.454153 31.537211 0.680281 0.49633

稳健标准误差: 估计标准误差t值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 欧米茄0.0000000.000006 0.0000001.00000 alpha1 0.000046 0.000666 0.068985 0.94500 beta1 0.998771 0.001158 862.159146 0.00000 形状21.454153 55.198058 0.388676 0.69752

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

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

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

0滚动预测[T0=2012-11-02]: 系列西格玛 T+10 0.007263

我想,这个external.forecast=列表(-6,-2.3,3.2)没有正常工作

有人知道这样做的正确方法吗


谢谢

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

因此,需要重置等级库对象的边界以允许负值。请记住,这不仅是最终系数的界限,而且是求解例程中任意点上系数值的界限。因此,即使在求解例程结束时,您的系数可能为正值,您仍然需要为解算器提供操作自由

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

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

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

因此,需要重置等级库对象的边界以允许负值。请记住,这不仅是最终系数的界限,而且是求解例程中任意点上系数值的界限。因此,即使在求解例程结束时,您的系数可能为正值,您仍然需要为解算器提供操作自由

rugarch::setbounds(model.spec,list("vxreg1" = c(-2,2)))
这将允许外部回归器数据中第一列的系数(
vxreg1
)在例程中的任何点上取-2到2的值

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