scipy.stats.mstats.

hdquantiles#

scipy.stats.mstats.hdquantiles(data, prob=(0.25, 0.5, 0.75), axis=None, var=False)[source]#

Computes quantile estimates with the Harrell-Davis method.

The quantile estimates are calculated as a weighted linear combination of order statistics.

Deprecated since version 2.0.0: scipy.stats.mstats.hdquantiles is deprecated as of SciPy 2.0.0 and will be removed, along with the scipy.stats.mstats namespace, in SciPy 2.4.0. For similar functionality, use scipy.stats.quantile with MArray(s) instead of NumPy masked array(s).

Parameters:
dataarray_like

Data array.

probsequence, optional

Sequence of probabilities at which to compute the quantiles.

axisint or None, optional

Axis along which to compute the quantiles. If None, use a flattened array.

varbool, optional

Whether to return the variance of the estimate.

Returns:
hdquantilesMaskedArray

A (p,) array of quantiles (if var is False), or a (2,p) array of quantiles and variances (if var is True), where p is the number of quantiles.

See also

hdquantiles_sd

Examples

>>> import numpy as np
>>> from scipy.stats.mstats import hdquantiles
>>>
>>> # Sample data
>>> data = np.array([1.2, 2.5, 3.7, 4.0, 5.1, 6.3, 7.0, 8.2, 9.4])
>>>
>>> # Probabilities at which to compute quantiles
>>> probabilities = [0.25, 0.5, 0.75]
>>>
>>> # Compute Harrell-Davis quantile estimates
>>> quantile_estimates = hdquantiles(data, prob=probabilities)
>>>
>>> # Display the quantile estimates
>>> for i, quantile in enumerate(probabilities):
...     print(f"{int(quantile * 100)}th percentile: {quantile_estimates[i]}")
25th percentile: 3.1505820231763066 # may vary
50th percentile: 5.194344084883956
75th percentile: 7.430626414674935