我想比较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或神经网络。关于如何进行的任何建议?
答案 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和其他拟合优度特征。