biweight_midvariance¶

astropy.stats.
biweight_midvariance
(a, c=9.0, M=None, axis=None)[source] [edit on github]¶ Compute the biweight midvariance.
The biweight midvariance is a robust statistic for determining the midvariance (i.e. the standard deviation) of a distribution. It is given by:
\[\begin{split}C_{bl}= (n')^{1/2} \frac{[\Sigma_{u_i<1} (x_iM)^2(1u_i^2)^4]^{0.5}} {\Sigma_{u_i<1} (1u_i^2)(15u_i^2)}\end{split}\]where \(u_i\) is given by
\[u_{i} = \frac{(x_iM)}{c MAD}\]where \(c\) is the tuning constant and \(MAD\) is the median absolute deviation. The midvariance tuning constant
c
is typically 9.0.\(n'\) is the number of points for which \(u_i < 1\) holds, while the summations are over all \(i\) up to \(n\):
\[\begin{split}n' = \Sigma_{u_i<1}^n 1\end{split}\]This is slightly different than given in the reference below, but results in a value closer to the true midvariance.
For more details, see Beers, Flynn, and Gebhardt (1990); AJ 100, 32.
Parameters: a : arraylike
Input array or object that can be converted to an array.
c : float, optional
Tuning constant for the biweight estimator. Default value is 9.0.
M : float or arraylike, optional
Initial guess for the biweight location. An array can be input when using the
axis
keyword.axis : int, optional
Axis along which the biweight midvariances are computed. The default (
None
) is to compute the biweight midvariance of the flattened array.Returns: biweight_midvariance : float or
ndarray
See also
Examples
Generate random variates from a Gaussian distribution and return the biweight midvariance of the distribution:
>>> import numpy as np >>> from astropy.stats import biweight_midvariance >>> rand = np.random.RandomState(12345) >>> from numpy.random import randn >>> bmv = biweight_midvariance(rand.randn(1000)) >>> print(bmv) 0.986726249291