カウントデータでの外れ値の検出


21

私は、多くの異なるカウントデータセットの外れ値の検出を伴う、かなり単純な問題であると単純に考えたものがあります。具体的には、一連のカウントデータ内の1つ以上の値が、分布内の残りのカウントと比較して予想よりも高いか低いかを判断します。

交絡要因は、3,500の分布に対してこれを行う必要があることであり、それらの一部はゼロ膨張した過分散ポアソンに適合する可能性がありますが、他のものは負の二項分布またはZINBに最も適合する可能性がありますが、他の分布は正規分布する可能性があります。このため、単純なZスコアまたは分布のプロットは、多くのデータセットには適していません。外れ値を検出するカウントデータの例を次に示します。

counts1=[1 1 1 0 2 1 1 0 0 1 1 1 1 1 0 0 0 0 1 2 1 1 2 1 1 1 1 0 0 1 0 1 1 1 1 0 
         0 0 0 0 1 2 1 1 1 1 1 1 0 1 1 2 0 0 0 1 0 1 2 1 1 0 2 1 1 1 0 0 1 0 0 0 
         2 0 1 1 0 2 1 0 1 1 0 0 2 1 0 1 1 1 1 2 0 3]
counts2=[0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
         1 1 0 0 0]
counts3=[14 13 14 14 14 14 13 14 14 14 14 14 15 14 14 14 14 14 14 15 14 13 14 14 
         15 12 13 17 13 14 14 14 14 15 14 14 13 14 13 14 14 14 14 13 14 14 14 15 
         15 14 14 14 14 14 15 14 1414 14 15 14 14 14 14 14 14 14 14 14 14 14 14 13 16]
counts4=[0 3 1.......]
and so on up to counts3500.

最初は、PythonまたはRでループを記述して、各分布にモデルのセットを適用し、AICまたはその他(Rのfitdistrplusかもしれません)に従って最適なモデルを選択する必要があると考えました。次に、与えられた分布の極値は何であるかを尋ねることができます(例えば、「4」のカウントは、上のcounts1分布の外れ値になりますか?)。しかし、これが有効な戦略であるかどうかはわかりません。また、カウントデータの外れ値を判断するための簡単な方法論があるかもしれません。私は広範囲に検索しましたが、見たいディストリビューションの数を考えると、私の問題にふさわしいものは何も見つかりませんでした。

私の最終的な目標は、最も統計的に適切な方法論を使用して、カウントの分布ごとにカウントの大幅な増加または減少を検出することです。

回答:


23

使用する近似手順自体が外れ値に向かって引き寄せられる傾向があるため(これはマスキング効果と呼ばれます)、データの古典的な近似からの観測の距離を使用して外れ値を確実に検出することはできません。外れ値を確実に検出する簡単な方法の1つは、提案した一般的な考え方(適合からの距離)を使用することですが、従来の推定値を、外れ値に左右されにくい堅牢な推定値に置き換えます。以下に、アイデアの一般的な図を示し、特定の問題の解決策について説明します。

N01

x<-c(-2.21,-1.84,-.95,-.91,-.36,-.19,-.11,-.1,.18,
.3,.31,.43,.51,.64,.67,.72,1.22,1.35,8.1,17.6)

(最後の2つは実際には.81と1.76であるはずですが、誤ってタイプミスされています)。

統計の比較に基づく外れ値検出ルールの使用

|バツアベバツ|SDバツ

SDSD

代わりに堅牢な統計を使用していた場合:

|バツmedバツ|怒ってバツ

zSD

(完全を期すために、一部の人々は、この年齢や日であっても、トリミングに基づいたより正確な推定値を使用するよりも、未加工の(無条件の)推定値を4.35 にしがみついていることを指摘する必要がありますが、これは私には理解できません)

他のディストリビューションの場合、状況はそれほど変わりません。最初にデータを事前に変換する必要があります。たとえば、あなたの場合:

バツ

Y=2バツ

Y>medY+3

バツ

YNmedY1

λ

λλ=3

p

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.