biweight_midvariance¶
-
astropy.stats.
biweight_midvariance
(a, c=9.0, M=None)[source] [edit on github]¶ Compute the biweight midvariance for an array.
Returns the biweight midvariance for the array elements. The biweight midvariance is a robust statistic for determining the midvariance (i.e. the standard deviation) of a distribution.
The biweight location is given by the following equation
\[\begin{split}C_{bl}= (n')^{1/2} \frac{[\Sigma_{|u_i|<1} (x_i-M)^2(1-u_i^2)^4]^{0.5}} {|\Sigma_{|u_i|<1} (1-u_i^2)(1-5u_i^2)|}\end{split}\]where \(u_i\) is given by
\[u_{i} = \frac{(x_i-M)}{cMAD}\]where MAD is the median absolute deviation.
\(n'\) is the number of data 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.
The midvariance parameter c is typically 9.0.
For more details, see Beers, Flynn, and Gebhardt, 1990, AJ, 100, 32B
Parameters: a : array-like
Input array or object that can be converted to an array.
c : float
Tuning constant for the biweight estimator. Default value is 9.0.
M : float, optional
Initial guess for the biweight location.
Returns: biweight_midvariance : float
Returns the biweight midvariance for the array elements.
See also
Examples
This will generate random variates from a Gaussian distribution and return the biweight midvariance of the distribution:
>>> from astropy.stats.funcs import biweight_midvariance >>> from numpy.random import randn >>> randvar = randn(10000) >>> scl = biweight_midvariance(randvar)