时间预测模型

美赛的一种预测模型

基于时间序列模型对黄金和比特币的预测

黄金和比特币这一类的产品,一般来说,是自身会随着时间发生变化的产品,而时间序列的预测,主要适用于自身的发展趋势会随着自己的情况发展变化,于是,我们这个时候可以使用时间预测模型对该种情况进行预测,

这个时候我们可以着手判断产品随着时间变化的自我相关问题,根据查阅各样文献,可以得到,最常用的方法还是ARMA的方式。,这种方法比较适用于小规模单变量的预测,如股票的走势。

AR模型

AR模型是一种自回归模型,简称它表述的是随机变量与前P期的多元线性回归。说明了随机变量\(x_{t}\)主要受前\(p\)期序列的影响。我们可以通过这种方式。将黄金和比特币的前几期作为自变量。然后将该天的黄金和比特币的售价作为因变量。通过AR模型。我们可以计算出前\(p\)期的\(x_t\)之间的相关性。如果\(x_t\)主要受过去P阶序列的影响,那么相关系数corre将会更接近一。这个时候我们就认为。当天的售价受前P期的影响。

MA模型

​ MA模型主要研究的是\(x_t\)的取值与前Q期的随机扰动有关,认为是\(x_t\)主要受过去Q期的干扰项的影响,所以对于MA模型

ARMA模型(Autoregressive moving average model)

ARMA 模型,主要是结合AR模型自回归问题,也结合MA模型的平行移动的问题,一方面体现了时间的延续性,另一方面,又有自身变动的规律,假设影响因素为\(x_1,x_2,x_3....,x_k\),由自回归分析可得 \[ Y_{t}=\beta_{1} x_{1}+\beta_{2} x_{2}+\cdots+\beta_{p} x_{p}+Z \] 其中Y是预测对象的观测值,\(Z\)为误差项 \[ Y_{t}=\beta_{1} Y_{t-1}+\beta_{2} Y_{t-2}+\cdots+\beta_{p} Y_{t-p}+Z_{t} \] 误差的表达方式为 \[ Z_{t}=\epsilon_{t}+\alpha_{1} \epsilon_{t-1}+\alpha_{2} \epsilon_{t-2}+\cdots+\alpha_{q} \epsilon_{t-q} \] 我们最终获得ARMA模型的表达式是 \[ Y_{t}=\beta_{0}+\beta_{1} Y_{t-1}+\beta_{2} Y_{t-2}+\cdots+\beta_{p} Y_{t-p}+\epsilon_{t}+\alpha_{1} \epsilon_{t-1}+\alpha_{2} \epsilon_{t-2}+\cdots+\alpha_{q} \epsilon_{t-q} \]

黄金股票预测

要想建立ARMA模型,首先,需要判断已有数据是否遵循时间序列数据的特点,第一步,判断数据是否具有稳定,而判断的标准,其一、要求经由样本时间序列所得到的拟合曲线在未来的一段期间内仍能顺着现有的形态“惯性″地延续下去,其二、平稳性要求序列的均值和方差不发生明显变化,只有满足这两个条件,这个数据才能被认为可以使用时间序列模型进行预测。

ARIMA

当原来的数据不具有明显的平衡性的时候,我们可以利用原数据的差分运算之后结果的稳定,利用研究差分运算之后数据来进行构建时间序列的模型,即ARIMA,它是ARMA的扩展,其模型可以表示为 \[ \left(1-\sum_{i=1}^{p} \phi_{i} L^{i}\right)(1-L)^{d} X_{t}=\left(1+\sum_{i=1}^{q} \theta_{i} L^{i}\right) \varepsilon_{t} \] 其中\(d \in Z , d>0\),记作ARMA(P,D,Q)

在确定使用哪一种方式之前,我们做出了原数据,一阶差分,二阶差分的图像,如图所示(其中为比特币的处理图像)

各阶差分图

可以明显看出,一阶差分的稳定性和二阶差分的稳定要远远大于原始数据的稳定性,所以,这时我们可以选择一阶差分或者是二阶差分,遵循所给的最低标准,我们可以将阶数设置为1,即\(d_{diff}=1\),即\(d_{diff} \neq 0\)

接下来,利用自相关模型MA来研究MA模型受前q期相关的参数q,通过Python的 statsmodels.tsa.stattools 研究一阶差分的自相关阶数和偏相关阶数,如图

download (1)

图中淡蓝色的阴影区域,表示阶数的置信区间,通过观察,对于自相关而言q=1,2,3,4,5都有可能,p=1,2,3,4也都有可能,显然,仅通过图像观察并不是十分的直观,于是,我们来计算对于不同的q和p的情况下,计算模型的相关系数

download (2)

可以看出当Lag=3的时候,相关系数\(corr\)最大,结合上图这是我们断定\(q\)=3,\(p\)=2即构建ARMA模型的三个参数 \[ (P,D,Q):(2,1,3) \] 使用Python的sm库中的ARIMA来预测模型,可以得到模型,并且选用其中的七天作为训练集,然后对第八天、九天、十天做出预测

预测图

最后,对模型进行残差分析,可以得到残差图,如图

download (3)

可以看出,我们研究的模型线性关系较好,说明模型预测具有较好的准确性.