100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 多维奇异谱分析(Multivariate Singular Spectrum Analysis MSSA)

多维奇异谱分析(Multivariate Singular Spectrum Analysis MSSA)

时间:2021-02-24 19:04:40

相关推荐

多维奇异谱分析(Multivariate Singular Spectrum Analysis MSSA)

多维奇异谱分析(Multivariate Singular Spectrum Analysis,MSSA)

1. HMSSA1. 1 分解1.1.1 第一步 嵌入1.1.2 第二步 SVD1.2 重构1.2.1 第三步 分组1.2.2 第四步 对角平均1.3 预测1.3.1 recurrent forecast1.3.2 vector forecast2. VMSSA2.1 分解2.1.1 第一步 嵌入2.1.2 第二步 SVD2.2 重构2.2.1 第三步 分组2.2.2 第四步 对角平均2.3 预测2.3.1 recurrent forecast2.3.2 vector forecast

在实际运用中,通常需要对多个时间序列进行分析,而每个时间序列都有内部结构,且序列之间也会存在一定的依赖关系。因此,基本的单变量奇异谱分析(SSA)可以扩展到多元情况,也就是多维奇异谱分析(MSSA)。

轨迹矩阵是求解SSA的主要工具,对于多变量情况,轨迹矩阵可以有不同的定义方式。主要可以分为水平和垂直两种方式。而每一种定义方式下,又可以有recurrent和vector两种预测方法,如下图所示:

下面就主要梳理一下MSSA的内容。和SSA一样,MSSA也由两个互补阶段组成:分解和重建。第一阶段对序列进行分解,第二阶段对无噪声序列进行重构。

1. HMSSA

1. 1 分解

1.1.1 第一步 嵌入

考虑M个时间序列,先根据SSA的方法,生成第i(i=1,...,M)i(i=1,...,M)i(i=1,...,M)个序列的轨迹矩阵X(i)X^{(i)}X(i),而后,水平地将这些轨迹矩阵拼接在一起:

X=[X(1):X(2):...:X(M)]X=[X^{(1)}:X^{(2)}:...:X^{(M)}]X=[X(1):X(2):...:X(M)]

要顺利的实现拼接,假设第iii个序列的轨迹矩阵X(i)X^{(i)}X(i)是Li∗KiL_i*K_iLi​∗Ki​的矩阵,其中,Li(2≤Li≤Ni−1)L_i(2\le L_i\le N_i-1)Li​(2≤Li​≤Ni​−1)是每个长度为NiNiNi的时间序列的窗口长度,Ki=Ni−Li+1,i=1,...,MK_i=N_i-L_i+1, i=1,...,MKi​=Ni​−Li​+1,i=1,...,M,则有L1=...=LM=L,L_1=...=L_M=L,L1​=...=LM​=L,而Ki,NiK_i,N_iKi​,Ni​可以不同。

1.1.2 第二步 SVD

这一步,对前面得到的XHX_HXH​进行SVD操作,用λH1,...,λHL\lambda_{H_1},...,\lambda_{H_L}λH1​​,...,λHL​​表示XHXHTX_HX_H^TXH​XHT​的特征值,同样,有λH1≥,...,≥λHL≥0\lambda_{H_1} \ge ,...,\ge\lambda_{H_L}\ge0λH1​​≥,...,≥λHL​​≥0,UH1,...,UHLU_{H_1},...,U_{H_L}UH1​​,...,UHL​​则表示对应的特征向量。

对XHX_HXH​进行SVD的过程可以表示为:XH=XH1+...+XHLX_H=X_{H_1}+...+X_{H_L}XH​=XH1​​+...+XHL​​,其中

因此,XHXHTX_HX_H^TXH​XHT​的结构等价于:

1.2 重构

1.2.1 第三步 分组

与SSA类似,这个步骤相当于分解矩阵XH1,...,XHLX_{H_1},...,X_{H_L}XH1​​,...,XHL​​分成几个不相交的组,并对每组中的矩阵求和。下标集合1,…,L{1,…,L}1,…,L被划分成不相交的子集I1,……,ImI_1,……,I_mI1​,……,Im​,与XH=XI1+...+XImX_H=X_{I_1}+...+X_{I_m}XH​=XI1​​+...+XIm​​相对应。

1.2.2 第四步 对角平均

对角平均的目的是将重构的hankel矩阵XIjX_{I_j}XIj​​变换为一维的序列。对于每个重构的轨迹矩阵而言,这一步与SSA相同。

1.3 预测

1.3.1 recurrent forecast

对于固定的LLL,为每个序列YNi(i)(i=1,...,M)Y^{(i)}_{N_i}(i=1,...,M)YNi​(i)​(i=1,...,M)分别构造轨迹矩阵X(i)=[X1(i),...,XK(i)]=(xmn)m,n=1L,KiX^{(i)}= [X^{(i)}_{1},...,X^{(i)}_{K}]=(x_{mn})^{L,K_i}_{m,n=1}X(i)=[X1(i)​,...,XK(i)​]=(xmn​)m,n=1L,Ki​​

构造块轨迹矩阵XVX_VXV​如下:

定义UVj=(Uj(1),…,Uj(M))T,U_{V_j}=(U_{j}^{(1)},…,U_{j}^{(M)})^T,UVj​​=(Uj(1)​,…,Uj(M)​)T, 作为一个XVXVTX_VX_V^TXV​XVT​的第jjj个特征向量。其中Uj(i)U_{j}^{(i)}Uj(i)​的长度为L,对应于序列YNi(i)(i=1,...,M)Y^{(i)}_{N_i}(i=1,...,M)YNi​(i)​(i=1,...,M)

定义X^V=[X^1:...:X^K]=Σi=1rUViUViTXV\hat{X}_V=[\hat{X}_1:...:\hat{X}_K]=\Sigma_{i=1}^{r}U_{V_i}U^T_{V_i}X_VX^V​=[X^1​:...:X^K​]=Σi=1r​UVi​​UVi​T​XV​,即

考虑矩阵

作为从上一步中获得的矩阵X^(i)\hat{X}^{(i)}X^(i)汉克尔化过程的结果

令Uj(i)∇U^{(i)\nabla}_{j}Uj(i)∇​是特征向量Uj(i)U_{j}^{(i)}Uj(i)​的前L−1L-1L−1个元素构成的向量。πj(i)\pi_{j}^{(i)}πj(i)​表示特征向量Uj(i)U_{j}^{(i)}Uj(i)​的最后一个元素。(i=1,...,M)(i=1,...,M)(i=1,...,M)

选择r个重建阶段的特征三元组用于预测。

定义矩阵U∇M=(U1∇M,...,Ur∇M)U^{\nabla M}=(U^{\nabla M}_1,...,U^{\nabla M}_r)U∇M=(U1∇M​,...,Ur∇M​),其中,Uj∇MU^{\nabla M}_jUj∇M​为:

定义矩阵WWW:

如果矩阵(IM×M−WWT)−1(I_{M×M}−WW^T)^{−1}(IM×M​−WWT)−1存在,且r≤Lsum−Mr≤L_{sum}−Mr≤Lsum​−M,则存在h步VMSA预测,公式如下:

其中,y~ji(m)\tilde{y}^{(m)}_{j_i}y~​ji​(m)​是重构序列mmm的第jij_iji​个观察值,m=1,...,M.m=1,...,M.m=1,...,M.

1.3.2 vector forecast

HMSSA-V的过程非常类似于它的单变量版本SSA-V和HMSSA-R.算法的第一部分与HMSSA-R一样,继续考虑以下矩阵:

定义向量Zj(i),(i=1,...M)Z_j^{(i)},(i=1,...M)Zj(i)​,(i=1,...M)如下:

其中,X~j(i)\tilde{X}^{(i)}_{j}X~j(i)​是分组并保留噪声分量后,第i个序列轨迹矩阵的重构列。通过构造矩阵Z(i)=[Z1(i),...,Zki+h+L−1(i)]Z^{(i)}= [Z^{(i)}_1,...,Z^{(i)}_{ k_i+h+L−1}]Z(i)=[Z1(i)​,...,Zki​+h+L−1(i)​],并求对角平均,我们可以得到一个新的序列y^1(i),...,y^Ni+h(i)\hat{y}_1^{(i)},...,\hat{y}_{N_i+h}^{(i)}y^​1(i)​,...,y^​Ni​+h(i)​,其中,y^N+1(i),...,y^N+h(i)\hat{y}_{N+1}^{(i)},...,\hat{y}_{N+h}^{(i)}y^​N+1(i)​,...,y^​N+h(i)​则是通过HMSSA-V方法获得的hhh个预测值。

2. VMSSA

2.1 分解

2.1.1 第一步 嵌入

与HMSSA一样,考虑M个时间序列,先根据SSA的方法,生成第i(i=1,...,M)i(i=1,...,M)i(i=1,...,M)个序列的轨迹矩阵X(i)X^{(i)}X(i)

而后,垂直地将这些轨迹矩阵拼接在一起,得到XVX_VXV​:

要顺利的实现拼接,假设第iii个序列的轨迹矩阵X(i)X^{(i)}X(i)是Li∗KiL_i*K_iLi​∗Ki​的矩阵,其中,Li(2≤Li≤Ni−1)L_i(2\le L_i\le N_i-1)Li​(2≤Li​≤Ni​−1)是每个长度为NiNiNi的时间序列的窗口长度,Ki=Ni−Li+1,i=1,...,MK_i=N_i-L_i+1, i=1,...,MKi​=Ni​−Li​+1,i=1,...,M,与HMSSA不同的是,VMSSA要求K1=...=KM=K,K_1=...=K_M=K,K1​=...=KM​=K,而Li,NiL_i,N_iLi​,Ni​可以不同。

2.1.2 第二步 SVD

这一步,对前面得到的XVX_VXV​进行SVD操作,用λV1,...,λVL\lambda_{V_1},...,\lambda_{V_L}λV1​​,...,λVL​​表示XVXVTX_VX_V^TXV​XVT​的特征值,同样,有λV1≥,...,≥λVL≥0\lambda_{V_1} \ge ,...,\ge\lambda_{V_L}\ge0λV1​​≥,...,≥λVL​​≥0,UV1,...,UVLU_{V_1},...,U_{V_L}UV1​​,...,UVL​​则表示对应的特征向量。

XVXVTX_VX_V^TXV​XVT​的结构等价于:

2.2 重构

2.2.1 第三步 分组

与HMSSA类似,这个步骤相当于分解矩阵XV1,...,XVLX_{V_1},...,X_{V_L}XV1​​,...,XVL​​分成几个不相交的组,并对每组中的矩阵求和。下标集合1,…,L{1,…,L}1,…,L被划分成不相交的子集I1,……,ImI_1,……,I_mI1​,……,Im​,与XV=XI1+...+XImX_V=X_{I_1}+...+X_{I_m}XV​=XI1​​+...+XIm​​相对应。

2.2.2 第四步 对角平均

对角平均的目的是将重构的hankel矩阵XIjX_{I_j}XIj​​变换为一维的序列。对于每个重构的轨迹矩阵而言,这一步与SSA相同。

2.3 预测

2.3.1 recurrent forecast

考虑MMM个序列YNi(i)=(y1(i),...,yNi(i))Y^{(i)}_{N_i}=(y^{(i)}_{1},...,y^{(i)}_{N_i})YNi​(i)​=(y1(i)​,...,yNi​(i)​)和对应的窗口长度Li,2≤Li≤Ni−1,i=1...,ML_i,2≤Li≤Ni−1,i=1...,MLi​,2≤Li≤Ni−1,i=1...,M,VMSSA-R预测算法如下所示。

对于固定的KKK,为每个序列YNi(i)(i=1,...,M)Y^{(i)}_{N_i}(i=1,...,M)YNi​(i)​(i=1,...,M)分别构造轨迹矩阵X(i)=[X1(i),...,XK(i)]=(xmn)m,n=1L,KiX^{(i)}= [X^{(i)}_{1},...,X^{(i)}_{K}]=(x_{mn})^{L,K_i}_{m,n=1}X(i)=[X1(i)​,...,XK(i)​]=(xmn​)m,n=1L,Ki​​

构造块轨迹矩阵XHX_HXH​如下:

定义UHj=(u1j,…,uLj)T,U_{H_j}=(u_{1j},…,u_{Lj})^T,UHj​​=(u1j​,…,uLj​)T, 长度为L,作为一个XHXHTX_HX_H^TXH​XHT​的第jjj个特征向量。

定义Hankel算子Xi^\hat{X_i}Xi​^​,考虑由r个分量获得的重构矩阵XH^=Σi=1rUHiUHiTXH\hat{X_H}=\Sigma_{i=1}^{r}U_{H_i}U^T_{H_i}X_HXH​^​=Σi=1r​UHi​​UHi​T​XH​

考虑矩阵

作为从上一步中获得的矩阵X^(i)\hat{X}^{(i)}X^(i)汉克尔化过程的结果

令UHj∇U^\nabla_{H_j}UHj​∇​是特征向量UHjU_{H_j}UHj​​的前L−1L-1L−1个元素构成的向量。πHj\pi_{H_j}πHj​​表示特征向量UHjU_{H_j}UHj​​的最后一个元素。(j=1,...,r)(j=1,...,r)(j=1,...,r)

定义ν2=Σj=1rπHj2\nu^2=\Sigma_{j=1}^{r}\pi_{H_j}^2ν2=Σj=1r​πHj​2​

定义线性系数向量:

如果ν2<1\nu^2<1ν2<1,则存在HMSSA的H步预测,计算公式如下:

其中,i=1,...,M.i=1,...,M.i=1,...,M.

2.3.2 vector forecast

此算法的前10部分与VMSSA-R相同,继续考虑矩阵:

其中,

可以证明,矩阵Π\PiΠ是U∇U^{\nabla}U∇的列空间上的正交投影算子。令

其中,Π(i)\Pi^{(i)}Π(i)的维度为(Li−1)×(Lsum−M)(L_i−1)×(L_{sum}−M)(Li​−1)×(Lsum​−M),而R(i)(i=1,...,M)\mathscr{R}^{(i)}(i=1,...,M)R(i)(i=1,...,M)的长度为Lsum−ML_{sum}−MLsum​−M,对应于序列YNi(i)Y_{N_i}^{(i)}YNi​(i)​.然后,定义线性运算:

其中,YΔT=(YΔ(1),...,YΔ(M))Y_\Delta^T=(Y_\Delta^{(1)},...,Y_\Delta^{(M)})YΔT​=(YΔ(1)​,...,YΔ(M)​),而YΔ(i),(i=1,...,M)Y_\Delta^{(i)},(i=1,...,M)YΔ(i)​,(i=1,...,M)表示YiY_iYi​(长度为LiL_iLi​)的最后Li−1L_i-1Li​−1个元素。使用上面的符号,VMSSA-V预测算法如下:

定义向量ZiZ_iZi​如下:

其中,X~i\tilde{X}_{i}X~i​是分组并保留噪声分量后,第i个序列轨迹矩阵的重构列。Lmax=max{L1,...,LM}L_{max}=max\{L_1,...,L_M\}Lmax​=max{L1​,...,LM​}

2. 构造矩阵Z=[Z1,...,ZK+h+Lmax−1]Z= [Z_1,...,Z_{ K+h+L_{max}−1}]Z=[Z1​,...,ZK+h+Lmax​−1​],并求对角平均,我们可以得到一个新的序列y^1(i),...,y^N+h+Lmax(i)(i=1,...,M)\hat{y}_1^{(i)},...,\hat{y}_{N+h+L_{max}}^{(i)}(i=1,...,M)y^​1(i)​,...,y^​N+h+Lmax​(i)​(i=1,...,M)

3. 元素y^Ni+1(i),...,y^Ni+h(i)(i=1,...,M)\hat{y}_{N_i+1}^{(i)},...,\hat{y}_{N_i+h}^{(i)}(i=1,...,M)y^​Ni​+1(i)​,...,y^​Ni​+h(i)​(i=1,...,M)则是通过VMSSA-V方法获得的hhh个预测值。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。