biweight_scale#
- astropy.stats.biweight_scale(data, c=9.0, M=None, axis=None, modify_sample_size=False, *, ignore_nan=False)[源代码]#
计算体重秤。
双权标度是确定分布标准差的稳健统计。它是 biweight midvariance . 计算公式如下:
\[\zeta_{biscl} = \sqrt{n} \ \frac{\sqrt{\sum_{|u_i| < 1} \ (x_i - M)^2 (1 - u_i^2)^4}} {|(\sum_{|u_i| < 1} \ (1 - u_i^2) (1 - 5u_i^2))|}\]在哪里? \(x\) 是输入数据, \(M\) 是样本中值(或输入位置)和 \(u_i\) 计算公式:
\[u{i}=\frac{(x}i-M)}{c*MAD}\]在哪里? \(c\) 调谐是否恒定且 \(MAD\) 是 median absolute deviation . 双权中方差调谐常数
c
通常为9.0(默认值)。如果 \(MAD\) 为零,则返回零。
对于体重秤的标准定义, \(n\) 数组中(或沿输入方向)的总点数
axis
,如果指定)。如果modify_sample_size
是False
,这是默认值。然而,如果
modify_sample_size = True
然后 \(n\) 是指 \(|u_i| < 1\) 不合格的数量,即。\[n=总和_{ |u_i| <1}\1\]对于小样本量或大量不合格值,其值更接近真实标准差。
- 参数:
- data : array_likeNumpy:ARRAY_LIKE
可以转换为数组的输入数组或对象。
data
可以是MaskedArray
.- c :
float
,可选Python:Float,可选 双权重估计器的调整常数(默认值=9.0)。
- M :
float
或 array_like ,可选PYTHON:FLOAT或NumPY:ARRAY_LIKE,可选 位置估计。如果
M
是标量值,则其值将用于整个数组(或沿每个数组使用axis
,如果指定)。如果M
是一个数组,那么它必须是一个数组,其中包含每个数组的位置估计值axis
输入数组的。如果None
(默认),则将使用输入数组的中值(或沿每个数组)axis
,如果指定)。- axis :
None
,int
,或tuple
的int
,可选PYTHON:NONE、PYTHON:INT或PYTHON:TUTPLE OF PYTHON:INT,可选 计算双重秤所沿的轴。如果
None
(默认),然后将计算平坦输入数组的双权重比例。- modify_sample_size : bool ,可选可选的布尔
如果
False
(默认),则使用的样本大小是数组中(或沿输入方向)的元素总数axis
,如有规定),则遵循双重秤的标准定义。如果True
,然后减少样本量以校正任何拒绝值(即所使用的样本量仅包括非拒绝值),这使得小样本量或大量拒绝值的值更接近真实标准差。- ignore_nan : bool ,可选可选的布尔
是否忽略输入中的NaN值
data
.
- 返回:
参见
工具书类
[1]比尔斯、弗林和格哈特(1990;AJ 100、32)(https://ui.adsabs.harvard.edu/abs/1990AJ….100…32B)
实例
从高斯分布生成随机变量,并返回分布的双权重比例:
>>> import numpy as np >>> from astropy.stats import biweight_scale >>> rand = np.random.default_rng(12345) >>> biscl = biweight_scale(rand.standard_normal(1000)) >>> print(biscl) 1.0239311812635818