1

我想比较 garch 如何建模时间序列和神经网络。我有我的 garch 模型:

    garch<-ugarchspec(variance.model=list(garchOrder=c(1,1)),         
    mean.model=list(armaOrder= c(0,0), include.mean=FALSE),            
    distribution.model= "std")
    garch_fit<-ugarchfit(spec=garch,data=currency)

    print(garch_fit)

所以我有我的数据,它是一种转换成美元的外币,我将原始价格调整为所有价格的平均值。

我项目的下一步是将我的货币数据拟合到神经网络,然后比较哪个模型效果更好——garch 或神经网络。关于如何进行的任何建议?

4

1 回答 1

0

为了将数据拟合到 R 中的神经网络,有几个专门的包可供选择:nnet、neuralnet、deepnet(专门研究 DNN)、h2o、mxnet。如果您愿意,您也可以随时在 R 中使用 TensorFlow 或 Keras 来开发非常特定类型的神经网络。

过去我使用过 nnet、neuralnet 和 Keras。对于快速项目和快速原型library(neuralnet)制作,非常适合初学者。您可以非常快速地生成、训练和利用您设计的神经网络(在某些约束内)。举个例子:

nn_model <- neuralnet(formula = my_form, data = training_data, hidden = c(2, 3))

my_form可能是这样的,training_data 是你formula("currency ~ indVar1 + indVar2 +...)训练 GARCH 模型的相同数据,hidden 是一个向量,代表你的神经网络中每个隐藏层的大小(取决于你想要什么结构,问题的性质, ETC。)

然后你应该做的是在相同的测试/验证数据(与你的训练数据分开和不同)上运行你的 GARCH 模型和神经网络,并通过准确度精确度召回率等指标评估它们的性能。

您可以使用以下方法在测试数据上运行生成的模型:

garch_out <- ugarchforecast(garch_fit, data = test_data[, -1], n.ahead = 10)
nn_out <- compute(x = nn_model, covariate = test_data[, -1])

test_data[,1]并在离散或连续的基础上评估它们,尽管通过回归,您可能希望通过残差分析等正常时间序列分析工具的镜头观察每个模型的输出与预期值之间的相似性,R^ 2、调整R^2等拟合优度特征。

于 2018-03-23T04:43:58.777 回答