概论
众所周知,时间序列是非常常见的一种序列,时间序列并不是去表示一种时间,而是以时间的方式去刻画一件事物的发展过程,我通过这个模型所需要分析的,就是通过过去的这一段数据去描绘未来的一段数据。
时间序列数据的来源
用时间进行刻画的数据非常的多,比如:
- 某个月每一天的销售业绩
- 某个患者一天内每个时间段的白细胞数量
- 某个程序员每天产生的BUG数量
- 等等等等
时间序列数据的性质
人们对于时间序列都有一个共同的目标,那就是探索未来,由已知推未知。所以我们可以得到这样一些结论
- 时间序列的每一个数据都会和前面的数据有某种关系,且数据之间不独立。
- 时间序列能够对未来有一定的探索,意味着这些数据有一定的回归性
时间序列的一般组合成分
- 长期趋势(T)
是指时间序列随时间的变化而逐渐增加或者减少的变化趋势。 - 季节变动(S)
是指时间序列在某个固定时间段内,呈现出的周期性规则变化 - 循环变动(C)
是指时间序列周期性摆动(与季节性不同) - 不规则变动(I)
即数据的随机扰动项
一般来说时间序列的组合方式分为两种:
- 加法模型
Y=T+S+C+I
- 乘法模型
Y=T* S* C* I
指数平滑
如果仅仅是拆分现有的时间序列,并不能对未来有比较好的预测,毕竟影响的情况比较多,所以我们要对这串数据进行一次指数平滑。
指数平滑只能用于纯粹的时间序列情况,不能用于含有独立变量时间序列的因果关系研究,因为如果存在有独立变量,在不去除独立变量的情况下,因为这些变量的扰动,很难去分析时间序列的因果关系。
指数平滑的原理
当利用过去的观测值的加权平均来预测未来的观测值(这个过程称为平滑),并且越靠近最新值的数据,权重越大。
比如:
Yt=αXt+(1-α)Yt-1 ,(0<α<1)
ARIMA模型
在现实生活中,可以用到指数平滑的案例非常的少,往往数据中都会有一些独立的变量,而且数据也比理想的要复杂很多,这个时候就需要用到ARIMA模型。
ARIMA模型可以拆分为
- AR 自回归模型(Autoregressive)
Xt=φ1Xt-1+…+φpXt-p+αt
- MA 移动平均模型(Moving Average)
Xt = αt-θ1αt-1-…-θqαt-q
- ARMA(p,q)
Xt=φ1Xt-1+…+φpXt-p+αt-θ1αt-1-…-θqαt-q
- ARIMA(p,d,q)
做ARMA模型前额外做d次差分