Causal Discovery from Event Sequences by Local Cause-Effect Attribution

Joscha Cüppers, Sascha Xu, Ahmed Musa, J. Vreeken
2/3/2026

No confident code implementation found for this paper.

Abstract

Sequences of events, such as crashes in the stock market or outages in a network, contain strong temporal dependencies, whose understanding is crucial to react to and influence future events. In this paper, we study the problem of discovering the underlying causal structure from event sequences. To this end, we introduce a new causal model, where individual events of the cause trigger events of the effect with dynamic delays. We show that in contrast to existing methods based on Granger causality, our model is identifiable for both instant and delayed effects. We base our approach on the Algorithmic Markov Condition, by which we identify the true causal network as the one that minimizes the Kolmogorov complexity. As the Kolmogorov complexity is not computable, we instantiate our model using Minimum Description Length and show that the resulting score identifies the causal direction. To discover causal graphs, we introduce the C ASCADE algorithm, which adds edges in topological order. Extensive evaluation shows that C ASCADE outperforms existing methods in settings with instantaneous effects, noise, and multiple colliders, and discovers insightful causal graphs on real-world data.

DOISemantic Scholar

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Cite this paper

@article{cppers2026causal,
  title  = {Causal Discovery from Event Sequences by Local Cause-Effect Attribution},
  author = {Joscha Cüppers and Sascha Xu and Ahmed Musa and J. Vreeken},
  year   = {2026},
  doi    = {10.52202/079017-0763},
  url    = {https://doi.org/10.52202/079017-0763},
  journal = {NEURIPS 2024 2024}
}

Discussion