statsmodels.graphics.functional.banddepth(data, method='MBD')[source]

Calculate the band depth for a set of functional curves.

Band depth is an order statistic for functional data (see fboxplot), with a higher band depth indicating larger “centrality”. In analog to scalar data, the functional curve with highest band depth is called the median curve, and the band made up from the first N/2 of N curves is the 50% central region.


data : ndarray

The vectors of functions to create a functional boxplot from. The first axis is the function index, the second axis the one along which the function is defined. So data[0, :] is the first functional curve.

method : {‘MBD’, ‘BD2’}, optional

Whether to use the original band depth (with J=2) of [R1] or the modified band depth. See Notes for details.


depth : ndarray

Depth values for functional curves.


Functional band depth as an order statistic for functional data was proposed in [R1] and applied to functional boxplots and bagplots in [R2].

The method ‘BD2’ checks for each curve whether it lies completely inside bands constructed from two curves. All permutations of two curves in the set of curves are used, and the band depth is normalized to one. Due to the complete curve having to fall within the band, this method yields a lot of ties.

The method ‘MBD’ is similar to ‘BD2’, but checks the fraction of the curve falling within the bands. It therefore generates very few ties.


[R1](1, 2, 3) S. Lopez-Pintado and J. Romo, “On the Concept of Depth for Functional Data”, Journal of the American Statistical Association, vol. 104, pp. 718-734, 2009.
[R2](1, 2) Y. Sun and M.G. Genton, “Functional Boxplots”, Journal of Computational and Graphical Statistics, vol. 20, pp. 1-19, 2011.

Previous topic


Next topic


This Page