很高兴上篇文章能受到大家的认可,本人想从本文章开始利用一些统计学模型和机器学习、深度学习的方法(主要在R语言中)做一些金融时间序列的分析和预测,希望能对大家有所帮助,本文如有不妥之处还请各位多多指正。
本文不构成任何投资建议,作者不对因本文方法及结论带来及连带的投资损失负任何形式的责任。
投资有风险,入市须谨慎!
首先,我选择了ARIMA模型(差分整合移动平均自回归模型)作为第一篇文章所采用的模型。作为一种经典模型,却始终经久不衰,仍然在大量的时间序列预测的实际案例中被广泛使用。(ps:而且训练时间短,啪,很快啊,渣机福音)
我将尽量简单对其原理进行介绍,如果觉得用就完事了,请跳到后面的步骤看实际演示。
理论部分
1. ARIMA 模型简介
ARIMA 模型全称 差分整合移动平均自回归模型 (Autoregressive Integrated Moving Average model)实际上由3部分组成:
- AR 部分:自回归模型(Autoregressive Model)
和统计学其他回归模型一样,其认为在t时刻的统计值与t-k时刻至t-1时刻的统计值有关,其表达式为:
其中AR模型的阶数用字母p表示,AR(p)。
举个栗子 ,我们来看看一个简单一阶AR(1)方程:
注意!我们预测的收盘价应该为
因为
假设我们通过对我们拥有的股价时间序列进行建模得到了:
- MA部分:移动平均模型(Moving Average Model)
不仅是过去的统计值(在我们的栗子里面就是每日的收盘价)可以影响今天的统计值,我们还可以大胆的假设过去时期的白噪声(随机变化量)
其中MA模型的阶数用字母q表示,MA(q)。
为加强模型的预测能力,我们将AR模型和MA模型混合起来使用,形成ARMA模型[2],如以下表达式: