Causal Discovery in Semi-Stationary Time Series

Shanyun Gao, Raghavendra Addanki, Tong Yu, Ryan A. Rossi, Murat Kocaoglu
2/3/2026

No official code found. Best implementation: CausalML-Lab/PCMCI-Omega (19 stars, last commit 2024-10-16).

Abstract

Discovering causal relations from observational time series without making the stationary assumption is a significant challenge. In practice, this challenge is common in many areas, such as retail sales, transportation systems, and medical science. Here, we consider this problem for a class of non-stationary time series. The structural causal model (SCM) of this type of time series, called the semi-stationary time series, exhibits that a finite number of different causal mechanisms occur sequentially and periodically across time. This model holds considerable practical utility because it can represent periodicity, including common occurrences such as seasonality and diurnal variation. We propose a constraint-based, non-parametric algorithm for discovering causal relations in this setting. The resulting algorithm, PCMCI$_{\Omega}$, can capture the alternating and recurring changes in the causal mechanisms and then identify the underlying causal graph with conditional independence (CI) tests. We show that this algorithm is sound in identifying causal relations on discrete time series. We validate the algorithm with extensive experiments on continuous and discrete simulated data. We also apply our algorithm to a real-world climate dataset.

View on arXivView PDF

Code Implementations(1)

Code for PCMCI-Ω algorithm from the NeurIPS'23 paper "Causal Discovery in Semi-Stationary Time Series"

190PythonOct 28, 20232 years ago

Similar Papers

Cite this paper

@article{gao2026causal,
  title  = {Causal Discovery in Semi-Stationary Time Series},
  author = {Shanyun Gao and Raghavendra Addanki and Tong Yu and Ryan A. Rossi and Murat Kocaoglu},
  year   = {2026},
  eprint = {2407.07291},
  archivePrefix = {arXiv},
  doi    = {10.48550/arXiv.2407.07291},
  url    = {https://arxiv.org/abs/2407.07291},
  journal = {NEURIPS 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.07291.svg)](https://codeofpaper.com/paper/2407.07291)

Discussion