Detrended fluctuation analysis
In
The obtained exponent is similar to the Hurst exponent, except that DFA may also be applied to signals whose underlying statistics (such as mean and variance) or dynamics are non-stationary (changing with time). It is related to measures based upon spectral techniques such as autocorrelation and Fourier transform.
Peng et al. introduced DFA in 1994 in a paper that has been cited over 3,000 times as of 2022[1] and represents an extension of the (ordinary) fluctuation analysis (FA), which is affected by non-stationarities.
Definition
Algorithm
Given: a time series .
Compute its average value .
Sum it into a process . This is the cumulative sum, or profile, of the original time series. For example, the profile of an
Select a set of integers, such that , the smallest , the largest , and the sequence is roughly distributed evenly in log-scale: . In other words, it is approximately a geometric progression.[2]
For each , divide the sequence into consecutive segments of length . Within each segment, compute the least squares straight-line fit (the local trend). Let be the resulting piecewise-linear fit.
Compute the root-mean-square deviation from the local trend (local fluctuation):
(If is not divisible by , then one can either discard the remainder of the sequence, or repeat the procedure on the reversed sequence, then take their root-mean-square.[3])
Make the log-log plot .[4][5]
Interpretation
A straight line of slope on the log-log plot indicates a statistical
The scaling exponent is a generalization of the Hurst exponent, with the precise value giving information about the series self-correlations:
- : anti-correlated
- : uncorrelated, white noise
- : correlated
- : 1/f-noise, pink noise
- : non-stationary, unbounded
- : Brownian noise
Because the expected displacement in an uncorrelated random walk of length N grows like , an exponent of would correspond to uncorrelated white noise. When the exponent is between 0 and 1, the result is
Pitfalls in interpretation
Though the DFA algorithm always produces a positive number for any time series, it does not necessarily imply that the time series is self-similar. Self-similarity requires the log-log graph to be sufficiently linear over a wide range of . Furthermore, a combination of techniques including maximum likelihood estimation (MLE), rather than least-squares has been shown to better approximate the scaling, or power-law, exponent.[6]
Also, there are many scaling exponent-like quantities that can be measured for a self-similar time series, including the divider dimension and Hurst exponent. Therefore, the DFA scaling exponent is not a
Generalizations
Generalization to polynomial trends (higher order DFA)
The standard DFA algorithm given above removes a linear trend in each segment. If we remove a degree-n polynomial trend in each segment, it is called DFAn, or higher order DFA.[7]
Since is a cumulative sum of , a linear trend in is a constant trend in , which is a constant trend in (visible as short sections of "flat plateaus"). In this regard, DFA1 removes the mean from segments of the time series before quantifying the fluctuation.
Similarly, a degree n trend in is a degree (n-1) trend in . For example, DFA1 removes linear trends from segments of the time series before quantifying the fluctuation, DFA1 removes parabolic trends from , and so on.
The Hurst R/S analysis removes constant trends in the original sequence and thus, in its detrending it is equivalent to DFA1.
Generalization to different moments (multifractal DFA)
DFA can be generalized by computing
Multifractal systems scale as a function . Essentially, the scaling exponents need not be independent of the scale of the system. In particular, DFA measures the scaling-behavior of the second moment-fluctuations.
Kantelhardt et al. intended this scaling exponent as a generalization of the classical Hurst exponent. The classical Hurst exponent corresponds to for stationary cases, and for nonstationary cases.[8][9][10]
Applications
The DFA method has been applied to many systems, e.g. DNA sequences,[11][12] neuronal oscillations,[10] speech pathology detection,[13] heartbeat fluctuation in different sleep stages,[14] and animal behavior pattern analysis.[15]
The effect of trends on DFA has been studied.[16]
Relations to other methods, for specific types of signal
For signals with power-law-decaying autocorrelation
In the case of power-law decaying auto-correlations, the correlation function decays with an exponent : . In addition the
- and
- .
The relations can be derived using the Wiener–Khinchin theorem. The relation of DFA to the power spectrum method has been well studied.[17]
Thus, is tied to the slope of the power spectrum and is used to describe the
For fractional Gaussian noise
For fractional Gaussian noise (FGN), we have , and thus , and , where is the Hurst exponent. for FGN is equal to .[18]
For fractional Brownian motion
For fractional Brownian motion (FBM), we have , and thus , and , where is the Hurst exponent. for FBM is equal to .[9] In this context, FBM is the cumulative sum or the integral of FGN, thus, the exponents of their power spectra differ by 2.
See also
- Multifractal system
- Self-organized criticality
- Self-affinity
- Time series analysis
- Hurst exponent
References
- S2CID 3498343.
- PMID 23226132.
- S2CID 119901219.
- S2CID 722880.
- PMID 22419991.
- S2CID 9155618.
- S2CID 55151698.
- ^ S2CID 18417413. Archived from the originalon 2018-08-28. Retrieved 2011-07-20.
- ^ a b Movahed, M. Sadegh; et al. (2006). "Multifractal detrended fluctuation analysis of sunspot time series". Journal of Statistical Mechanics: Theory and Experiment. 02.
- ^ PMID 23226132.
- ^ PMID 9963221.
- ^ Bunde A, Havlin S (1996). "Fractals and Disordered Systems, Springer, Berlin, Heidelberg, New York".
{{cite journal}}
: Cite journal requires|journal=
(help) - S2CID 11068261.
- S2CID 21568275.
- S2CID 254206934.
- S2CID 2524064.
- S2CID 10791480.
- .
External links
- Tutorial on how to calculate detrended fluctuation analysis Archived 2019-02-03 at the Wayback Machine in Matlab using the Neurophysiological Biomarker Toolbox.
- FastDFA MATLAB code for rapidly calculating the DFA scaling exponent on very large datasets.
- Physionet A good overview of DFA and C code to calculate it.
- MFDFA Python implementation of (Multifractal) Detrended Fluctuation Analysis.