Researchers develope software for finding tipping points and critical network structures
If you wanted to know whether shifts in the African climate during Paleolithic times correlated with the appearance and disappearance of hominin species, how would you find the answer? It's a tricky question because of the massive amounts of noisy, complicated data you would need to analyze.
Now researchers in Germany have developed a new tool to help grapple with enormous data sets and reveal big picture trends, such as climatic tipping points and their effects on species. The researchers created a software package based on the Python programming language that unifies complex network theory and nonlinear time series analysis - two important data analysis concepts.
A complex network is just that - a social, biological or technological network with patterns of connections that are neither regular nor purely random. Nonlinear time series analyses are often used to look at complex systems, including those that unfold in a chaotic manner. Many natural phenomena, like changing weather patterns, are nonlinear in nature—as are man-made systems, like financial markets.
The researchers named the software that unifies the two concepts pyunicorn. They discuss their findings in this week's CHAOS.
"Pyunicorn works like a macroscope, [which], if used the right way, allows to distill the essence of information from a network or time series data," said Jonathan Donges, a former Ph.D. student in the group of Jürgen Kurths and co-speaker of a flagship project, called COPAN, at the Potsdam Institute for Climate Impact Research (PIK) in Germany, which aims to develop conceptual models of global socio-environmental dynamics.
The software could be used to identify critical network structures, such as bottlenecks and backbones, for transport processes, as well as revealing tipping points in climatological or physiological time series.
Accordingly, the package's main application is the analysis of data from observations, experiments and model systems by way of graphs and time series of several quantities in parallel, such as temperature, precipitation and wind for climate, or blood pressure and breathing for physiology. By applying recurrence network analysis, which studies when a system returns to a former state, pyunicorn was able to detect tipping points in time series. This includes the aforementioned paleoclimate records, as well as the early emergence of a severe condition in pregnant women known as preeclampsia.
Donges's previous work has involved complex networks and nonlinear time series analysis and their applications to real world data analysis. Developing the pyunicorn package involved collaborators at PIK, Humboldt University Berlin, the Stockholm Resilience Centre, Institute for Marine and Atmospheric Research Utrecht, University of Aberdeen and Nishny Novgorod State University, located respectively in Germany, Sweden, The Netherlands, the United Kingdom and Russia.
"Many of these methods were newly developed by our team and, moreover, there was a lack of coherent software implementations for existing methods," said Donges. "Pyunicorn was developed to close this gap and to provide an integrative software framework for applying and further developing methods for complex networks and nonlinear time series analysis and their combinations."
As its name might imply, pyunicorn is written in Python, a popular open-source programming language. The package is designed in a modular fashion that makes it easy to use in different settings, ranging from interactive analysis sessions on laptops to large-scale parallel data analysis on supercomputer clusters. As with all Python software, pyunicorn runs on a variety of operating systems, including Linux, Mac OSX, Windows and Android.
The software's versatility fulfills a key aim of the project, which was to make the software publicly available and easy to use for researchers and practitioners in a variety of fields, ranging from complex systems science to climatology, medicine, neuroscience, economics and engineering.
"Many of the provided methods were not freely available before to the scientific community, and weren't available in the flexible and popular Python programming language," said Jürgen Kurths, who supervised the work.
Future work for Donges and his colleagues involves speeding up the package's code and ensuring compatibility with the Python 3.x platform. Donges remains optimistic but cautious about the uses of the package.
"Combining well-known approaches in a new way can yield exciting insights and perspectives in complex systems science," he said. "Software packages such as pyunicorn can be highly useful in catalyzing this process, but need to be applied in a thoughtful and theory-based way. Otherwise, the result might be junk science."
The pyunicorn package can be freely downloaded at: https://github.com/pik-copan/pyunicorn.