SpaceTime: Causal Discovery from Non-Stationary Time Series

Sarah Mameche, Lénaïg Cornanguer, Urmi Ninad, Jilles Vreeken
1/17/2025
cs.LG

No official code found. Best implementation: srhmm/spacetime (12 stars, MIT, last commit 2025-08-09).

Abstract

Understanding causality is challenging and often complicated by changing causal relationships over time and across environments. Climate patterns, for example, shift over time with recurring seasonal trends, while also depending on geographical characteristics such as ecosystem variability. Existing methods for discovering causal graphs from time series either assume stationarity, do not permit both temporal and spatial distribution changes, or are unaware of locations with the same causal relationships. In this work, we therefore unify the three tasks of causal graph discovery in the non-stationary multi-context setting, of reconstructing temporal regimes, and of partitioning datasets and time intervals into those where invariant causal relationships hold. To construct a consistent score that forms the basis of our method, we employ the Minimum Description Length principle. Our resulting algorithm SPACETIME simultaneously accounts for heterogeneity across space and non-stationarity over time. Given multiple time series, it discovers regime changepoints and a temporal causal graph using non-parametric functional modeling and kernelized discrepancy testing. We also show that our method provides insights into real-world phenomena such as river-runoff measured at different catchments and biosphere-atmosphere interactions across ecosystems.

View on arXivView PDF

Code Implementations(1)

srhmm/spacetimeCommunity70%
MIT

SpaceTime: Causal Discovery from Non-Stationary Time Series

121Python, Jupyter NotebookJan 29, 20251 years agoMIT

Similar Papers

Cite this paper

@article{mameche2025spacetime,
  title  = {SpaceTime: Causal Discovery from Non-Stationary Time Series},
  author = {Sarah Mameche and Lénaïg Cornanguer and Urmi Ninad and Jilles Vreeken},
  year   = {2025},
  eprint = {2501.10235},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2501.10235v1}
}

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/2501.10235.svg)](https://codeofpaper.com/paper/2501.10235)

Discussion