我正在尝试用python创建一个ARMA-GARCH模型,并且使用了arch包。
但是在arch软件包中,我找不到ARMA均值模型。
我尝试使用ARX均值模型,并让lags = [1,1],但摘要看起来并不像ARMA模型。
该软件包是否包括ARMA平均模型?
我从 Jason Brownlee 博士那里学到了这项技术,他是 18 多本与应用机器学习、数学和统计学相关的书籍的作者:
\n为了给予适当的认可,我引用了我通过本材料获得的学习来源:
\n引用参考书:
\n使用 Python 进行时间序列预测 \xc2\xa9 简介 版权所有 2020 Jason Brownlee。版权所有。版本:v1.10
\nJason Brownlee 博士,精通机器学习
\n\n感谢杰森花了无数的时间,毫无疑问,头痛和眼睛疲劳。您教会了我机器学习可以很有趣!
\nPython 中的 ARCH 和 GARCH 模型
\n# create a simple white noise with increasing variance\nfrom random import gauss\nfrom random import seed\nfrom matplotlib import pyplot\n\n# seed pseudorandom number generator\nseed(1)\n\n# create dataset\ndata = [gauss(0, i*0.01) for i in range(0,100)]\n\n# plot\npyplot.plot(data)\npyplot.show()\nRun Code Online (Sandbox Code Playgroud)\n\n# create dataset\ndata = [gauss(0, i*0.01) for i in range(1,100+1)]\n\n# check correlations of squared observations\nfrom random import gauss\nfrom random import seed\nfrom matplotlib import pyplot\nfrom statsmodels.graphics.tsaplots import plot_acf\n\n# seed pseudorandom number generator\nseed(1)\n\n# create dataset\ndata = [gauss(0, i*0.01) for i in range(0,100)]\n\n# square the dataset\nsquared_data = [x**2 for x in data]\n\n# create acf plot\nplot_acf(np.array(squared_data))\npyplot.show()\nRun Code Online (Sandbox Code Playgroud)\n\n# split into train/test\nn_test = 10\ntrain, test = data[:-n_test], data[-n_test:]\n\n# example of ARCH model\nfrom random import gauss\nfrom random import seed\nfrom matplotlib import pyplot\nfrom arch import arch_model\n\n# seed pseudorandom number generator\nseed(1)\n\n# create dataset\ndata = [gauss(0, i*0.01) for i in range(0,100)]\n\n# split into train/test\nn_test = 10\ntrain, test = data[:-n_test], data[-n_test:]\n\n# define model\nmodel = arch_model(train, mean=\'Zero\', vol=\'ARCH\', p=15)\n\n# fit model\nmodel_fit = model.fit()\n\n# forecast the test set\nyhat = model_fit.forecast(horizon=n_test)\n\n# plot the actual variance\nvar = [i*0.01 for i in range(0,100)]\npyplot.plot(var[-n_test:])\n\n# plot forecast variance\npyplot.plot(yhat.variance.values[-1, :])\npyplot.show()\nRun Code Online (Sandbox Code Playgroud)\n\n\n# example of ARCH model\n# seed pseudorandom number generator\nseed(1)\n\n# create dataset\ndata = [gauss(0, i*0.01) for i in range(0,100)]\n\n# split into train/test\nn_test = 10\ntrain, test = data[:-n_test], data[-n_test:]\n\n# define model\nmodel = arch_model(train, mean=\'Zero\', vol=\'GARCH\', p=15, q=15)\n\n# fit model\nmodel_fit = model.fit()\n\n# forecast the test set\nyhat = model_fit.forecast(horizon=n_test)\n\n# plot the actual variance\nvar = [i*0.01 for i in range(0,100)]\npyplot.plot(var[-n_test:])\n\n# plot forecast variance\npyplot.plot(yhat.variance.values[-1, :])\npyplot.show()\n\n# define model\nmodel = arch_model(train, mean=\'Zero\', vol=\'GARCH\', p=15, q=15)\nRun Code Online (Sandbox Code Playgroud)\n\n并看到结果非常相似,但是迭代次数略多于两倍......
\n\n引用参考书:
\n使用 Python 进行时间序列预测简介\n\xc2\xa9 版权所有 2020 Jason Brownlee。版权所有。版本:v1.10
\nJason Brownlee 博士,精通机器学习
\n\n| 归档时间: |
|
| 查看次数: |
2705 次 |
| 最近记录: |