目录
前言
最近项目需要对位移数据进行预测,尝试了比较流行的几种方法如:LSTM、ARMA等…。选来选去还是arma模型综合效果最好。写这篇文章的目的也是记录下arma的理论与解算过程。
模型选择
做时间序列的预测,拥有许多方法,从简单的说起,有线性回归法、灰色预测模型,arma方法,还有最近因机器学习而流行的神经网络以及各种变体方法如:rnn、lstm等。
在这些模型中,线性回归大致是从机理出发,以引起时间序列变化的因子作为自变量,以时间序列作为因变量,采用回归的方法拟合出因子与结果之间的一种函数映射关系,使用此种方法,需要较强的实际领域背景,且精度很大程度上依赖于选择的因子,然而有些因子难以获取,如位移预测,其因子有土壤含水、降雨等,并且位移与土壤质量等也有很大关系,有些参数难以获取,因而并未采用。
使用lstm做位移预测时,出现预测的值就是实际位移中前一秒的值这样的问题,如图:
看到有人说这是因为数据存在自相关性,进行差分运算可消除这样的问题,但是在我使用过程中,效果并不好,可能自己还未理解透吧!因而也并未采用此方法进行预测。
在经过测试后,arma综合效果最好,计算也较为简单,因而最终 采用了arma来做位移预测。
arma原理
模型表示
arma模型实际可分为三类,分别是AR、MA、ARMA。
AR模型(Auto-Regressive model)
r t = ϕ 0 + ϕ 1 r t − 1 + . . . + ϕ p r t − p + a t r_t=\phi_0+\phi_1r_{t-1}+...+\phi_pr_{t-p}+a_t rt=ϕ0+ϕ1rt−1+...+ϕprt−p+at
其中,p是自回归阶数, a t a_t at是白噪声序列, ϕ i \phi_i ϕi是ar系数,代表当前时刻的值可用前p个数据加权来表示,也即趋势蕴含在历史数据中。模型表示为为AR(p)。
MA模型(Moving Average model)
r t = a t + ∑ i = 1 q θ i a t − i r_t = a_t+\sum_{i=1}^{q}\theta_ia_{t-i} rt=at+i=1∑qθiat−i
其中,q是滑动回归阶数, a i a_i ai是白噪声序列, θ i \theta_i θi是ma系数,模型表示为MA(q)。
ARMA模型(Auto-Regressive and Moving Average model)
r t = ϕ 0 + ∑ i = 1 p ϕ i r t − i + ∑ i = 1 q θ i a t − i r_t=\phi_0+\sum_{i=1}^p\phi_ir_{t-i}+\sum_{i=1}^{q}\theta_ia_{t-i} rt=ϕ0+i=1∑pϕirt−i+i=1∑qθiat−i
参数定义如上,此模型可表示为ARMA(p,0,q)。
模型求解
在进行求解前,介绍一些求解中需要使用的参数。
自协方差:在统计学中,特定时间序列或者连续信号Xt的自协方差是信号与其经过时间平移的信号之间的协方差。也即信号 X t X_t Xt与其时间平移信号 X t − k X_{t-k} Xt−k的协方差
自相关系数:用时间序列 X t X_t Xt、 X t − k X_{t-k} Xt−k的协方差除以 X t X_t Xt的标准差和 X t − k X_{t-k} Xt−k的标准差的乘积,就得到相关系数
偏自相关系数: 时间序列在两个时间随机变量之间,排除了其间各个时间随机变量影响的相关系数
AR模型
对于AR模型的求解,在我所看到的文献中,存在两种方法。
最小二乘法
ε ^ = x j − ( α 1 ^ x j − 1 + α 2 ^ x j − 2 + ⋯ + α p ^ x j − p ) , p + 1 ≤ j ≤ n \hat{\varepsilon}=x_j-(\hat{\alpha_1}x_{j-1}+\hat{\alpha_2}x_{j-2}+\cdots+\hat{\alpha_p}x_{j-p}),p+1\leq j \leq n ε^=xj−(α1^xj−1+α2^xj−2+⋯+αp^xj−p),p+1≤j≤n
使用最小二乘法求使 ∑ ε ^ \sum \hat{\varepsilon} ∑ε^最小的 α i \alpha_i