Searcharxiv⌕ Search

arXiv subjects

Kristian Agasøster Haaga

Publications and source records attributed to Kristian Agasøster Haaga.

3 recordsLinked to original sources

ComplexityMeasures.jl: scalable software to unify and accelerate entropy and complexity timeseries analysis

In the nonlinear timeseries analysis literature, countless quantities have been presented as new ``entropy'' or ``complexity'' measures, often with similar roles. The ever-increasing pool of such measures makes creating a sustainable and all-encompassing software for them difficult both conceptually and pragmatically. Such a software however would be an important tool that can aid researchers make an informed decision of which measure to use and for which application, as well as accelerate novel research. Here we present {ComplexityMeasures.jl}, an easily extendable and highly performant open-source software that implements a vast selection of complexity measures. The software provides 1638 measures with 3,841 lines of source code, averaging only 2.3 lines of code per exported quantity (version 3.7). This is made possible by its mathematically rigorous composable design. In this paper we discuss the software design and demonstrate how it can accelerate complexity-related research in the future. We carefully compare it with alternative software and conclude that {ComplexityMeasures.jl} outclasses the alternatives in several objective aspects of comparison, such as computational performance, overall amount of measures, reliability, and extendability. {ComplexityMeasures.jl} is also a component of the {DynamicalSystems.jl} library for nonlinear dynamics and nonlinear timeseries analysis and follows open source development practices for creating a sustainable community of developers and contributors.

cs.SE↗

A simple test for causality in complex systems

We provide a new solution to the long-standing problem of inferring causality from observations without modeling the unknown mechanisms. We show that the evolution of any dynamical system is related to a predictive asymmetry that quantifies causal connections from limited observations. A built-in significance criterion obviates surrogate testing and drastically improves computational efficiency. We validate our test on numerous synthetic systems exhibiting behavior commonly occurring in nature, from linear and nonlinear stochastic processes to systems exhibiting nonlinear deterministic chaos, and on real-world data with known ground truths. Applied to the controversial problem of glacial-interglacial sea level and CO$_{2}$ evolving in lock-step, our test uncovers empirical evidence for CO$_{2}$ as a driver of sea level over the last 800 thousand years. Our findings are relevant to any discipline where time series are used to study natural systems.

stat.AP↗

Transfer entropy computation using the Perron-Frobenius operator

We propose a method for computing the transfer entropy between time series using Ulam's approximation of the Perron-Frobenius (transfer) operator associated with the map generating the dynamics. Our method differs from standard transfer entropy estimators in that the invariant measure is estimated not directly from the data points but from the invariant distribution of the transfer operator approximated from the data points. For sparse time series and low embedding dimension, the transfer operator is approximated using a triangulation of the attractor, whereas for data-rich time series or higher embedding dimension we use a faster grid approach. We compare the performance of our methods with existing estimators such as the k nearest neighbors method and kernel density estimation method, using coupled instances of well known chaotic systems: coupled logistic maps and a coupled Rössler-Lorenz system. We find that our estimators are robust against moderate levels of noise. For sparse time series with less than a hundred observations and low embedding dimension, our triangulation estimator shows improved ability to detect coupling directionality, relative to standard transfer entropy estimators.

nlin.CD↗