biweight_scale

astropy.stats.biweight.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 = \sum_{|u_i| < 1} \ 1\]

これは、小さいサンプルサイズまたは大量の拒否値に対する値の方が真の標準偏差に近いことをもたらす。

パラメータ
dataアレイ式.

配列の入力配列やオブジェクトに変換することができる. data はい一つです。 MaskedArray それがそうです。

c浮動、オプション

デュアル重み推定器の定数(デフォルト値=9.0)を調整する。

M浮動小数点または類似配列、オプション

位置推定。もし…。 M スカラ値である場合、その値は、配列全体(または各配列に沿って)に使用されるであろう axis 指定されていれば)。もし…。 M 配列であれば、各位置推定値を含む配列でなければならない axis 配列を入力します。もし…。 None (デフォルト)、入力配列の中央値(またはそれぞれに沿って)が使用される axis 指定されていれば)。

axis無、整数、または整数タプル、オプション

1つ以上の軸であって、その軸に沿って二重秤を計算する。もし…。 None (デフォルト)は,フラットな入力配列の二重重みの割合を計算する.

modify_sample_sizeブル値、オプション

もし False (デフォルト)、使用されるサンプルサイズは、配列内の(または入力に沿って)要素の総数である axis 指定されていれば),重秤の基準に従って定義される.もし…。 True サンプルサイズは、任意の拒否値を補正するために減少され(すなわち、使用されるサンプルサイズは非拒否値のみを含む)、これは、より真の標準偏差に近い小さいサンプルサイズまたは大量の拒否値をもたらす。

ignore_nanブル値、オプション

入力中のNaN値を無視するかどうか data それがそうです。

返品
biweight_scale :浮動または ndarray浮遊や

入力データの二重重みの割合.もし…。 axis はい。 None スカラーを返しますそうでなければ開始されます ndarray 返されます。

参考文献

1

Beers,FlynnおよびGebhardt(1990;AJ 100,32)(https://ui.adsab.forforard.edu/abs/1990 AJ...100...32 B)

2

https://www.itl.nist.gov/div898/software/dataplot/refman2/auxillar/biwscale.htm

実例.

ガウス分布から乱数を生成し、この分布の二重スケールを返す:

>>> 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