私は、多くの異なるカウントデータセットの外れ値の検出を伴う、かなり単純な問題であると単純に考えたものがあります。具体的には、一連のカウントデータ内の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分布の外れ値になりますか?)。しかし、これが有効な戦略であるかどうかはわかりません。また、カウントデータの外れ値を判断するための簡単な方法論があるかもしれません。私は広範囲に検索しましたが、見たいディストリビューションの数を考えると、私の問題にふさわしいものは何も見つかりませんでした。
私の最終的な目標は、最も統計的に適切な方法論を使用して、カウントの分布ごとにカウントの大幅な増加または減少を検出することです。