时间序列建立图模型(四)

多维非线性时间序列的条件互信息图模型

1.多维非线性时间序列条件互信息图的定义

用顶点表示分量序列,用顶点之间的边表示分量序列间存在的相依联系。设 X t = ( X 1 , t , X 2 , t , . . . , X k , t ) ( t ∈ Z ) X_{t}=(X_{1,t} , X_{2,t},...,X_{k,t})(t\in Z) Xt=(X1,t,X2,t,...,Xk,t)(tZ)为一个k维时间序列,表示 X t X_{t} Xt各分量序列之间存在的相依联系的图 G = ( V , E ) G=(V,E) G=(V,E)由顶点集 V = ( 1 , 2 , . . . , k ) V=(1,2,...,k) V=(1,2,...,k)和边集 E ⊂ { ( a , b ) ∈ V × V } E\subset \left \{ (a,b)\in V\times V \right \} E{(a,b)V×V}。此处仅考虑无向图。
Y − a b , t = ( X j , t ) ( j ≠ a , b ) , X a = { X a , t } ( t ∈ Z ) , Y − a b = ( Y − a b , t ) ( t ∈ Z ) \boldsymbol{Y}_{-ab}, t=\left(X_{j}, t\right)(j \neq a, b), X_{a}=\left\{X_{a, t}\right\}(t \in \mathbf{Z}),\boldsymbol{Y}_{-ab}=(\boldsymbol{Y}_{-ab}, t)(t \in \mathbf{Z}) Yab,t=(Xj,t)(j=a,b),Xa={Xa,t}(tZ),Yab=(Yab,t)(tZ),考虑检验在给定其他序列 Y − a b \boldsymbol{Y}_{-ab} Yab的条件下序列 X a X_{a} Xa X b X_{b} Xb的条件独立性。由于条件互信息只是一个标量,可以简单考虑条件互信息 I ( X a , t ; X b , t + u ∣ Y − a b ) ,  其中,  u ∈ Z  .  I\left(X_{a, t} ; X_{b,t+u}\mid Y_{-a b}\right), \text { 其中, } u \in \mathbf{Z} \text { . } I(Xa,t;Xb,t+uYab), 其中uZ . 
定义联系 X a ⊥ X b ∣ Y − a b : ⇔ X a , t ⊥ X b , t + u ∣ F − a b : ⇔ I ( X a , t ; X b , t + u ∣ Y − a b ) = 0 ,  对所有  u ∈ Z , \begin{aligned} &X_{a} \perp X_{b}\left|\boldsymbol{Y}_{-a b}: \Leftrightarrow X_{a, t} \perp X_{b, t+u}\right| \mathcal{F}_{-a b}\\ &: \Leftrightarrow I\left(X_{a, t} ; X_{b, t+u} \mid \boldsymbol{Y}_{-a b}\right)=0, \quad \text { 对所有 } u \in \mathbf{Z}, \end{aligned} XaXbYab:Xa,tXb,t+uFab:I(Xa,t;Xb,t+uYab)=0, 对所有 uZ,
式中, F − a b \mathcal{F}_{-a b} Fab表示过程 Y − a b \boldsymbol{Y}_{-ab} Yab产生的 σ \sigma σ代数。由这个联系可以导出下面条件互信息图的定义。

条件互信息图定义

X t = ( X 1 , t , X 2 , t , . . . , X k , t ) ( t ∈ Z ) X_{t}=(X_{1,t} , X_{2,t},...,X_{k,t})(t\in Z) Xt=(X1,t,X2,t,...,Xk,t)(tZ)为一个k维时间序列, V = ( 1 , 2 , . . . , k ) V=(1,2,...,k) V=(1,2,...,k)是各分量序列对应的顶点集。设 ( a , b ) ∉ E (a,b)\notin E (a,b)/E当且仅当条件 X a ⊥ X b ∣ Y − a b X_{a} \perp X_{b}|\boldsymbol{Y}_{-a b} XaXbYab成立。则称图 G = ( V , E ) G=(V,E) G=(V,E)为条件互信息图。偏不相关关系是条件独立关系的一种线性特例。条件互信息度量数据中所有(包括线性和非线性)的联系,而偏相关关系仅度量线性关系,偏相关图是条件互信息图的一种特例。

2.多维非线性时间序列条件互信息图的Markov性质

对任意向量序列 X A = ( X a , t ) ( a ∈ A , t ∈ Z ) X_{A}=(X_{a},t)(a\in A,t\in Z) XA=(Xa,t)(aA,tZ)可以用相同的方式定义联系 ⊥ \perp ,特别有:
X a ⊥ X b ⊥ X c : ⇔ X A , t ⊥ X B , t + u ∣ F C = 0 : ⇔ I ( X A , t ; X B , t + u ∣ F C ) = 0 ,  对所有  u ∈ Z , \begin{aligned} &X_{a} \perp X_{b} \perp X_{c} : \Leftrightarrow X_{A, t} \perp X_{B, t+u} | \mathcal{F}_{C}=0\\ &: \Leftrightarrow I\left(X_{A, t} ; X_{B, t+u} \mid \mathcal{F}_{C}\right)=0, \quad \text { 对所有 } u \in \mathbf{Z}, \end{aligned} XaXbXc:XA,tXB,t+uFC=0:I(XA,t;XB,t+uFC)=0, 对所有 uZ,
u ∈ Z , A , B , C ⊂ V u\in Z,A,B,C\subset V uZ,A,B,CV为不交子集。

引理9 X t = ( X a , t ) ( a ∈ V ) X_{t}=(X_{a},t)(a\in V) Xt=(Xa,t)(aV)为一个多维严平稳时间序列,有 X A = ( X a , t ) ( a ∈ V , t ∈ Z ) \mathbf{X} _{A}=(X_{a},t)(a\in V,t\in \mathbf{Z} ) XA=(Xa,t)(aV,tZ), X B , X C , X D \mathbf{X} _{B},\mathbf{X} _{C},\mathbf{X} _{D} XB,XC,XD为其子序列,其中 A , B , C , D ⊂ V A,B,C,D\subset V A,B,C,DV为不交子集,则

  • 如果 X A ⊥ ( X B , X C ) ∣ X D X_{A}\perp (X_{B},X_{C})|X_{D} XA(XB,XC)XD,那么 X A ⊥ X B ∣ X D X_{A}\perp X_{B}|X_{D} XAXBXD;
  • X A ⊥ ( X B , X C ) ∣ X D X_{A}\perp (X_{B},X_{C})|X_{D} XA(XB,XC)XD,当且仅当 X A ⊥ X B ∣ ( X C , X D ) X_{A}\perp X_{B}|(X_{C},X_{D}) XAXB(XC,XD) X A ⊥ X C ∣ ( X B , X D ) X_{A}\perp X_{C}|(X_{B},X_{D}) XAXC(XB,XD)
条件互信息图的分离定理

对于 A , B , S ⊂ V A,B,S\subset V A,B,SV,如果从 A A A中任意元素到 B B B中任意元素的每条路都至少包含分离集 S S S中的一个顶点,则称 S S S分离 A A A B B B.

定理10 X t \mathbf{X}_{t} Xt是一个多维严平稳时间序列,且满足可测分离条件,图 G = ( V , E ) G=(V,E) G=(V,E) X t \mathbf{X}_{t} Xt的条件互信息图。令 A , B , S ⊂ V A,B,S\subset V A,B,SV,其中 S S S分离 A A A B B B,则
X A ⊥ X B ∣ X S X_{A}\perp X_{B}| X_{S} XAXBXS

2.多维非线性时间序列分量序列的条件独立性检验

在给定 Y − a b \boldsymbol{Y}_{-ab} Yab的条件下, X a , t X_{a,t} Xa,t b , t + u _{b,t+u} b,t+u条件独立等价于:
δ a b ( u ) = 1 − e x p [ − I ( X a , t , X b , t + u ∣ Y − a b ) ] = 0 \delta_{ab}(u)=1-exp[-I(X_{a,t},X_{b,t+u}|\mathbf{Y}_{-ab})]=0 δab(u)=1exp[I(Xa,t,Xb,t+uYab)]=0
在实际应用中,对于 Y − a b \mathbf{Y}_{-ab} Yab常同时考虑有限个滞后变量,如 I ( X a , t , X b , t + u ∣ Y − a b L ) I(X_{a,t},X_{b,t+u}|\mathbf{Y}_{-ab}^{L} ) I(Xa,t,Xb,t+uYabL)。对于之后阶数 u ∈ { − M , . . . , − 1 , 0 , 1 , . . . , M } u\in \left \{ -M,...,-1,0,1,...,M \right \} u{M,...,1,0,1,...,M}:
u ≥ 0 , Y − a b L = ( Y − a b , t − L , Y − a b , t − L + 1 , . . . , Y a b , t + u + L ) u\ge 0,\mathbf{Y} _{-ab}^{L}=(\mathbf{Y} _{-ab,t-L},\mathbf{Y} _{-ab,t-L+1},...,\mathbf{Y} _{ab,t+u+L}) u0,YabL=(Yab,tL,Yab,tL+1,...,Yab,t+u+L)
u < 0 , Y − a b L = ( Y a b , t + u − L , Y a b , t + u − L + 1 , . . . , Y a b , t + L ) u< 0,\mathbf{Y} _{-ab}^{L}=(\mathbf{Y} _{ab,t+u-L},\mathbf{Y} _{ab,t+u-L+1},...,\mathbf{Y} _{ab,t+L}) u<0,YabL=(Yab,t+uL,Yab,t+uL+1,...,Yab,t+L)
其中,常数 L L L M M M为事先确定的固定正整数,用于选择滞后集。
因此,时间序列之间条件独立性的度量为 D a b = ∑ u = − M M δ a b ( u ) D_{ab}=\sum_{u=-M}^{M}\delta_{ab}(u) Dab=u=MMδab(u)
δ a b ( u ) = 1 − e x p [ − I ( X a , t , X b , t + u ∣ Y − a b ) ] \delta_{ab}(u)=1-exp[-I(X_{a,t},X_{b,t+u}|\mathbf{Y}_{-ab})] δab(u)=1exp[I(Xa,t,Xb,t+uYab)]
在给定 Y − a b L \mathbf{Y}_{-ab}^{L} YabL的条件下, X a , t X_{a,t} Xa,t X b , t + u X_{b,t+u} Xb,t+u之间的2阶条件互信息为:
I 2 ( X a , t ; X b , t + u ∣ Y − a b L ) = H 2 ( X a , t , X b , t + u ∣ Y − a b L ) + H 2 ( X a , t , Y − a b L ) − H 2 ( X b , t + u , Y − a b L ) − H 2 ( Y − a b L ) I_{2}(X_{a,t};X_{b,t+u}|\mathbf{Y}_{-ab}^{L})=H_{2}(X_{a,t},X_{b,t+u}|\mathbf{Y}_{-ab}^{L})+H_{2}(X_{a,t},\mathbf{Y}_{-ab}^{L})-H_{2}(X_{b,t+u},\mathbf{Y}_{-ab}^{L})-H_{2}(\mathbf{Y}_{-ab}^{L}) I2(Xa,t;Xb,t+uYabL)=H2(Xa,t,Xb,t+uYabL)+H2(Xa,t,YabL)H2(Xb,t+u,YabL)H2(YabL)
C U , C a b u , C a u , C b u C^{U},C_{ab}^{u},C_{a}^{u},C_{b}^{u} CU,Cabu,Cau,Cbu分别为关联积分 C ( Y − a b L ; ε ) , C ( X a , t , X b , t + u , Y − a b L ; ε ) , C ( X a , t , Y − a b L ; ε ) , C ( X b , t + u , Y − a b L ; ε ) C(\mathbf{Y}_{-ab}^{L};\varepsilon),C(X_{a,t},X_{b,t+u},\mathbf{Y}_{-ab}^{L};\varepsilon),C(X_{a,t},\mathbf{Y}_{-ab}^{L};\varepsilon),C(X_{b,t+u},\mathbf{Y}_{-ab}^{L};\varepsilon) C(YabL;ε),C(Xa,t,Xb,t+u,YabL;ε),C(Xa,t,YabL;ε),C(Xb,t+u,YabL;ε)的简写形式,则
δ ^ a b ( u ) = 1 − e x p [ − I ^ 2 ( X a , t , X b , t + u ∣ Y − a b L ) ] = 1 − C ^ a u C ^ b u C ^ u C ^ a b u \hat{\delta}_{ab}(u)=1-exp[-\hat{I}_{2}(X_{a,t},X_{b,t+u}|\mathbf{Y}_{-ab}^{L})]=1-\frac{\hat{C}_{a}^{u}\hat{C}_{b}^{u}}{\hat{C}^{u}\hat{C}_{ab}^{u}} δ^ab(u)=1exp[I^2(Xa,t,Xb,t+uYabL)]=1C^uC^abuC^auC^bu
因此有 D ^ a b = ∑ u = − M M δ ^ a b ( u ) \hat{D}_{ab}=\sum_{u=-M}^{M}\hat{\delta}_{ab}(u) D^ab=u=MMδ^ab(u)

定理11 估计 δ ^ a b ( u ) \hat{\delta}_{ab}(u) δ^ab(u) D ^ a b \hat{D}_{ab} D^ab分别是 δ a b ( u ) , D a b \delta _{ab}(u),D_{ab} δab(u),Dab的相合估计,即当样本量 n → ∞ n\to \infty n时,有 δ ^ a b ( u ) → P δ a b ( u ) , D ^ a b → P D a b \hat{\delta}_{ab}(u)\overset{P}{\rightarrow}\delta_{ab}(u),\hat{D}_{ab}\overset{P}{\rightarrow}D_{ab} δ^ab(u)Pδab(u),D^abPDab,其中 → P \overset{P}{\rightarrow} P表示依概率收敛。

定理12 X t = ( X 1 , t , X 2 , t , . . . , X k , t ) ( t ∈ Z ) X_{t}=(X_{1,t} , X_{2,t},...,X_{k,t})(t\in Z) Xt=(X1,t,X2,t,...,Xk,t)(tZ)为独立同分布时间序列的假设下,当样本量 n → ∞ n\to \infty n时, δ ^ a b ( u ) \hat{\delta}_{ab}(u) δ^ab(u)的渐近分布为 n 1 / 2 δ ^ a b ( u ) → d N ( 0 , σ a b n ( u ) ) n^{1/2} \hat{\delta}_{ab}(u)\overset{d}{\rightarrow}N(0,\sigma _{ab}^{n}(u)) n1/2δ^ab(u)dN(0,σabn(u))。式中, → d \overset{d}{\rightarrow} d表示依分布收敛。

定理13 X t = ( X 1 , t , X 2 , t , . . . , X k , t ) ( t ∈ Z ) X_{t}=(X_{1,t} , X_{2,t},...,X_{k,t})(t\in Z) Xt=(X1,t,X2,t,...,Xk,t)(tZ)为独立同分布时间序列的假设下,当样本量 n → ∞ n\to \infty n时, D ^ a b ( u ) \hat{D}_{ab}(u) D^ab(u)的渐近分布为 n 1 / 2 D ^ a b ( u ) → d N ( 0 , σ a b n ) n^{1/2} \hat{D}_{ab}(u)\overset{d}{\rightarrow}N(0,\sigma _{ab}^{n}) n1/2D^ab(u)dN(0,σabn)。式中, → d \overset{d}{\rightarrow} d表示依分布收敛。

基于条件互信息统计量检验分量序列之间条件独立性的具体步骤如下:
1.对初始样本序列 x 1 , x 2 , . . . , x n x_{1} , x_{2},...,x_{n} x1,x2,...,xn,计算统计量取值 D ^ a b \hat{D}_{ab} D^ab.
2.从 x 1 , x 2 , . . . , x n x_{1} , x_{2},...,x_{n} x1,x2,...,xn产生置换样本 x ~ 1 = ( x ~ 1 , t , x ~ 2 , t , . . . , x ~ k , t ) \tilde{x}_{1}=(\tilde{x}_{1,t},\tilde{x}_{2,t},...,\tilde{x}_{k,t}) x~1=(x~1,t,x~2,t,...,x~k,t)
3.计算 x ~ 1 , t , x ~ 2 , t , . . . , x ~ k , t \tilde{x}_{1,t},\tilde{x}_{2,t},...,\tilde{x}_{k,t} x~1,t,x~2,t,...,x~k,t的检验统计量取值,记为 D ∼ a b D\sim _{ab} Dab.
4.步骤2-3重复B次,用B表示得到的置换样本个数。
5.计算检验的单边显著性概率
p ^ a b = 1 + ♯ [ D ~ a b ≥ D ^ a b ] 1 + B \hat{p}_{ab}=\frac{1+\sharp [\tilde{D}_{ab}\ge \hat{D}_{ab}]}{1+B} p^ab=1+B1+[D~abD^ab],式中, ♯ [ D ~ a b ≥ D ^ a b ] \sharp [\tilde{D}_{ab}\ge \hat{D}_{ab}] [D~abD^ab]表示根据B个置换样本计算的 D ~ a b \tilde{D}_{ab} D~ab中大于 D ^ a b \hat{D}_{ab} D^ab的个数。
6.如果 p ^ a b ≤ α \hat{p}_{ab}\le \alpha p^abα,则拒绝分类序列 X a X_{a} Xa X b X_{b} Xb之间的条件独立性的原假设,其中 α \alpha α表示选定的显著性水平。
条件互信息图G可以按下式建立:
p ^ a b ≤ α ⇒ ( a , b ) ∈ E , a , b ∈ V , a ≠ b \hat{p}_{ab}\le \alpha\Rightarrow (a,b)\in E,a,b\in V,a\ne b p^abα(a,b)E,a,bV,a=b

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARIMA(差分自回归移动平均模型)是一种常用的时间序列分析和预测方法,它可以用来分析和预测未来的趋势和周期性变化。在Python中,使用statsmodels包可以很方便地建立ARIMA模型。下面是一个使用Python建立ARIMA模型的示例代码: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from statsmodels.tsa.stattools import adfuller from statsmodels.tsa.arima_model import ARIMA # 读取数据 data = pd.read_csv('data.csv', index_col=0, parse_dates=True) # 检验时间序列的平稳性 def test_stationarity(timeseries): # 计算移动平均和移动标准差 rolling_mean = timeseries.rolling(window=12).mean() rolling_std = timeseries.rolling(window=12).std() # 绘制移动平均和移动标准差像 plt.plot(timeseries, color='blue', label='Original') plt.plot(rolling_mean, color='red', label='Rolling Mean') plt.plot(rolling_std, color='black', label='Rolling Std') plt.legend(loc='best') plt.title('Rolling Mean & Standard Deviation') plt.show() # 进行DF检验 print('Results of Dickey-Fuller Test:') dftest = adfuller(timeseries, autolag='AIC') dfoutput = pd.Series(dftest[0:4], index=['Test Statistic', 'p-value', '#Lags Used', 'Number of Observations Used']) for key, value in dftest[4].items(): dfoutput['Critical Value (%s)' % key] = value print(dfoutput) # 对时间序列进行差分操作 def difference(timeseries): diff = timeseries.diff() diff.dropna(inplace=True) return diff # 建立ARIMA模型 def arima_model(timeseries): # 对时间序列进行差分操作 diff = difference(timeseries) # 检验差分后的时间序列的平稳性 test_stationarity(diff) # 选择模型参数 p = range(0, 3) d = range(0, 3) q = range(0, 3) pdq = [(x, y, z) for x in p for y in d for z in q] aic = [] for i in pdq: try: model = ARIMA(timeseries, order=i) result = model.fit(disp=0) aic.append(result.aic) except: continue index = aic.index(min(aic)) best_pdq = pdq[index] # 建立ARIMA模型并进行预测 model = ARIMA(timeseries, order=best_pdq) result = model.fit(disp=0) pred = result.predict(start='2018-01-01', end='2019-01-01', dynamic=True) # 绘制预测结果像 plt.plot(timeseries, label='Original') plt.plot(pred, color='red', label='Predicted') plt.legend(loc='best') plt.title('ARIMA') plt.show() # 运行ARIMA模型 arima_model(data) ``` 以上代码中,我们首先使用pandas读取时间序列数据,并使用matplotlib绘制原始数据的像,用于观察时间序列的趋势和周期性变化。接着,我们使用DF检验方法检验时间序列的平稳性,如果时间序列不平稳,我们使用差分方法将其转化为平稳时间序列。然后,我们使用ARIMA模型时间序列进行建模和预测,最后使用matplotlib绘制预测结果像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值