时间序列分析算法学习笔记

1 . Arima时序分析模型

1.1 基础知识:

https://blog.csdn.net/huangtiao2509/article/details/78251101

1.2 Arima模型原理:

ARIMA模型是时间序列分析中应用最广泛的模型之一,ARIMA(p,d,q)由三个部分组成

- AR(p):AR是autoregressive的缩写,表示自回归模型。含义是当前时间点的值等于过去若干个时间点的回归——因为不依赖与别的解释变量,只依赖于自己过去的历史值,故称为自回归;如果依赖过去最近的p个历史值,称阶数为p,记为AR(p)模型。 

  

- I(d):I是integrated的缩写,含义是模型对时间序列进行差分。因为时间序列分析要求平稳性,不平稳的序列需要通过一定手段转化为平稳序列,一般采用的方法就是差分,d表示差分的阶数。 

如果d=0:

如果d=1:

如果d=2:

以此类推。

- MA(q):移动平均模型,和上面的移动平均法不同,这里本质上还是回归,含义是当前时间点的值等于过去若干个时间点的预测误差的回归;预测误差=模型预测值-真实值;如果序列依赖过去最近的q个历史预测误差值,称阶数为q,即为MA(q)模型。 

    

 1.3 模型衡量标准:

AIC和BIC,以及Inlkhd都是越接近0表示模型越好

https://zhuanlan.zhihu.com/p/22248464

 2. 指数平滑法Holt-winters

总的来说,holt-winters将时间序列信号拆解为三个分量:

(1)平稳随机信号分量:

 (2)趋势信号分量:

(3)周期性信号分量:

 

有三个参数:

其中 α是数据平滑因子, 0 < α < 1;β是趋势平滑因子,0 < β < 1; γ是季节改变平滑因子0 < γ < 1

对于三次指数平滑法,我们必须初始化一个完整的”季节“的值。至于如何选择参数αα,ββ,γγ,一个比较笨拙但可行的方法是反复试验,定义一个误差,比如平均绝对误差(Mean Absolute Error,MAE)或平均平方误差(Mean Squared Error,MSE),设定几个参数的范围,然后找到范围内误差最小的那组参数值。

具体代码实现:

https://blog.csdn.net/u010665216/article/details/78051192?locationNum=11&fps=1

小结:

  ARIMA和Holter-winters是从不同的角度去分解时间序列信号的算法,两种方法各有它考虑信号的角度:holt-winters更多考虑的是如何做“平滑”;ARIMA则主要是基于“回归”的思想;在实际的时间序列分析问题中,面对更复杂的场景时,可能需要加入考虑其他的特征或者加入非线性,都可以从这些经典算法得到启发来不断改进和优化。

  例如使用ensemble的思想将不同的算法得到的结果作为特征输入到新的模型中,又或者将某个算法中的平滑部分使用其他更巧妙的平滑方式取代,还可以借助神经网络来生成非线性特征,使得模型可以学习到非线性;另外,所有的回归算法也都可以用来解决预测问题。

   回归预测模型的评估方法见先前的博客:https://www.cnblogs.com/zichun-zeng/p/8097455.html

  时间信号常考虑的组成成分:(1)趋势;(2)季节性(或其他周期性);(3)噪音;(4)历史状态;(5)本身的时间序列特征;(6)其他。

 其他应用实例:

https://www.jianshu.com/p/aaf8a3565a69

 

猜你喜欢

转载自www.cnblogs.com/zichun-zeng/p/9409751.html