将Garch和神经网络与时间序列进行比较

时间:2018-03-23 04:07:50

标签: r neural-network time-series finance autoregressive-models

我想比较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或神经网络。关于如何进行的任何建议?

1 个答案:

答案 0 :(得分: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可能类似于formula("currency ~ indVar1 + indVar2 +...),training_data与您正在训练GARCH模型的数据相同,隐藏的是表示神经中每个隐藏层大小的向量网络(取决于你想要的结构,问题的性质等)

您应该做的是在相同的测试/验证数据(与训练数据分开且不同)上运行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和其他拟合优度特征。