一元时间序列
时间序列:设有随机变量序列 { Xt,t=…,−2,−1,0,1,2,… }, 称其为一个时间序列。
自协方差函数: 时间序列{$ X_t$ }中两个随机变量的协方差 Cov(Xs,Xt)叫做自协方差。 如果Cov(Xs,Xt)=γ∣t−s∣仅依赖于(t-s), 则称 γk=Cov(Xt−k,Xt),k=0,1,2,… 为时间序列{Xt }的自协方差函数。 因为Cov(Xs,Xt)=Cov(Xt,Xs), 所以γ−k=γk。 易见γ0=Var(Xt)。
由Cauchy-Schwartz不等式, $|\gamma_k | = \left| E[ (X_{t-k} - \mu) (X_t - \mu)] \right| \leq \left( E(X_{t-k} - \mu)^2 ; E(X_t - \mu)^2 \right)^{1/2} = \gamma_0 $
弱平稳序列(宽平稳序列,weakly stationary time series): 如果时间序列({ X_t })存在有限的二阶矩且满足:
(1) EXt=μ与t无关;
(2) Var(Xt)=γ0与t无关;
(3) γk=Cov(Xt−k,Xt),k=1,2,…与t无关
自相关函数(ACF): ρk=ρ(Xt−k,Xt)=Var(Xt−k)Var(Xt)Cov(Xt−k,Xt)=γ0γ0γk=γ0γk, k=0,1,…, ∀t 记(ρk=γk/γ0), 为时间序列({Xt })的自相关函数 (rho0=1)。
AR(1)模型:如果(ρ1=0), 则(Xt)与(Xt−1)相关, 可以用(Xt−1)预测(Xt)。 最简单的预测为线性组合, 如下模型:Xt=ϕ0+ϕ1Xt−1+εt 称为一阶自回归模型(Autoregression model),记作AR(1)模型。 其中({ εt })是零均值独立同分布白噪声序列, 方差为(σ2), 并设(εt)与(Xt−1,Xt−2,…)独立。 系数(∣ϕ1∣<1)。
AR(1)模型也是马尔可夫(Markov)过程: (Xt)在(Xt−1,Xt−2,…)条件下的条件分布, 只与(Xt−1)有关。 已知(Xt−1)后, 用(Xt−1,Xt−2,…)去预测(Xt), 与仅用(Xt−1)去预测的效果相同。 这种性质称为马氏性。
MA(1)模型:移动平均模型是具有q步外不相关性质的平稳列的模型;高阶的AR模型, 有些可以用低阶的MA模型更好地描述: Xt=ϕ0−∑j=1∞(−θ1)jXt−j+εt 其中0<∣θ∣<1。 模型可改写为Xt=ϕ0(1+θ1)+εt+θ1εt−1 这样的模型称为MA(1)模型。
多元时间序列
多元时间序列:一元拓展到多元,考虑一个k元时间序列 rt=(r1t,…,rkt)T
互协方差阵:半正定k阶方阵, 记Γ0=(Γij(0))k×k, 则Γii(0)是分量rit的方差, Γij(0)是分量rit与分量rjt的协方差。
为了将协方差阵变成相关阵, 记 D=diag(Γ11(0),…,Γkk(0))
互相关阵 (CCM): 令 $\begin{aligned} \boldsymbol\rho_0 = (\rho_{ij}(0))_{k\times k} = D^{-1} \Gamma_0 D^{-1} \end{aligned} 则\boldsymbol\rho_0是随机向量\boldsymbol r_t$的相关阵, 称为多元时间序列{ rt }的同步的或者滞后为0的互相关阵。 其元素 ρij(0)=Γii(0)Γjj(0)Γij(0)=Var(rit)Var(rjt)Cov(rit,rjt)是一个对角线元素全为1的对称半正定阵
滞后l的互协方差阵定义为 Γl=(Γij(l))k×k=E[(rt−μ)(rt−l−μ)T]
滞后l的互相关阵:定义为 ρl=(ρij(l))k×k=D−1ΓlD−1,其中 ρij(l)=Γii(0)Γjj(0)Γij(l)=Var(rit)Var(rjt)Cov(rit,rj,t−l) 是rit和rj,t−l的相关系数。 Var(rj,t−l)=Γjj(0)。
若ρij(l)=0,则说明rj,t−l对rit有先导作用,又称rit对rj,t−l有线性依赖
问题抽象与思路
问题抽象:
给定信息集Ft={(yi,zi)T,i=1..t;xi,i=1..t+3},其中:
- yi=(yi(1),yi(2),yi(3),yi(4),yi(5),yi(6))T表示实测污染物数据,共6维(分别是SO2、NO2、PM10、PM2.5、𝑂3、CO)
- zi=(zi(1),zi(2),zi(3),zi(4),zi(5))T表示实测污染物数据,共5维(分别是温度、湿度、气压、风向、风速)
- xi=(xi(1),xi(2),xi(3),xi(4),xi(5),xi(6))T表示一次预报污染物数据,共6维。
目标:预测 y^t+1,y^t+2,y^t+3
思路:
-
建立多元时间序列VAR模型:通过(yi,zi)T,i=1..t 预测(y^t+1(1),z^t+1(1))T,(y^t+2(1),z^t+2(1))T,(y^t+3(1),z^t+3(1))T
-
建立多元LSTM模型:通过(yi,zi)T,i=1..t 预测(y^t+1(2),z^t+1(2))T,(y^t+2(2),z^t+2(2))T,(y^t+3(2),z^t+3(2))T
-
建立集成学习Stacking模型进行综合预测:通过(x_{(t+k)},y ̂_{(t+k)}^{(1)}, y ̂_{(t+k)}^{(2)} )^T,k=1,2,3预测 y^t+k
为避免虚假回归,分别建立6个污染物3期多元线性回归:y^t+k,j=αk,j(xt+k,j,y^t+k,j(1),y^t+k,j(2),1)T+ek,j
其中,k=1,2,3代表预测未来第k天的污染物,j=1…6,分别代表6个污染物,αk,j是预测第k天,第j个污染物的参数,为4维向量,最后一维为偏差,ek,j是预测第k天,第j个污染物的残差
简化版
多元时间序列: rt=(r1t,…,rkt)T
互协方差阵:Γ0=(Γij(0))k×k, Γij(0)是rit与rjt的协方差
记 D=diag(Γ11(0),…,Γkk(0))
互相关阵 (CCM): $\begin{aligned} \boldsymbol\rho_0 = (\rho_{ij}(0))_{k\times k} = D^{-1} \Gamma_0 D^{-1} \end{aligned} $
ρij(0)=Γii(0)Γjj(0)Γij(0)=Var(rit)Var(rjt)Cov(rit,rjt)是rit与rjt的相关系数
滞后l的互协方差阵: Γl=(Γij(l))k×k=E[(rt−μ)(rt−l−μ)T]
滞后l的互相关阵: ρl=(ρij(l))k×k=D−1ΓlD−1
ρij(l)=Γii(0)Γjj(0)Γij(l)=Var(rit)Var(rjt)Cov(rit,rj,t−l) 是rit和rj,t−l的相关系数
线性依赖:若ρij(l)=0,则说明rj,t−l对rit有先导作用,又称rit对rj,t−l有线性依赖
问题抽象:
给定信息集Ft={(yi,zi)T,i=1..t;xi,i=1..t+3},其中:
- yi=(yi(1),yi(2),yi(3),yi(4),yi(5),yi(6))T表示实测污染物数据,共6维(分别是SO2、NO2、PM10、PM2.5、𝑂3、CO)
- zi=(zi(1),zi(2),zi(3),zi(4),zi(5))T表示实测气象数据,共5维(分别是温度、湿度、气压、风向、风速)
- xi=(xi(1),xi(2),xi(3),xi(4),xi(5),xi(6))T表示一次预报污染物数据,共6维。
目标:预测 y^t+1,y^t+2,y^t+3
思路:
-
建立多元时间序列VAR模型:通过(yi,zi)T,i=1..t 预测(y^t+1(1),z^t+1(1))T,(y^t+2(1),z^t+2(1))T,(y^t+3(1),z^t+3(1))T
-
建立多元LSTM模型:通过(yi,zi)T,i=1..t 预测(y^t+1(2),z^t+1(2))T,(y^t+2(2),z^t+2(2))T,(y^t+3(2),z^t+3(2))T
-
建立集成学习Stacking模型进行综合预测:通过(x_{(t+k)},y ̂_{(t+k)}^{(1)}, y ̂_{(t+k)}^{(2)} )^T,k=1,2,3预测 y^t+k
为避免虚假回归,分别建立6个污染物3期多元线性回归:y^t+k,j=αk,j(xt+k,j,y^t+k,j(1),y^t+k,j(2),1)T+ek,j
其中,k=1,2,3代表预测未来第k天的污染物,j=1…6,分别代表6个污染物,αk,j是预测第k天,第j个污染物的参数,为4维向量,最后一维为偏差,ek,j是预测第k天,第j个污染物的残差
时间序列:Xt,t=…,−2,−1,0,1,2,…
自协方差函数: γk=Cov(Xt−k,Xt),k=0,1,2,…
Cauchy-Schwartz不等式: $|\gamma_k | = \left| E[ (X_{t-k} - \mu) (X_t - \mu)] \right| \leq \left( E(X_{t-k} - \mu)^2 ; E(X_t - \mu)^2 \right)^{1/2} = \gamma_0 $
自相关函数(ACF): ρk=ρ(Xt−k,Xt)=Var(Xt−k)Var(Xt)Cov(Xt−k,Xt)=γ0γ0γk=γ0γk, k=0,1,…
AR(1)模型:如果ρ1=0, 则Xt与Xt−1相关, 可以用Xt−1预测Xt: Xt=ϕ0+ϕ1Xt−1+εt
MA(1)模型:高阶的AR模型, 有些可以用低阶的MA模型更好地描述,
如: Xt=ϕ0−∑j=1∞(−θ1)jXt−j+εt
可改写为Xt=ϕ0(1+θ1)+εt+θ1εt−1
超前一步预测:x^h(1)=ϕ0+∑j=1pϕjxh+1−j+∑j=1qθjε^h+1−j
对超前 k 步预测有:x^h(k)=ϕ0+∑j=1pϕjx^h+k−j+∑j=1qθjε^h+k−j
Var(eh(l))=(1+ϕ12+⋯+ϕl−12)σa2
集成算法大致可以分为:Bagging,Boosting 和 Stacking 等类型
Bagging (Boostrap Aggregating) 通过重复采样的方式训练多个子模型,将结果投票或平均。
Boosting 是一种提升算法,可以将弱的学习算法提升 (boost) 为强的学习算法,每次用新的模型学习错分类的样本/拟合上一次的残差。
Stacking 是一种集成学习方法,同时也是一种模型组合策略,相对简单的模型组合策略:平均法 和 投票法。
https://leovan.me/cn/2018/12/ensemble-learning/
评论区