1.数据的平稳性
1.1.平稳性:
1.平稳性是要求经由样本时间序列所得到的拟合曲线在未来一段时间内仍能顺着现有的形态“惯性”地延续下去。
2.平稳性要求序列的均值和方差不发生明显的变化
1.2.严平稳和弱平稳
1 严平稳:严平稳表示的分布不随时间的改变而改变。
如:白噪声(正态),无论怎么取,都是期望为0,方差为1。
- 弱平稳:期望与相关系数(依赖性)不变。未来某时刻的t的值Xt就要依赖于它的过去信息,所以需要依赖性。
1.3. 差分法:时间序列在t与t-1时刻的差值。
在一阶差分的结果上再做一阶差分那就是二阶差分。
数据波动特别大的时候,使用差分法,使得数据形态相对稳定。例如股票日浮动波动很大,但是五日均线就平缓一些,十日比五日更平缓,如果看年线就几乎没有什么波动。
2. ARIMA
2.1.自回归模型(AR)
2.1.1描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测。
2.1.2自回归模型必须满足平稳性的要求。
P阶的意思是当前值和前面P个值相关。
2.1.4 yt是当前值, μ是常数项(类似线性回归中的b),P是阶数,γi是自相关系数,εt是误差。γi就是我们需要求的参数(类似线性回归中的w)。
2.2.自回归模型(AR)的限制
2.2.1 自回归模型是用自身的数据来进行预测。
2.2.2 必须具有平稳性。
2.2.3 必须基友自相关性,如果自相关系数小于(φi)0.5,则不宜采用。
2.2.4 自回归只适用于预测与自杀前期相关的现象。
2.3. 移动平均模型(MA)
2.3.1. 移动平均模型关注的是自回归模型中的误差项的累加
2.3.3. 移动平均法能有效地消除预测中的随机波动。
2.4. 自回归移动平均模型(ARMA)
2.4.1 自回归与移动平均的结合
2.4.2 公式:
2.4.3. ARIMA(p,d,q)模型全称为差分自回归移动平均模型(Autoregressive Integrated Moving Average Model),在python统计学包statsmodels中。参数p,d,q,p和d为自回归项和移动平均项数,d代表差分数,例如指定d=1 就是一阶差分。
2.4.4. AR是自回归,p为自回归项;MA为移动平均,q为移动平均项数,d为时间序列成为平稳是所做的差分次数。
2.4.5. 原理:将非平稳时间序列转化为平稳时间序列然将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。例如p = 2 就代表自回归滞后两阶。
3. 建模流程和调参
3.1.自相关系数ACF(autocorrelation function)
3.1.1 有序的随机变量序列与其自身相比较。自相关函数反映了同一序列再不同时序的取值之间的相关性。
3.1.3 Pk的取值范围为[-1,1]
3.2. 偏自相关函数(PACF)(partial autocorrelation function)
3.2.1 对于一个平稳AR(p)模型,求出滞后k自相关系数p(k)时
实际上得到并不是x(t)与x(t-k)之间单纯的相关关系。
3.2.2 x(t)同时还会受到中间k-1个随机变量x(t-1)、x(t-2)、……、x(t-k+1)的影响,而这k-1个随机变量又都和x(t-k)具有相关关系,所以自相关系数p(k)里实际掺杂了其他变量对x(t)与x(t-k)的影响。
3.2.3 剔除了中间k-1个随机变量x(t-1)、x(t-2)、……、x(t-k+1)的干扰之后x(t-k)对x(t)影响的相关程度。
3.2.4 ACF还包含了其他变量的影响,而偏自相关系数PACF是严格这两个变量之间的相关性。
3.3 ARIMA(p,d,q)参数确定
3.3.1 图表
3.3.2 截尾:落在置信区间内(95%的点都符合该规则)
3.3.3 ARIMA(p,d,q)阶数确定
AR(p)看PACF,p阶后截尾,意思是PACF图中找到一阶,后面的部分的点都落在置信区间(蓝色部分)上,少部分点不在可以忽略。此图中p可以取1。
MA(q)看ACF,q阶后截尾,意思是ACF图中找到一阶,后面的部分的点都落在置信区间(蓝色部分)上,少部分点不在可以忽略。此图中q可以取7。
3.4 ARIMA 建模流程:
- 将序列平稳(差分法确定d)
- p和q阶数确定:ACF与PACF
- ARIMA(p,d,q)
3.5. 模型选择指标AIC与BIC: 选择更简单的模型(AIC与BIC都是越低越好)
- AIC:赤池信息准则(AkaikeInformation Criterion,AIC)
𝐴𝐼𝐶=2𝑘−2ln(𝐿)(在保证模型精度的同时,尽量让k更小,这样模型更简单) - BIC:贝叶斯信息准则(Bayesian Information Criterion,BIC)
𝐵𝐼𝐶=𝑘𝑙𝑛𝑛−2ln(𝐿) - k为模型参数个数,n为样本数量,L为似然函数
3.6. 模型残差检验:
- ARIMA模型的残差是否是平均值为0且方差为常数的正态分布
-
QQ图:线性即正态分布
用plot_diagnostics()函数得到诊断图
4. 例子
Reference:
https://www.analyticsvidhya.com/blog/2016/02/time-series-forecasting-codes-python/
https://blog.csdn.net/goldxwang/article/details/73351155
https://github.com/aarshayj/Analytics_Vidhya/tree/master/Articles
网友评论