EffCause: Discover Dynamic Causal Relationships Efficiently from Time-Series
摘要
- Granger因果关系测试自提出以来,许多研究者对其进行了扩展。经典Granger因果关系测试旨在检测静态因果关系的存在,但其基本假设是因果关系的稳定性。
- 本研究提出,通过在发现快速变化的因果关系时使用足够短的时间窗口,可以近似保持因果关系的静态性。
- 研究者开发了EffCause算法,将动态性引入经典Granger因果关系测试,并通过优化方案提高了效率。
- 在模拟和真实世界数据集上的广泛实验验证了EffCause在连续因果发现任务中达到了最先进的准确度,并且计算速度更快。
- 通过云系统故障分析和交通流量监控的案例研究,EffCause有效地帮助我们理解现实世界的时间序列数据并解决实际问题。
贡献
- 我们提出了一种名为EffCause的多窗口因果发现算法,基于格兰杰因果性检验,能够从观测数据中发现现实世界因果关系的动态特性。
- 我们设计了两种优化算法用于多窗口因果发现,并通过理论计算复杂度和实验表明,我们的方案显著提高了动态因果分析的效率。
- 为了展示我们方法的有效性,我们在真实世界数据集上进行了多个详细案例研究,包括房屋温度数据集和交通数据集,并设计了一个基于因果分析算法的根因识别算法。
方法
我们在传统的格兰杰因果关系基础上构建了EffCause。EffCause采用成对分析方法来发现多维时间序列数据中的因果关系。我们为每一对数据测试滑动窗口以获得因果动态。然后,我们使用全局阈值算法从动态因果关系中构建因果图。接下来,我们首先介绍传统的格兰杰因果关系。下表列出了符号说明。
Notation | Definitions |
---|---|
M ∈ R N × T \mathrm{M} \in \mathbb{R}^{N \times T} M∈RN×T | Multivariate time series data |
N , T N, T N,T | Number of time series variables, length of the sliding window |
C i , j , t ∈ [ 0 , 1 ] \mathrm{C}_{i, j, t} \in[0,1] Ci,j,t∈[0,1] | Dynamic causality curve from v i v_i vi to v j v_j vj |
, w i f u l l , u i full , b f u l l , β , w_i^{f u l l}, u_i^{\text {full }}, b^{f u l l}, \beta ,wifull,uifull ,bfull,β | Parameters of the regression models |
ϵ t , ϵ \epsilon_t, \epsilon ϵt,ϵ | Noise term |
w i part , b part w_i^{\text {part }}, b^{\text {part }} wipart ,bpart | |
H p a r t , H f u l l , H [ s : e ] \mathcal{H}_{p a r t}, \mathcal{H}_{f u l l}, \mathcal{H}^{[s: e]} Hpart,Hfull,H[s:e] | Partial and full regression models, regression model for sliding window |
α , δ , p \alpha, \delta, p α,δ,p | [ s : e ] [s: e] [s:e] |
X , Y \mathrm{X}, \mathrm{Y} X,Y | Significance value, minimum sliding window length, maximum time lag |
Time series data in vector form |
动态格兰杰因果关系的预备知识
Granger因果性检验是第一个利用非对称时间顺序下的预测误差进行统计因果性测试的算法。例如,为了测试时间序列 x t x_t xt是否对时间序列 y t y_t yt产生因果影响,我们需要从不同的输入数据中学习 y t y_t yt的预测模型。基本思想是,如果引入来自 x t x_t xt的信息能够正面提高模型的准确性,我们就说 x t x_t xt对 y t y_t yt产生了因果影响。为了正式表达,我们定义了以下回归模型。
H part y ^ t = ∑ i = 1 p w i part y t − i + b part + ϵ t . H full y ^ t = ∑ i = 1 p ( w i full y t − i + u i full x t − i ) + b full + ϵ t . \begin{array}{ll} \mathcal{H}_{\text {part }} & \hat{y}_t=\sum_{i=1}^p w_i^{\text {part }} y_{t-i}+b^{\text {part }}+\epsilon_t . \\ \mathcal{H}_{\text {full }} & \hat{y}_t=\sum_{i=1}^p\left(w_i^{\text {full }} y_{t-i}+u_i^{\text {full }} x_{t-i}\right)+b^{\text {full }}+\epsilon_t . \end{array} Hpart Hfull y^t=∑i=1pwipart yt−i+bpart +ϵt.y^t=∑i=1p(wifull yt−i+uifull xt−i)+bfull +ϵt.
Here, y ^ t \hat{y}_t y^t 表示 y t y_t yt的预测值 and w i part , b part , w i full , u i full , b full w_i^{\text {part }}, b^{\text {part }}, w_i^{\text {full }}, u_i^{\text {full }}, b^{\text {full }} wipart ,bpart ,wifull ,uifull ,bfull 是回归参数。 ϵ t \epsilon_t ϵt 是噪声项。 p p p 是最大滞后。以模型 H full \mathcal{H}_{\text {full }} Hfull 为例,我们通常以向量形式表示回归:
Y = X β + ϵ ( 2 ) \mathrm{Y}=\mathbf{X} \beta+\epsilon\quad(2) Y=Xβ+ϵ(2)
其中
Y = [ y 1 , y 2 , … , y T ] T ∈ R T × 1 , β = [ w 1 full , w 2 full , … , w p full , u 1 full , u 2 full , … , u p full , b full ] T , X i = [ y i − 1 , y i − 2 , … , y i − p , x i − 1 , x i − 2 , … , x i − p , 1 ] , X ∈ R T × ( 2 p + 1 ) . ( 3 ) \begin{aligned} \mathbf{Y} & =\left[y_1, y_2, \ldots, y_T\right]^T \in \mathbb{R}^{T \times 1}, \\ \beta & =\left[w_1^{\text {full }}, w_2^{\text {full }}, \ldots, w_p^{\text {full }}, u_1^{\text {full }}, u_2^{\text {full }}, \ldots, u_p^{\text {full }}, b^{\text {full }}\right]^T, \\ \mathbf{X}_i & =\left[y_{i-1}, y_{i-2}, \ldots, y_{i-p}, x_{i-1}, x_{i-2}, \ldots, x_{i-p}, 1\right], \\ & \mathbf{X} \in \mathbb{R}^{T \times(2 p+1)} . \end{aligned}\quad(3) YβXi=[y1,y2,…,yT]T∈RT×1,=[w1full ,w2full ,…,wpfull ,u1full ,u2full ,…,upfull ,bfull ]T,=[yi−1,yi−2,…,yi−p,xi−1,xi−2,…,xi−p