A fast algorithm for computing a matrix transform used to detect trends in noisy data
Open Access Publications from the University of California

## A fast algorithm for computing a matrix transform used to detect trends in noisy data

• Author(s): Kestner, Dan
• Ierley, Glenn
• Kostinski, Alex
• et al.

## Published Web Location

https://doi.org/10.1016/j.cpc.2020.107382
Abstract

A recently discovered universal rank-based matrix method to extract trends from noisy time series is described in [1] but the formula for the output matrix elements, implemented there as an open-access supplement MATLAB computer code, is ${\cal O}(N^4)$, with $N$ the matrix dimension. This can become prohibitively large for time series with hundreds of sample points or more. Based on recurrence relations, here we derive a much faster ${\cal O}(N^2)$ algorithm and provide code implementations in MATLAB and in open-source JULIA. In some cases one has the output matrix and needs to solve an inverse problem to obtain the input matrix. A fast algorithm and code for this companion problem, also based on the above recurrence relations, are given. Finally, in the narrower, but common, domains of (i) trend detection and (ii) parameter estimation of a linear trend, users require, not the individual matrix elements, but simply their accumulated mean value. For this latter case we provide a yet faster ${\cal O}(N)$ heuristic approximation that relies on a series of rank one matrices. These algorithms are illustrated on a time series of high energy cosmic rays with $N > 4 \times 10^4$. [1] Universal Rank-Order Transform to Extract Signals from Noisy Data, Glenn Ierley and Alex Kostinski, Phys. Rev. X 9 031039 (2019).

Many UC-authored scholarly publications are freely available on this site because of the UC's open access policies. Let us know how this access is important for you.