时间序列
- 一、时间序列是什么?
- 二、时间序列分类
- 1.白噪声序列
- 2.平稳非白噪声序列
- 3.非平稳序列
- 三. 时间序列主要模型
- 1. ARIMA
- 如何挑选模型参数:
- Example and application:
- 总结
一、时间序列是什么?
时间序列是指某种现象某一指标在不同时间上的各个数值,按照时间先后顺序排列而形成的序列。基于随机过程理论,用于动态数据处理。经典的统计分析都嘉定数据序列具有独立性,而时间序列分析则侧重研究数据序列的相互依赖关系。
二、时间序列分类
1.白噪声序列
纯随机序列,没有预测价值。
2.平稳非白噪声序列
均值/方差都是常数:AR MA ARMA
3.非平稳序列
差分变换,转化为平稳序列进行拟合 —>ARIMA
三. 时间序列主要模型
1. ARIMA
平稳性:要求样本时间序列所得的拟合曲线能够按照现有的形态“惯性”延续下去。
要求序列的均值和方差不发生明显变化。
严平稳:数据的分布不随时间的改变而改变。Eg: 白噪声(正态),期望为0,方差为1.
弱平稳:期望与相关系数不变。(大多数分析数据都为弱平稳)
差分法:时间序列在t时刻和t-1时刻的差值
data['diff1'] = data['igmb'].diff(1) -----一阶差分plt.figure(figsize=(15,7))
plt.subplot(1,2,1)
data.groupby('Date')['igmb'].sum().plot(fontsize=15)
plt.subplot(1,2,2)
data.groupby('Date')['diff1'].sum().plot(fontsize=15)
AR(自回归模型): 当前值和历史值之间的关系,用自身的历史数据对自身进行预测。
前提条件:
1/ 数据要具有平稳性
2/数据自相关,且相关系数>0.5
3/只适用于与自身前期相关的现象
i是指当前值与前i个时间段值相关。
MA(移动平均模型):关注自回归模型中误差项的累积。消除自回归模型中误差项的波动。
ARIMA(Autoregressive Integrated Moving Average Model):
自定义p/q,求解γi和θi。
自相关函数(autocorrelation function):同一序列在不同时序的取值之间的相关性。
PACF(偏自相关函数partial autocorrelation function):剔除相关系数p(k)中包含的其他阶变量对x(t)和x(t-k)之间关系的影响,只看x(t)和x(t-k)之间的相关性。
如何挑选模型参数:
ARIMA(Autoregressive Integrated Moving Average Model):
自定义p/q,求解γi和θi。
ACF图确定q
PACF图确定p
多种p/q组合时,绘制AIC/BIC图
AIC: Akaike Information Critierion
AIC = 2k - 2ln(L)
BIC: Bayesian Information Critierian
BIC = kln(n) - 2ln(L)
k为模型参数个数,n为样本数量,ln(L)为似然函数。
Example and application:
ACF检验数据稳定性:默认去除周期性波动(余弦波动),趋势(线性上升)等。
ARIMA对数据稳定性的要求基于数据均值稳定性。
截尾: 自相关系数在x阶之前远大于2倍标准差范围,x阶之后均落在2倍标准差之内,且衰减为极小值的过程非常突然。(e.g: x阶突然为零,则p/q为x-1,x阶起均在2倍标准差之内,则p/q为x)
拖尾自相关系数不会直接衰减至零,而是呈指数衰减或余弦波动。
acf阶数变化趋势可用于判断数据周期性(比如每四周可观察到阶数柱明显升高)。
时间序列模型预测的准确时长一般较短。
QQ-plot在实践中大多数仅用于判断数据正态性。
ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根 (此时自回归为伪回归,等同于随机漫步)。
ADF检验:原假设是存在单位根,所以需要比较
1、adf值和1%,5%,10%的临界值,判断是否显著 (实践中若小于1%的临界值,则非常显著)
2、p value是否趋近于零,判断是否显著