2017-08-14 135 views
-1

私はPythonのData Scienceに関する本を読んでいます。著者は、シグマクリッピング操作を適用して、タイプミスのために異常値を削除します。しかし、プロセスは全く説明されていません。シグマクリッピングとは何ですか?どのようにそれを適用するかを知っていますか?

シグマクリッピングとは何ですか?特定のデータ(例えば、米国の出生率に使用されている書籍の中など)にのみ適用できますか?

quartiles = np.percentile(births['births'], [25, 50, 75]) #so we find the 25th, 50th, and 75th percentiles 
mu = quartiles[1] #we set mu = 50th percentile 
sig = 0.74 * (quartiles[2] - quartiles[0]) #??? 

This final line is a robust estimate of the sample mean, where the 0.74 comes 
from the interquartile range of a Gaussian distribution. 

なぜ0.74:テキストを1として

?これについての証拠はありますか?

+0

https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.sigmaclip.html – DyZ

+0

あなたの回答は役に立ちません。あなたは上記の質問を読んだことがありますか? – NRH

+0

大きく異なる質問が混在しています。 *シグマクリッピングとは何ですか?*上記のリンクで完璧に答えられています。 * 0.74?と引用された本のテキストは、シグマのクリッピングとは何の関係もなく、以下のように答えられます。 – kazemakase

答えて

3

データがあるとします。中央値mとその標準偏差sigmaを計算します。ある範囲のデータ(m-a*sigmam+a*sigma)のみをaの値に保ち、それ以外はすべて破棄します。これはシグマクリッピングの1回の繰り返しです。所定の回数だけ反復し続ける、および/またはシグマの値の相対的な減少が小さいときに停止する。

シグマクリッピングは、分布の平均などのより堅牢な(すなわち、外れ値に耐性の)推定を可能にするために、外れ値を除去することに向けられている。したがって、アウトライヤーを見つけることが期待されるデータにも適用できます。

0.74については、テキストごとに、ガウス分布の四分位範囲から来ています。

4

この最終行は、0.74ガウス分布の四分位範囲から 来るサンプルのロバスト推定平均、です。それだ

は、本当に...

コードが外れ値に対して、それは堅牢にするために四分位範囲を使用してシグマを推定しようとします。 0.74は補正係数です。標準正規分布sig==1

p1 = sp.stats.norm.ppf(0.25) # first quartile of standard normal distribution 
p2 = sp.stats.norm.ppf(0.75) # third quartile 
print(p2 - p1) # 1.3489795003921634 

sig = 1 # standard deviation of the standard normal distribution 
factor = sig/(p2 - p1) 
print(factor) # 0.74130110925280102 

と四分位範囲は1.35ある:ここではそれを計算する方法です。したがって、0.74は、四分位範囲をシグマにする補正係数です。もちろん、これは正規分布に対してのみ当てはまります。

+0

これは非常に参考になりました - ありがとう。 – NRH

関連する問題