数学建模学习笔记(十)——时间序列模型

文章目录

    • 一、时间序列综述
    • 二、时间序列数据以及基本概念
    • 三、时间序列分解
    • 四、指数平滑模型
    • 五、一元时间序列分析的模型
    • 六、AR(p)模型
    • 七、MA(q)模型
    • 八、ARMA(p, q)模型
    • 九、模型选择:AIC 和 BIC 准则(选小准则)
    • 十、检验模型是否识别完全
    • 十一、ARIMA(p, d, q)模型
    • 十二、SARIMA模型
    • 十三、时间序列建模思路

一、时间序列综述

时间序列是指某种现象的指标按照时间顺序排列而成的数值序列。

本文主要介绍时间序列分析中常用的三种模型:季节分解、指数平滑方法以及 ARIMA 模型。

二、时间序列数据以及基本概念

  1. 时间序列的数据
    时间序列的数据类型主要是对同一对象在不同时间连续观察所得到的数据。例如:某个地方 24 小时内每隔一个小时的温度数据;二胎政策以来每年的人口数量……
  2. 时间序列的基本概念
    时间序列主要有两个组成要素构成:
    1. 时间要素
      年、季度、月份、周……
    2. 数值要素
      时间要素对应的数值数据……
  3. 时间序列根据时间和数值性质的不同,可以分为时期时间序列和时点时间序列。
    1. 时期时间序列
      顾名思义,时期时间序列的数据要素反应的就是在一定时期内的发展水平……(例如:上文所提到的温度数据就是在每隔一小时后的时间点上测得的数据)
    2. 时点时间序列
      同样,时点时间序列的数据要素反应的就是在一定时点上的瞬间水平……(例如:上文所提到的人口数据就是由一年这一时期中人口变化二测得的数据)

三、时间序列分解

时间序列的数值变化规律一般有以下四种:长期变动趋势、季节变动规律、周期变动规律、不规则变动。一个时间序列往往是以上四类变化形式的叠加。

数值变化规律字母表示意义
长期趋势T统计指标在相当长的一段时间内,收到长期趋势影响因素的影响,表现出的持续上升或者持续下降的趋势
季节趋势S由于季节的转变使得指标数值发生周期性变动(其周期一般以月、季、周为单位,不能以年为单位)
循环变动C循环变动的周期往往是若干年,其在曲线图上表现为波浪式的周期变动
不规则变动I由某些随机因素导致的数值变化,并且这些因素的作用不可预知且没有规律性

这四种变动与指标数值的关系可能是叠加关系,也可能是乘积关系。

  1. 叠加模型和成绩模型

    1. 如果四种变动之间是相互独立的关系,那么可以使用叠加模型:Y=T+S+C+IY = T + S + C + IY=T+S+C+I
    2. 如果四种变动之间存在相互影响关系,那么可以使用乘积模型:Y=T×S×C×IY = T \times S \times C \times IY=T×S×C×I

    注意:
    (1)使用时间序列分解的前提是具有年内的周期性(不包括以年份为周期的数据)
    (2)在具体的时间序列图中,如果随着时间的推移,序列的季节波动越来越大,此时应该采用乘积模型;反之,如果时间序列图的波动保持恒定,则应该采用叠加模型

  2. 下面来看一个例子
    进行时间序列分解的步骤主要有以下几步:
    处理缺失值 ⇒\Rightarrow 定义时间变量 ⇒\Rightarrow 做出时序图选择模型 ⇒\Rightarrow 进行时间序列分解

    在这个例子中,我们可以做出的时序图如下:在这里插入图片描述
    可以看出,第二季度的销量明显高于其他季度,因此数据表现出很强的季节性。同时,销量数据的季节波动变化不大,因此可以使用加法分解模型。

    在 SPSS 中对数据进行季节性分解可得到结果为:在这里插入图片描述
    从表格中可知:第一二季度的季节因子为正,第三四季度的季节因子为负,说明第一二季度的平均销量要高于第三四季度。并且第二季度的平均销量要高于全年平均水平 20.930 件;第四季度的平均销量要低于全年平均水平 19.727 件。

    有意思的是:采用加法模型时,季节因子的和为 0 ;而采用乘法模型时,季节因子的乘积为 1 ,同时,乘法模型的季节因子表示是全年平均销量的倍数。

四、指数平滑模型

  1. 简单(Simple)模型

    名称使用条件与之类似的ARIMA模型
    简单指数平滑法不含趋势和季节成分ARIMA(0, 1, 1)

    xtx_txtttt 时刻的观测数据,StS_tSt 为第 ttt 期的平滑值,且令 St=x^t+1S_t = \hat{x}_{t + 1}St=x^t+1,即第 t+1t + 1t+1 期的预测值,且满足:x^t+1=αxt+(1−α)xt^\hat{x}_{t + 1} = \alpha x_t + (1 - \alpha)\hat{x_t}x^t+1=αxt+(1α)xt^,因此可以证明:x^t+1=αxt+α(1−α)xt−1+α(1−α)2xt−2+⋯+α(1−α)t−1x1+(1−α)tl0\hat{x}_{t + 1} = \alpha x_t + \alpha(1 - \alpha)x_{t - 1} + \alpha(1 - \alpha)^2x_{t - 2} + \cdots + \alpha(1 - \alpha)^{t - 1}x_1 + (1 - \alpha)^tl_0x^t+1=αxt+α(1α)xt1+α(1α)2xt2++α(1α)t1x1+(1α)tl0,其中 l0=x^1l_0 = \hat{x}_1l0=x^1 视为初始值,α\alphaα 为平滑系数 (0≤α≤1)(0 \leq \alpha \leq 1)(0α1)

    还可以看出,越接近当期的数据,其权重越大,意味着影响也越大;反之,早期数据对当期影响也就越小。

    平滑指数 α\alphaα 一般是需要我们自己决定的。但是,SPSS 的专家建模器如果采用简单模型帮助我们建模会自动给出 α\alphaα 的值。

    简单(Simple)模型只能往后预测一期数据,原因是公式 x^t+1=αxt+(1−α)xt^\hat{x}_{t + 1} = \alpha x_t + (1 - \alpha)\hat{x_t}x^t+1=αxt+(1α)xt^ 中使用了本期的准确数据 xtx_txt ,后面的数据只是预测出来的,而不是准确的。

  2. 线性趋势模型(lineartrendlinear\ \ trendlinear  trend

    名称使用条件与之类似的 ARIMA 模型
    特线性趋势模型线性趋势、不含季节成分ARIMA(0, 2, 2)

    该方法包含一个预测方程和两个平滑方程:{lt=αxt+(1−α)(lt−1+bt−1)(水平平滑方程)bt=β(lt−lt−1)+(1−β)bt−1(趋势平滑方程)x^t+h=lt+hbt,h=1,2,⋯(预测方程)\left\{ \begin{aligned} &l_t = \alpha x_t + (1 - \alpha)(l_{t - 1} + b_{t - 1}) \text{(水平平滑方程)} \\ &b_t = \beta(l_t - l_{t - 1}) + (1 - \beta)b_{t - 1} \text{(趋势平滑方程)} \\ &\hat{x}_{t + h} = l_t + hb_t, h = 1, 2, \cdots \text{(预测方程)} \end{aligned} \right.lt=αxt+(1α)(lt1+bt1)(水平平滑方程)bt=β(ltlt1)+(1β)bt1(趋势平滑方程)x^t+h=lt+hbt,h=1,2,(预测方程)
    ttt:当前期
    hhh:预测超前期数,也称之为预测补偿
    xtx_txt:第 ttt 期的实际观测值
    ltl_tlt:时刻 ttt 的预估水平
    btb_tbt:时刻 ttt 的预测趋势
    α\alphaα:水平的平滑参数
    β\betaβ:趋势的平滑参数

  3. 阻尼趋势模型(DampedtrendDamped\ \ trendDamped  trend

    使用条件与之类似的 ARIMA 模型
    尼趋势模型线性趋势逐渐减弱且不含季节成分ARIMA(1, 1, 2)

    {lt=αxt+(1−α)(lt−1+ϕbt−1)(水平平滑方程)bt=β(lt−lt−1)+(1−β)ϕbt−1(趋势平滑方程)x^t+h=lt+(ϕ+ϕ2+⋯+ϕh)bt(预测方程)\left\{ \begin{aligned} &l_t = \alpha x_t + (1 - \alpha)(l_{t - 1} + \phi b_{t - 1}) \text{(水平平滑方程)} \\ &b_t = \beta(l_t - l_{t - 1}) + (1 - \beta)\phi b_{t - 1} \text{(趋势平滑方程)} \\ &\hat{x}_{t + h} = l_t + (\phi + \phi^2 + \cdots + \phi^h)b_t \text{(预测方程)} \end{aligned} \right.lt=αxt+(1α)(lt1+ϕbt1)(水平平滑方程)bt=β(ltlt1)+(1β)ϕbt1(趋势平滑方程)x^t+h=lt+(ϕ+ϕ2++ϕh)bt(预测方程) α\alphaα:水平的平滑参数
    β\betaβ:趋势的平滑参数
    ϕ\phiϕ:阻尼参数(0<ϕ≤10 < \phi \leq 10<ϕ1
    如果 ϕ=1\phi = 1ϕ=1,则阻尼趋势模型就是霍特线性趋势模型。

  4. 简单季节性

    简单季节性使用条件与之类似的 ARIMA 模型
    单季节性含有稳定的季节成分、不含趋势SARIMA(0, 1, 1) × (0, 1, 1)s_ss

    {lt=α(xt−st−m)+(1−α)lt−1(水平平滑方程)st=γ(xt−lt−1)+(1−γ)st−m(季节平滑方程)x^t+h=lt+st+h−m(k+1),k=[h−1m](预测方程)\left\{ \begin{aligned} &l_t = \alpha(x_t - s_{t - m}) + (1 - \alpha)l_{t - 1} \text{(水平平滑方程)} \\ &s_t = \gamma(x_t - l_{t - 1}) + (1 - \gamma)s_{t - m} \text{(季节平滑方程)} \\ &\hat{x}_{t + h} = l_t + s_{t + h - m(k + 1)}, k = [\frac{h - 1}{m}] \text{(预测方程)} \end{aligned} \right.lt=α(xtstm)+(1α)lt1(水平平滑方程)st=γ(xtlt1)+(1γ)stm(季节平滑方程)x^t+h=lt+st+hm(k+1),k=[mh1](预测方程) mmm:周期长度(月度数据取12,季度数据取4)
    α\alphaα:水平的平滑参数
    γ\gammaγ:季节的平滑参数
    hhh:预测超前期数
    x^t+h\hat{x}_{t + h}x^t+h:第 hhh 期的预测值

  5. 温特加法模型(Winter′sadditiveWinter's\ \ additiveWinters  additive

    使用条件与之类似的 ARIMA 模型
    特加法模型含有线性趋势和稳定的季节成分SARIMA(0, 1, 0) × (0, 1, 1)s_ss

    {lt=α(xt−st−m)+(1−α)(lt−1+bt−1)(水平平滑方程)bt=β(lt−lt−1)+(1−β)bt−1st=γ(xt−lt−1−bt−1)+(1−γ)st−m(季节平滑方程)x^t+h=lt+hbt+st+h−m(k+1),k=[h−1m](预测方程)\left\{ \begin{aligned} &l_t = \alpha(x_t - s_{t - m}) + (1 - \alpha)(l_{t - 1} + b_{t - 1}) \text{(水平平滑方程)} \\ &b_t = \beta(l_t - l_{t - 1}) + (1 - \beta)b_{t - 1} \\ &s_t = \gamma(x_t - l_{t - 1} - b_{t - 1}) + (1 - \gamma)s_{t - m} \text{(季节平滑方程)} \\ &\hat{x}_{t + h} = l_t + hb_t + s_{t + h - m(k + 1)}, k = [\frac{h - 1}{m}] \text{(预测方程)} \end{aligned} \right.lt=α(xtstm)+(1α)(lt1+bt1)(水平平滑方程)bt=β(ltlt1)+(1β)bt1st=γ(xtlt1bt1)+(1γ)stm(季节平滑方程)x^t+h=lt+hbt+st+hm(k+1),k=[mh1](预测方程) mmm:周期长度(月度数据取12,季度数据取4)
    α\alphaα:水平的平滑参数
    β\betaβ:趋势的平滑参数
    γ\gammaγ:季节的平滑参数
    x^t+h\hat{x}_{t + h}x^t+h:第 hhh 期的预测值

  6. 温特乘法模型(Winter′smultiplicativeWinter's\ \ multiplicativeWinters  multiplicative

    使用条件与之类似的 ARIMA 模型
    特乘法模型含有线性趋势和不稳定的集结成分不存在

    {lt=αxtst−m+(1−α)(lt−1+bt1)(水平平滑方程)bt=β(lt−lt−1)+(1−β)bt−1(趋势平滑方程)st=γxtlt−1+bt+1+(1−γ)st−m(季节平滑方程)x^t+h=(lt+hbt)st+h−m(k+1),k=[h−1m](预测方程)\left\{ \begin{aligned} &l_t = \alpha \frac{x_t}{s_{t - m}} + (1 - \alpha)(l_{t - 1} + b{t_1}) \text{(水平平滑方程)} \\ &b_t = \beta(l_t - l_{t - 1}) + (1 - \beta)b_{t - 1} \text{(趋势平滑方程)} \\ &s_t = \gamma \frac{x_t}{l_{t - 1} + b_{t + 1}} + (1 - \gamma)s_{t - m} \text{(季节平滑方程)} \\ &\hat{x}_{t + h} = (l_t + hb_t)s_{t + h - m(k + 1)}, k = [\frac{h - 1}{m}] \text{(预测方程)} \end{aligned} \right.lt=αstmxt+(1α)(lt1+bt1)(水平平滑方程)bt=β(ltlt1)+(1β)bt1(趋势平滑方程)st=γlt1+bt+1xt+(1γ)stm(季节平滑方程)x^t+h=(lt+hbt)st+hm(k+1),k=[mh1](预测方程) mmm:周期长度(月度数据取12,季度数据取4)
    α\alphaα:水平的平滑参数
    β\betaβ:趋势的平滑参数
    γ\gammaγ:季节的平滑参数
    x^t+h\hat{x}_{t + h}x^t+h:第 hhh 期的预测值

五、一元时间序列分析的模型

  1. 平稳时间序列(stationaryseriesstationary\ \ seriesstationary  series
    若时间序列 {xt}\{x_t\}{xt} 满足下列三个条件:
    (1)E(xt)=E(xt−s)=uE(x_t) = E(x_{t - s}) = uE(xt)=E(xts)=u(均值为固定常数)
    (2)Var(xt)=Var(xt−s)=σ2Var(x_t) = Var(x_{t - s}) = \sigma^2Var(xt)=Var(xts)=σ2(方差存在且为常数)
    (3)Cov(xt,xt−s)=γsCov(x_t, x_{t-s}) = \gamma_sCov(xt,xts)=γs(协方差只和间隔 sss 有关,与 ttt 无关)
    则称 {xt}\{x_t\}{xt} 为协方差平稳,又称为弱平稳。

    如果对于任意的 t1,t2,⋯,tkt_1, t_2, \cdots, t_kt1,t2,,tkhhh,多维随机变量 (xt1,xt2,⋯,xtk)(x_{t_1}, x_{t_2}, \cdots, x_{t_k})(xt1,xt2,,xtk)(xt1+h,xt2+h,⋯,xtk+h)(x_{t_1 + h}, x_{t_2 + h}, \cdots, x_{t_k} + h)(xt1+h,xt2+h,,xtk+h) 的联合分布相同,则称 {xt}\{x_t\}{xt} 为严格平稳。

    注:严格平稳的要求太高,因此一般所说的平稳都是弱平稳。

  2. 白噪声序列
    若时间序列 {xt}\{x_t\}{xt} 满足下列三个条件:
    (1)E(xt)=E(xt−s)=0E(x_t) = E(x_{t - s}) = 0E(xt)=E(xts)=0(均值为固定常数)
    (2)Var(xt)=Var(xt−s)=σ2Var(x_t) = Var(x_{t - s}) = \sigma^2Var(xt)=Var(xts)=σ2(方差存在且为常数)
    (3)Cov(xt,xt−s)=0(s≠0)Cov(x_t, x_{t-s}) = 0(s \neq 0)Cov(xt,xts)=0(s=0)(协方差只和间隔 sss 有关,与 ttt 无关)
    则称 {xt}\{x_t\}{xt} 为白噪声序列。显然,白噪声序列是平稳时间序列的一个特例。

  3. 差分方程
    将凑个时间序列变量表示为该变量的滞后项、时间和其他变量的函数,这样一个函数方程称为差分方程。例如:
    yt=α0+α1yt−1+α2yt−2+⋯+αpyt−p+εty_t = \alpha_0 + \alpha_1y_{t - 1} + \alpha_2y_{t - 2} + \cdots + \alpha_py_{t - p} + \varepsilon_tyt=α0+α1yt1+α2yt2++αpytp+εtε\varepsilonε为白噪声序列)

    1. 差分方程的齐次部分
      只包含该变量自身和它的滞后项的式子。
      例如:yt=α0+∑i=1pαiyt−i+εt+∑i=1qβεt−iy_t = \alpha_0 + \sum_{i = 1}^{p}\alpha_iy_{t - i} + \varepsilon_t + \sum_{i = 1}^{q}\beta \varepsilon_{t - i}yt=α0+i=1pαiyti+εt+i=1qβεti 齐次部分为:yt=∑i=1pαyt−iy_t = \sum_{i = 1}^{p}\alpha y_{t - i}yt=i=1pαyti
    2. 差分方程的特征方程
      齐次部分可以被转换为特征方程:令 yt=xty_t = x^tyt=xt 带入齐次方程花间即可。例如:齐次部分:yt=∑i=1pαyt−iy_t = \sum_{i = 1}^{p}\alpha y_{t - i}yt=i=1pαyti 那么特征方程为:xp=α1xp−1+α2+⋯+αpx^p = \alpha_1x^{p - 1} + \alpha_2 + \cdots + \alpha_pxp=α1xp1+α2++αp 特征方程是一个 ppp 阶多项式,对应可以求出 ppp 个解。
  4. 滞后算子
    用符号 LLL 表示滞后算子:Liyt=yt−iL^iy_t = y_{t - i}Liyt=yti,且由如下的性质:
    (1)LC=CLC = CLC=CCCC 为常数)
    (2)(Li+Lj)yt=yt−i+yt−j(L^i + L^j)y_t = y_{t - i} + y_{t - j}(Li+Lj)yt=yti+ytj
    (3)LiLjyt=yt−i−jL^iL^jy_t = y_{t - i - j}LiLjyt=ytij
    例如:yi=α0+∑i=1pαiyt−i+εt+∑i=1qβiεt−iy_i = \alpha_0 + \sum_{i = 1}^{p}\alpha_iy_{t - i} + \varepsilon_t + \sum_{i = 1}^{q}\beta_i\varepsilon_{t - i}yi=α0+i=1pαiyti+εt+i=1qβiεti 可以表示为:yt=α0+∑i=1pαiLiyt+εt+∑i=1qβiLiεty_t = \alpha_0 + \sum_{i = 1}^{p}\alpha_iL^iy_t + \varepsilon_t + \sum_{i = 1}^{q}\beta_iL^i\varepsilon_tyt=α0+i=1pαiLiyt+εt+i=1qβiLiεt

六、AR(p)模型

ppp 阶的自回归模型(AR§模型):
yt=α0+α1yt−1+α2yt−2+⋯+αpyt−p+εty_t = \alpha_0 + \alpha_1y_{t - 1} + \alpha_2y_{t - 2} + \cdots + \alpha_py_{t - p} + \varepsilon_tyt=α0+α1yt1+α2yt2++αpytp+εtε\varepsilonε 是方差为 σ2\sigma^2σ2 的白噪声序列
(自回归:将自己的 1 至 ppp 阶滞后项视为自变量来进行回归)

  1. 注意
    讨论的AR§模型一定是平稳的时间序列模型,原数据不平稳的话也要先转换为平稳的数据才能进行建模。

  2. AR§模型平稳的条件
    将 AR§ 模型的齐次部分转换为特征方程:xp=α1xp−1+α2xp−2+⋯+αpx^p = \alpha_1x_{p - 1} + \alpha_2x_{p - 2} + \cdots + \alpha_pxp=α1xp1+α2xp2++αp 特征方程是一个 ppp 阶多项式,因此可以求出 ppp 个解(可能有实根,也可能有虚根)

    那么模型的平稳可以这样确定:
    (1)如果这 ppp 个解的模长均小于1,则 {yt}\{y_t\}{yt} 平稳,即 AR§ 模型平稳;
    (2)如果这 ppp 个解中有 kkk 个解的模场等于1,则 {yt}\{y_t\}{yt}kkk 阶单位根过程(kkk 阶单位根过程可以经过 kkk 阶差分变为平稳的时间序列)
    (3)如果这 ppp 个根至少有一个的模长大于1,则 {yt}\{y_t\}{yt} 称为爆炸过程。

  3. 下面来看一个例子
    AR(3) 模型:yt=0.1+0.2yt−1+0.3yt−2+0.5yt−3+εty_t = 0.1 + 0.2y_{t - 1} + 0.3y_{t - 2} + 0.5y_{t - 3} + \varepsilon_tyt=0.1+0.2yt1+0.3yt2+0.5yt3+εt 齐次部分的特征方程为:x3=0.2x2+0.3x+0.5x^3 = 0.2x^2 + 0.3x + 0.5x3=0.2x2+0.3x+0.5 解得:x1=−4−34i10,x2=−4+34i10,x3=1x_1 = \frac{-4 - \sqrt{34}i}{10}, x_2 = \frac{-4 + \sqrt{34}i}{10}, x_3 = 1x1=10434i,x2=104+34i,x3=1
    求模长:∣x1∣=∣x2∣=16100+34100=0.7071<1|x_1| = |x_2| = \sqrt{\frac{16}{100} + \frac{34}{100}} = 0.7071 < 1x1=x2=10016+10034=0.7071<1

    所以 yty_tyt 为一阶单位根过程

    此时可以进行一阶差分变形:yt−yt−1=0.1−0.8(yt−1−yt−2)−0.5(yt−2−yt−3)+εty_t - y_{t - 1} = 0.1 - 0.8(y_{t - 1} - y_{t - 2}) - 0.5(y_{t - 2} - y_{t - 3}) + \varepsilon_tytyt1=0.10.8(yt1yt2)0.5(yt2yt3)+εt ⇒Δyt=0.1−0.8Δyt−1−0.5Δyt−2+εt\Rightarrow \Delta y_t = 0.1 - 0.8\Delta y_{t - 1} - 0.5 \Delta y_{t - 2} + \varepsilon_tΔyt=0.10.8Δyt10.5Δyt2+εt(转换成了一个 AR(2) 过程)
    此时齐次方程对应的特征方程:x2=−0.8x−0.5x^2 = -0.8x - 0.5x2=0.8x0.5 解得 x1=−4−34i10,x2=−4+34i10x_1 = \frac{-4 - \sqrt{34}i}{10}, x_2 = \frac{-4 + \sqrt{34}i}{10}x1=10434i,x2=104+34i

    对于 AR(p) 模型而言:yt=α0+α1yt−1+α2yt−2+⋯+αpyt−p+εty_t = \alpha_0 + \alpha_1y_{t - 1} + \alpha_2y_{t - 2} + \cdots + \alpha_py_{t - p} + \varepsilon_tyt=α0+α1yt1+α2yt2++αpytp+εt (1){yt}\{y_t\}{yt} 为单位根的充要条件:α1+α2+⋯+αp=1\alpha_1 + \alpha_2 + \cdots + \alpha_p = 1α1+α2++αp=1 (2){yt}\{y_t\}{yt} 平稳的充分条件:∣α1∣+∣α2∣+⋯+∣αp∣<1|\alpha_1| + |\alpha_2| + \cdots + |\alpha_p| < 1α1+α2++αp<1 (3){yt}\{y_t\}{yt} 平稳的必要条件:α1+α2+⋯+αp<1\alpha_1 + \alpha_2 + \cdots + \alpha_p < 1α1+α2++αp<1

七、MA(q)模型

qqq 阶移动平均模型(MA(q)模型):yt=εt+β1εt−1+β2εt−2+⋯+βqεt−qy_t = \varepsilon_t + \beta_1\varepsilon_{t - 1} + \beta_2\varepsilon_{t - 2} + \cdots + \beta_q\varepsilon_{t - q}yt=εt+β1εt1+β2εt2++βqεtq

  1. MA模型和AR模型之间的关系
    MA(1) 模型:yt=εt−β1εt−1y_t = \varepsilon_t - \beta_1\varepsilon_{t - 1}yt=εtβ1εt1 将上面的式子使用滞后算子的写法为:yt=(1−β1L)εt⇒11−β1Lyt=εty_t = (1 - \beta_1L)\varepsilon_t \Rightarrow \frac{1}{1 - \beta_1L}y_t = \varepsilon_tyt=(1β1L)εt1β1L1yt=εt又因为 (1−β1L)(1+β1L+β12L2+⋯)=(1−β1L+β12L2+⋯)−(β1L+β12L2+⋯)=1(1 - \beta_1L)(1 + \beta_1L + \beta_1^2L^2 + \cdots) = (1 - \beta_1L + \beta_1^2L^2 + \cdots) - (\beta_1L + \beta_1^2L^2 + \cdots) = 1(1β1L)(1+β1L+β12L2+)=(1β1L+β12L2+)(β1L+β12L2+)=1所以 11−β1L=1+β1L+β12L2+⋯(条件:∣β1∣<1)\frac{1}{1 - \beta_1L} = 1 + \beta_1L + \beta_1^2L^2 + \cdots(\text{条件:}|\beta_1| < 1)1β1L1=1+β1L+β12L2+(条件:β1<1)

    11−β1Lyt=εt⇒(1+β1L+β12L2+⋯)yt=εt\frac{1}{1 - \beta_1L}y_t = \varepsilon_t \Rightarrow (1 + \beta_1L + \beta_1^2L^2 + \cdots)y_t = \varepsilon_t1β1L1yt=εt(1+β1L+β12L2+)yt=εt

    所以 yt+β1yt−1+β12yt−2+⋯=εt⇒yt=εt−β1yt−1−β12yt−2+⋯y_t + \beta_1y_{t - 1} + \beta_1^2y_{t - 2} + \cdots = \varepsilon_t \Rightarrow y_t = \varepsilon_t - \beta_1y_{t - 1} - \beta_1^2y_{t - 2} + \cdotsyt+β1yt1+β12yt2+=εtyt=εtβ1yt1β12yt2+

    从上面的例子可以知道,可以将 1 阶移动平均模型转换为无穷阶的自回归模型。之所以需要 MA(q) 模型,是因为在模型分析中我们需要参数尽可能地少,因此需要 MA(q) 模型来帮助我们简化。

  2. MA(q) 模型的平稳性
    只要 qqq 是常数,那么 MA(q) 模型一定是平稳的。

八、ARMA(p, q)模型

自回归移动平均模型就是设法将自回归过程 AR 和移动平均过程 MA 结合起来,共同模拟由时间序列的随机过程。

  1. ARMA(p, q) 模型 yt=α0+∑i=1pαiyt−i+εt+∑i=1qβiεt−iy_t = \alpha_0 + \sum_{i = 1}^{p}\alpha_iy_{t - i} + \varepsilon_t + \sum_{i = 1}^{q}\beta_i\varepsilon_{t - i}yt=α0+i=1pαiyti+εt+i=1qβiεti
  2. ARMA(p, q) 模型的平稳性
    由上述讨论可以知道,对于 MA(q) 模型而言,只要 qqq 大于0,那么 MA(q) 模型平稳。因此,ARMA(p, q) 模型的平稳性只与 AR§ 部分有关。
  3. 如何确定 p, q 的值
    简单的确定 p, q 的值,我们可以作出自相关系数(ACF)和偏自相关系数(PACF)图来确定。
    模型ACFPACF
    AR(p)逐渐衰减,即拖尾p 阶后截尾
    MA(q)q 阶后截尾逐渐衰减,即拖尾
    ARMA(p, q)逐渐衰减,即拖尾逐渐衰减,即拖尾
    例如:在这里插入图片描述
    由图一可得,序列 x 的自相关系数在第 1, 2 阶显著异于 0 ,超过 2 阶后均和 0 没有显著的差异;而其偏自相关系数在第 1, 2, 7, 9, 16 阶显著异于0,且表现出拖尾现象。因此可以得出序列 x 可以由 MA(2) 生成。

九、模型选择:AIC 和 BIC 准则(选小准则)

  1. 赤池信息准则:AIC=2(模型中参数的个数)−2ln⁡(模型的极大似然函数值)AIC = 2(\text{模型中参数的个数}) - 2\ln (\text{模型的极大似然函数值})AIC=2(模型中参数的个数)2ln(模型的极大似然函数值)

  2. 贝叶斯信息准则:BIC=ln⁡(T)(模型中参数的个数)−2ln⁡模型的极大似然函数值BIC = \ln(T)(\text{模型中参数的个数}) - 2\ln \text{模型的极大似然函数值}BIC=ln(T)(模型中参数的个数)2ln模型的极大似然函数值

    AIC 和 BIC 是喧嚣原则,我们要选择使得 AIC 或者 BIC 最小的模型。(由于 BIC 对于模型复杂程度的惩罚系数更大,因此通常根据 BIC 来确定模型)

十、检验模型是否识别完全

估计了时间序列模型后,我们需要对残差进行白噪声检验,如果残差是白噪声,则说明模型能够完全识别时间序列数据的规律。
H0=ρ1=ρ2=⋯=ρs=0,H1:ρi(i=1,2,⋯,s)中至少有一个不为0H_0 = \rho_1 = \rho_2 = \cdots = \rho_s = 0, H_1: \rho_i(i = 1, 2, \cdots, s)中至少有一个不为 0H0=ρ1=ρ2==ρs=0,H1:ρi(i=1,2,,s)0H0H_0H0 成立的条件下,统计量 Q=T(T+2)∑i=1srk2T−kχs−n2Q = T(T + 2)\sum_{i = 1}^{s}\frac{r_k^2}{T - k}~\chi_{s - n}^2Q=T(T+2)i=1sTkrk2 χsn2
软件可以计算出 ppp 值,ppp 值小于 0.05 则可以拒绝原假设,此时模型没有识别完全,需要进行修正。
(1)TTT 表示样本个数
(2)nnn 表示模型中的位置参数
(3)sss 根据样本量的大小一般可以取 8,16,24 等(SPSS取18)

十一、ARIMA(p, d, q)模型

对于可能是 ddd 阶单位根过程的时间序列,我们需要先对数据进行差分处理,将其转换为平稳的时间序列后再进行建模。

  1. ARIMA(p, d, q) 模型 yt′=α0+∑i=1pαiyt−i′+εt+∑i=1qβiεt−iy_t' = \alpha_0 + \sum_{i = 1}^{p}\alpha_iy_{t - i}' + \varepsilon_t + \sum_{i = 1}^{q}\beta_i\varepsilon_{t - i}yt=α0+i=1pαiyti+εt+i=1qβiεtiyt′=Δdyt=(1−L)dyty_t' = \Delta^dy_t = (1 - L)^dy_tyt=Δdyt=(1L)dyt
    所以:(1−∑i=1pαiLi)(1−L)dyt=α0+(1+∑i=1qβiLi)εt(1 - \sum_{i = 1}^{p}\alpha_iL^i)(1 - L)^dy_t = \alpha_0 + (1 + \sum_{i = 1}^{q}\beta_iL^i)\varepsilon_t(1i=1pαiLi)(1L)dyt=α0+(1+i=1qβiLi)εt

十二、SARIMA模型

季节性 ARIMA 模型是通过在 ARIMA 模型中包含额外的季节性项而生成的,其形式为:SARIMA(p,d,q)×(P,D,Q)mSARIMA(p, d, q)\times(P, D, Q)_mSARIMA(p,d,q)×(P,D,Q)m(m 表示周期数)(1−∑i=1pϕiLi)(1−∑i=1PΦiLmi)(1−L)d(1−Lm)Dyt=α0+(1+∑i=1qθiLi)(1+∑i=1QΘiLmi)εt(1 - \sum_{i = 1}^{p}\phi_iL^i)(1 - \sum_{i = 1}^{P}\Phi_iL^{mi})(1 - L)^d(1 - L^m)^Dy_t = \alpha_0 + (1 + \sum_{i = 1}^{q}\theta_iL^i)(1 + \sum_{i = 1}^{Q}\Theta_iL^{mi})\varepsilon_t(1i=1pϕiLi)(1i=1PΦiLmi)(1L)d(1Lm)Dyt=α0+(1+i=1qθiLi)(1+i=1QΘiLmi)εt

十三、时间序列建模思路

  1. 处理缺失值,生成时间变量和时间序列图
  2. 数据是否为季度数据或者月份数据(至少两个完整的周期),判断是否存在季节性波动
  3. 根据时间序列判断数据是否为平稳序列
  4. 使用 SPSS 进行建模
  5. 如果结果是ARIMA(p, 0, q)模型,可以结合 ACF 和 PACF 进行分析;如果结果是ARIMA(p, 1, q)模型,可以先进行 1 阶差分后使用 ACF 和 PACF进行分析;如果结果与季节性相关,可以考虑时间序列分析。
    注意:预测需要结合背景,不要硬套模型哦~~~

如果有什么错误,还请斧正hhh
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础入门(3)之字符串

目录 一、Python字符串 1.字符串基本使用 1&#xff09;字符串理解 2&#xff09;将字符串分配给变量 3&#xff09;多行字符串 4&#xff09;字符串是数组 5)遍历字符串 6)字符串长度 7)检查字符串 8)检查如果不是 2.切片字符串 1)切片 2)从头开始切片 3)切到最…

数学建模学习笔记(十一)——预测模型

文章目录一、综述二、灰色预测简介三、GM&#xff08;1, 1&#xff09;模型四、使用灰色系统建模的前提 —— 准指数规律检验五、对于GM(1, 1)的检验六、GM&#xff08;1, 1&#xff09;模型的拓展七、什么时候使用灰色预测八、神经网络模型一、综述 本文首先介绍了灰色预测模…

python基础入门(4)之布尔值

目录 一、Python布尔值 1)比较 2)评估值和变量 3)布尔真值 4)布尔假值 5)函数可以返回布尔值 6)练习题 一、Python布尔值 布尔值表示两个值之一&#xff1a; True或False。在编程中&#xff0c;您经常需要知道表达式是否为 True或False。举一些例子就明白了。 1)比较 当…

C语言if else语句详解

前面我们看到的代码都是顺序执行的&#xff0c;也就是先执行第一条语句&#xff0c;然后是第二条、第三条……一直到最后一条语句&#xff0c;这称为顺序结构。 但是对于很多情况&#xff0c;顺序结构的代码是远远不够的&#xff0c;这时我们就要使用判断语句即if else语句。 …

数学建模学习笔记(十二)——奇异值分解

文章目录一、综述二、奇异值分解三、使用SVD进行降维四、SVD的评价及应用一、综述 奇异值分解是线性代数中一种重要的矩阵分解方法&#xff0c;它在图形的压缩等方面具有重要的意义及作用。 二、奇异值分解 三个引理&#xff1a; AB 和 BA 非零的特征值完全相同&#xff1b;…

python基础入门(5)之运算符

目录 一、python运算符 1)算术运算符 2)赋值运算符 一、python运算符 1)算术运算符 自己赋值粘贴运行下就懂了&#xff01; 加减法&#xff1a;&#xff08; -&#xff09; a2 b3 ca-b da-b print(c,d)乘除法&#xff1a;&#xff08;* /&#xff09; a(50-5*6)/4 print(…

Python实例 61,62

61.题目&#xff1a;打印出杨辉三角形 程序设计&#xff1a; 第一步&#xff1a;先找规律&#xff0c;抽象化问题&#xff1a; 首先我们观察到&#xff0c;第一行为[1]&#xff0c;我们直接赋给一个变量&#xff1a;初始化数列 p [1] 其次我们观察到&#xff0c;下面的每一…

数学建模学习笔记(十三)——主成分分析

文章目录一、综述二、主成分分析三、主成分分析的计算步骤&#xff08;可在Matlab实现&#xff09;四、对于主成分的解释五、主成分分析的应用一、综述 主成分分析的本质是降维&#xff0c;她能够将多个指标转换为少数几个主成分。这些主成分之间互不相关&#xff0c;且是原变…

C语言逻辑运算符详解

情景模式&#xff1a;现在研发出了一款新的软件&#xff0c;要求使用者必须成年&#xff0c;并且成绩大于等于60&#xff0c;该怎么办呢&#xff1f; 或许你会想到使用嵌套的 if 语句&#xff0c;类似下面这样的代码&#xff1a; #include <stdio.h> int main() {int a…

C语言switch case语句详解

当分支比较少的时候我们使用if else语句解决&#xff0c;当分支比较多的时候&#xff0c;我们要使用switch case语句解决&#xff0c;针对分支的复杂性选择合适的程序解决。 当分支过多时&#xff0c;用 if else 处理会不太方便&#xff0c;而且容易出现 if else 配对出错的情…

Python实例 63,64

目录 63.题目&#xff1a;画椭圆 1.tkinter画椭圆 2.turtle画椭圆 64.题目&#xff1a;利用ellipse 和 rectangle 画图 63.题目&#xff1a;画椭圆 1.tkinter画椭圆 #63 from tkinter import * x 360 y 160 top y - 30 bottom y - 30canvas Canvas(width 500,height …

HTML学习笔记(一)

HTML5语法 文档类型 DOCTYPE声明文档类型 &#xff0c;必须位于第一行。 DOCTYPE不区分大小写以及单双引号。 DOCTYPE会触发浏览器以标准模式显示页面。 <!DOCTYPE HTML>字符编码 HTML5中简化了字符编码的写法&#xff0c;直接用 meta 即可 <meta charset "UTF-…

C语言条件运算符详解

如果希望获得两个数中最大的一个&#xff0c;可以使用 if 语句&#xff0c;例如&#xff1a; if(a>b){max a; }else{max b; }不过&#xff0c;C语言提供了一种更加简单的方法&#xff0c;叫做条件运算符&#xff0c;语法格式为&#xff1a; 表达式1 ? 表达式2 : 表达式…

C++ PAT 乙级 1007——素数对猜想

题目详情 让我们定义 dnd_ndn​ 为 dnpn1−pnd_n p_{n 1} - p_ndn​pn1​−pn​&#xff0c;其中 pip_ipi​ 是第 i 个素数。显然有 d11d_1 1d1​1&#xff0c;且对于 n > 1有 dnd_ndn​ 是偶数。 “素数对猜想”认为“存在无穷多对相邻且差为2的素数”&#xff0c;现给…

python实例 65,66

65.题目&#xff1a;一个最优美的图案 #65 import math class PTS:def __init__(self):self.x 0self.y 0 points []def LineToDemo():import tkinter screenx 400screeny 400canvas Canvas(width screenx,height screeny,bg white)AspectRatio 0.85MAXPTS 15h scr…

C语言while循环和do while循环详解

在C语言中&#xff0c;共有三大常用的程序结构&#xff1a; 顺序结构&#xff1a;代码从前往后执行&#xff0c;没有任何“拐弯抹角”&#xff1b; 选择结构&#xff1a;也叫分支结构&#xff0c;重点要掌握 if else、switch 以及条件运算符&#xff1b; 循环结构&#xff1…

C语言for循环详解

for 循环的使用更加灵活&#xff0c;在日常的程序开发过程中我们会使用的更多一些。 使用 while 循环来计算1加到100的值&#xff0c;代码如下&#xff1a; #include <stdio.h> int main(){int i, sum0;i 1; //语句①while(i<100 /*语句②*/ ){sumi;i; //语句③}…

python基础入门(6)之列表

目录 一、Python列表 一.列表基本知识 1)创建列表 2&#xff09;列出表值 3&#xff09;列表长度 4&#xff09;列表项 - 数据类型 5&#xff09;Python 集合&#xff08;数组&#xff09; 二.访问列表 1.正常索引 2)负索引 3)索引范围 4&#xff09;负指数范围 5…

山东大学 2020级数据库系统 实验一

What’s more? 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 …

C语言break和continue用法详解

使用while或for循环时&#xff0c;如果想提前结束循环&#xff08;在不满足结束条件的情况下结束循环&#xff09;&#xff0c;可以使用break或continue关键字。 break关键字 我们使用break来跳出 switch 语句。 当 break 关键字用于 while、for 循环时&#xff0c;会终止循…