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


    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

     

  • 相关阅读:
    -mysql-锁2
    -mysql-锁机制分为表级锁和行级锁
    JDBC

    JDBC接口介绍之Statement
    JDBC
    -Java-泛型
    JDBC的介绍和数据库的连接
    2014年9月1日 总结
    MediaRecorder test
  • 原文地址:https://www.cnblogs.com/zichun-zeng/p/9409751.html
Copyright © 2020-2023  润新知