データポイントとしての上位値または下位四分位数からの1.5 * IQRを超える外れ値の古典的な定義では、非歪分布の仮定があります。歪んだ分布(指数関数、ポアソン、幾何学など)の場合、元の関数の変換を分析して外れ値を検出するのに最適な方法ですか?
たとえば、指数分布で緩やかに管理されている分布は、対数関数で変換できます-どの時点で、同じIQR定義に基づいて外れ値を探すことは許容できますか?
データポイントとしての上位値または下位四分位数からの1.5 * IQRを超える外れ値の古典的な定義では、非歪分布の仮定があります。歪んだ分布(指数関数、ポアソン、幾何学など)の場合、元の関数の変換を分析して外れ値を検出するのに最適な方法ですか?
たとえば、指数分布で緩やかに管理されている分布は、対数関数で変換できます-どの時点で、同じIQR定義に基づいて外れ値を探すことは許容できますか?
回答:
データポイントとしての外れ値の古典的な定義の下では、上位または下位の四分位からの1.5 * IQRよりも優先されます。
これは、箱ひげ図のひげの端の外側の点を識別するための規則です。テューキー自身は、これに基づいてそれらを外れ値と呼ぶことに疑いの余地はないでしょう(彼は必ずしもそれらの範囲外の点を外れ値とは見なしませんでした)。これらはむしろ、-あなたのデータが正規分布にいくらか似た分布からのものであると予想される場合-さらなる調査(例えば、2桁を転置していないことを確認するなど)の対象になる可能性があります外れ値になる可能性があります。Nick Coxがこの回答にあるコメントで指摘しているように、多くのそのようなポイントのテールは、ポイントを外れ値と見なす必要性の表示よりも、再表現が適切である可能性があることを示す指標と見なされます。
スキューのない分布の仮定があります。
「歪んでいない」とは対称的であると想定しています。そして、仮定はそれ以上のものです。裾が大きく対称な分布には、その規則の境界の外側に多くの点がある場合があります。
歪んだ分布(指数関数、ポアソン、幾何学など)の場合、元の関数の変換を分析して外れ値を検出するのに最適な方法ですか?
それはあなたの目的にとって何が異常値を構成するかに依存します。各目的に適した単一の定義はありません-実際、一般的には、(たとえば)外れ値を選択してそれらを省略する他のことを行う方がよいでしょう。
指数または幾何の場合、箱ひげ図の計算と同様の計算を行うことができますが、右端のみで同様の分数を識別します(指数または幾何で識別されるローエンドポイントはありません)† ..または、あなたは何か他のことをするかもしれません。
大規模なサンプルでは、箱ひげ図は各端で約0.35%のポイント、または合計で約0.7%をマークします。指数関数の場合、たとえば中央値の倍数をマークできます。実際の指数関数で合計約0.7%のポイントにタグを付ける場合、中央値の約7.1倍を超えるポイントをマークすることをお勧めします。
n = 1000の中央値の7.1倍を超えるポイントをマークすると、通常は値の0.4%から1.1%の間にヒットします。
ae <- rexp(1000)
table( ae > 7.1*median(ae) )
FALSE TRUE
993 7
たとえば、指数分布で緩やかに管理されている分布は、対数関数で変換できます-どの時点で、同じIQR定義に基づいて外れ値を探すことは許容できますか?
それは、「許容できる」という意味に完全に依存します。ただし、次のことに注意してください-
i)結果として得られる分布は、実際には対称ではなく、明らかに左斜めになっています。
その結果、実際にそうでない場合を除き、通常は右(「外れ値」が存在する可能性がある)ではなく、左端(つまり、指数値があると思われるゼロに近い)にのみポイントをマークします。極端な。
ii)そのようなルールの適合性は、あなたがしていることに大きく依存するでしょう。
推測に影響する奇妙な奇妙な値が心配な場合は、一般に、外れ値を正式に識別するよりも堅牢な手順を使用した方がよいでしょう。
変換された指数データまたはポアソンデータに法線ベースのルールを本当に使用する場合は、少なくともポアソンの平方根‡に適用することをお勧めします(平均が小さすぎない限り、そして、指数関数(および、おそらく拡張により、幾何学)の立方根または4番目の根になります。
またはおそらく √、Anscombe変換と同様
指数関数の場合、大規模なサンプルでは、キューブルートアプローチは上尾のみに点をマークする傾向があり(通常の場合、上尾にマークするのとほぼ同じレートで)、第4ルートアプローチは両方の尾に点をマークします(わずかにより低い尾部で、合計が通常の場合の割合の40%近く)。可能性のうち、キューブルートは他の2つよりも理にかなっていますが、これを必ずしも厳格なルールとして使用することをお勧めしません。
私はあなたが質問したのとは逆の順序であなたの質問に答えるので、博覧会は特定のものから一般のものへと進みます。
まず、少数の外れ値を除いて、データの大部分が既知の分布(この場合は指数)で十分に記述できると仮定できる状況を考えてみましょう。
パラメーターの通常のMLE推定量は[0、p 506]です。
そして
以下に例を示しR
ます。
n<-100
theta<-1
sigma<-2
set.seed(123) #for reproducibility
x<-rexp(n,rate=1/sigma)+theta
mean(x)-min(x)
m<-floor(0.2*n)
y<-x
y[1:m]<--y[1:m]
mean(y)-min(y)
m<-floor(0.2*n)
z<-x
z[1:m]<-100*z[1:m]
mean(z)-min(z)
生のMLEの代わりに、(a)堅牢な外れ値識別ルールを使用して外れ値を見つけ、(b)それらをスプリアスデータとして取っておき、(c)サンプルの非スプリアス部分でMLEを計算します。
これらの堅牢な外れ値識別ルールの中で最もよく知られているのは、Gaussに起因するHampel [3]によって提案されたmed / madルールです(このルールをここに示しました)。med / madルールでは、棄却のしきい値は、サンプルの真の観測値が正規分布で近似されているという仮定に基づいています。
もちろん、追加の情報がある場合(この例のように、真の観測値の分布がポアソン分布によく近似していることを知っているなど)、データの変換とベースラインの外れ値拒否ルールの使用を妨げるものは何もありません( med / mad)しかし、これはデータを変換して結局はアドホックルールを保持するために少し厄介であると感じます。
データを保存するが拒否ルールを適応させる方がはるかに理にかなっています。次に、上記の最初のリンクで説明した3ステップの手順を引き続き使用しますが、拒否しきい値を分布に適合させると、データの大部分が疑われることになります。以下に、本物の観測値が指数分布にうまく適合している状況での棄却ルールを示します。この場合、次のルールを使用して適切な拒否しきい値を構築できます。
2)[2、p 188]以外のすべての観測値を偽として拒否する
(上記のルールの係数9は、上記のGlen_bの回答の7.1として取得されますが、より高いカットオフを使用します。係数(1 + 2 / n)は、[2]のシミュレーションによって導出された小さなサンプル補正係数です。サンプルサイズが十分に大きい場合、基本的に1)です。
前の例でこのルールを使用すると、次の結果が得られます。
library(robustbase)
theta<-median(x)-Qn(x,constant=3.476)*log(2)
clean<-which(x>=theta & x<=9*(1+2/n)*median(x)+theta)
mean(x[clean])-min(x[clean])
theta<-median(y)-Qn(y,constant=3.476)*log(2)
clean<-which(y>=theta & y<=9*(1+2/n)*median(y)+theta)
mean(y[clean])-min(y[clean])
3番目の例:
theta<-median(z)-Qn(z,constant=3.476)*log(2)
clean<-which(z>=theta & z<=9*(1+2/n)*median(z)+theta)
mean(z[clean])-min(z[clean])
さて、対称分布ではできないことを知らないだけで、観測の大部分に適合する適切な候補分布がない一般的な場合には、調整されたboxplot [4]を使用できます。これは、データの歪度の(非パラメトリックで異常なロバストな)尺度を考慮した箱ひげ図の一般化です(したがって、データの大部分が対称である場合、通常の箱ひげ図に折りたたまれます)。また、この回答を図で確認することもできます。
最初に、私は定義に疑問を投げかけます。古典的であろうとなかろうと。「外れ値」は驚くべき点です。特定のルールを使用することは(対称分布の場合でも)、特に今日では非常に多くの巨大なデータセットが存在する場合、欠陥のあるアイデアです。(たとえば)100万回の観測(一部のフィールドではそれほど大きくない)のデータセットでは、たとえ分布が完全に正規であっても、1.5 IQRの制限を超える多くのケースがあります。
次に、元のデータの外れ値を探すことをお勧めします。ほとんど常により直感的です。たとえば、収入データでは、ログを取得することは非常に一般的です。しかし、ここでも元のスケールの外れ値(ドルまたはユーロなど)を探します。これは、このような数値の方が使いやすいからです。(ログを取得する場合は、少なくとも外れ値を検出するために、少なくとも少し直感的であるため、ログベース10をお勧めします)。
第三に、外れ値を探すときは、マスキングに注意してください。
最後に、現在、さまざまな種類のデータと問題に対してアトキンソンとリアニによって提案された「前方検索」アルゴリズムを研究しています。これは非常に有望に見えます。
1.5*IQR
に、外れ値の定義は普遍的に受け入れられていません。質問をアンロードして、解決しようとしている問題を拡大してみてください。