Multifractals
Over the last decades fractal analyses have revolutionised many fields of science. Such metrics are relevant to fields ranging from economics to neuroscience. However, some objects cannot be accurately described with a single scaling factor — fractal dimension —
The multifractal spectrum
The multifractal spectum represents the Holder exponents and their Hausdorff dimensions for an object. Such spectra can be evaluated according to their geometric properties, mainly width (
The Chhabra-Jensen method
There are several different algorithms that allow the obtention of multifractal spectra from time series. The most famous are the MF-DFA (Gu and Zhou 2010), MF-DMA (Kantelhardt et al. 2002), and Chhabra-Jensen (Chhabra and Jensen 1989).
The Chhabra and Jensen (1989) method, amongst other advantages, allows the direct obtention of the multifractal spectra without the use of a Legendre’s transform (Chhabra and Jensen 1989; Biswas, Cresswell, and Bing 2012; Lucas G. Souza França et al. 2018; Lucas Gabriel Souza França, Montoya, and Miranda 2019). The spectra are obtained directly from the two parametric equations @ref(eq:alpha) and @ref(eq:falpha).
Runing the script
The script used in Lucas G. Souza França et al. (2018) can be downloaded from my Github repository and is currently available in Python and Matlab (if you would like to help the adaptation to other programming languages, please get in touch!). The script can be run as shown below:
Python
import chhabrajensen as chj
= chj.getSpectrum(Timeseries,qValues,scales) alpha,falpha,Dq,Rsqr_alpha,Rsqr_falpha,Rsqr_Dq,muScale,Md,Ma,Mf
Matlab
alpha,falpha,Dq,Rsqr_alpha,Rsqr_falpha,Rsqr_Dq,muScale,Md,Ma,Mf] = ChhabraJensen_Yuj_w0(Timeseries,qValues,scales) [
INPUT:
Timeseries, qValues, and scales are all row vectors.
{{% alert warning %}} This function assumes that your time series is all positive values and none of the qValues can be between 0 and 1. {{% /alert %}}
OUTPUT:
alpha (
{{% alert warning %}} For the correct obtention of multifractal spectra it is important that both qValues and scales are adequately defined. {{% /alert %}}
muScale (
Defining scales range
It is essential to define the range of scales from which the multifractal spectra are obtained to avoid overfitting and inaccuracies in the curves. This can be done by studying the partition function curves and selecting adequate scales.
On a log-log plot, the curves should be linear and scales that do not follow such trend can be easily identified. Figure 2 shows an example of partition function and linear regime.
Figure 2: Partition function by (dyadic) scale - linearised by the logarithm method. The scales show show a linear progression in this plot. Any scales that do not exhibit such pattern should be removed in order to obtain accurate estimates. In this case the first, the second, and the ninth scales, indicated by the dashed lines.
Defining range
It is also possible to define a family of dimensions
Figure 3: Example of generalised dimensions
Now you can perform your multifractal analyses
This was a quick guide on how to evaluate multifractal time series with the script presented at my Github repository. It is also recommended to add an extra protection against overffiting, if you are evaluating large amounts of data, by verifying the
References:
Citation
@online{frança2020,
author = {França, Lucas},
title = {Estimating Multifractal Spectra with {Chhabra-Jensen’s}
Method},
date = {2020-01-06},
url = {https://lfranca.uk/posts/multifractal-chj/},
langid = {en}
}