Sayım verilerinde aykırı değerlerin algılanması


21

Birçok farklı sayım verisi seti için aykırı tespiti içeren, basitçe ileri düz bir problem olduğunu düşündüğüm bir şeye sahibim. Spesifik olarak, bir dizi sayım verisindeki bir veya daha fazla değerin, dağıtımdaki geri sayımlara göre beklenenden yüksek veya düşük olup olmadığını belirlemek istiyorum.

Şaşırtma faktörü, 3.500 dağıtım için bunu yapmam gerektiği ve diğerleri bazılarının normal olarak dağıtılmışken negatif bir binom veya ZINB'ye en iyi uyması muhtemel olsa da, bazılarının sıfır şişirilmiş dağılmış poisson'a uyması muhtemeldir. Bu nedenle, basit Z skorları veya dağılımın çizilmesi veri setinin çoğu için uygun değildir. Aykırı ayraçları tespit etmek istediğim sayım verilerine bir örnek.

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.

Başlangıçta Python veya R'de her dağıtıma bir dizi model uygulayacak ve AIC'ye veya diğerine göre en uygun model seçecek bir döngü yazmam gerekeceğini düşündüm (belki R? 'Deki fitdistrplus). Daha sonra verilen dağıtım için uç noktaların ne olduğunu sorabilirim (örneğin kuyruklara düşen sayılar, örneğin "4" sayısı, yukarıdaki sayım1 dağılımında bir aykırı olur mu?). Bununla birlikte, bunun geçerli bir strateji olduğundan emin değilim ve aklıma geldi ki, aykırı verileri belirlemek için bilmediğim sayım verilerinde basit bir metodoloji olabilir. Yaygın olarak araştırdım ve bakmak istediğim dağıtım sayısı nedeniyle sorunuma uygun görünen hiçbir şey bulamadım.

Nihai hedefim, istatistiki olarak en uygun metodolojiyi kullanarak sayımların her dağılımı için sayımda önemli artışları veya azalışları tespit etmektir.

Yanıtlar:


23

Aykırı değerleri güvenilir bir şekilde algılamak için klasik bir veri uyumu ile bir gözlem mesafesini kullanamazsınız çünkü kullandığınız uydurma prosedürü aykırı değerlere doğru çekilmekle yükümlüdür (buna maskeleme efekti denir). Aykırı noktaları güvenilir bir şekilde saptamanın basit bir yolu, önerdiğiniz genel fikrini kullanmak (uyumdan uzaklık) ancak klasik tahmin edicileri aykırı değerlere göre daha az hassas olan sağlam olanlarla değiştirmektir. Aşağıda fikrin genel bir örneğini sunacağım ve sonra kendi probleminize yönelik çözümü tartışacağım.

Bir örnek: den çizilen aşağıdaki 20 gözlemi düşünün (ikinci haneye yuvarlanır):N(0,1)

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)

(Son ikisi gerçekten .81 ve 1.76 olmalı, ancak yanlışlıkla yanlış yazılmışlardı).

İstatistiği karşılaştırmaya dayanan bir outlier algılama kuralı kullanma

|xiave(xi)|sd(xi)

normal bir dağılımın miktarına göre, 8.1'in bir dışlayıcı olduğundan şüphelenmenize asla yol açmaz, sizi 'kesilmiş' dizinin 'sinin 2 olarak tahmin etmesini sağlar (örneğin ham, örneğin, unrimmed, 4,35).sdsdsd

Bunun yerine sağlam bir istatistik kullandınız mı:

|ximed(xi)|mad(xi)

ve elde edilen sağlam skorlarını bir normalin nicelikleriyle karşılaştırarak, son iki gözlemi outliers olarak doğru bir şekilde işaretlemiş olacaktınız (ve trimlenen serinin 0.96 olarak doğru tahmin edildi ).sdzsd

(tamlığı çıkarına Hatta bu yaş ve gün içinde bazı insanlar, tercih işaret olmalıdır sarılmak 4.35 ham --untrimmed-- tahminini yerine kırpma dayalı daha kesin bir tahmin kullanmak ama bu bana anlaşılmaz olduğu )

Diğer dağıtımlar için durum o kadar da farklı değil, yalnızca verilerinizi önceden dönüştürmeniz gerekecek. Örneğin, sizin durumunuzda:

orijinal sayım verileriniz olduğunu varsayalım . Bir hile, dönüşümü kullanmaktır:X

Y=2X

ve (bu kural simetrik değildir ve biri için I , bir sayım değişkeninin solundaki kuyruğundan) gözlemleri hariç tutma konusunda çok dikkatli olacaktır. veri temelli eşik. Olumsuz gözlemler, açıkça kaldırılması oldukça güvenli olmalıY>med(Y)+3

Bu, eğer poisson ise, o zamanX

YN-(med(Y),1)

Bu yaklaşım, (poisson dağılımının parametresi) 3'ten büyük olduğunda poisson dağılımlı veriler için oldukça iyi çalışır .λ

Tüm 3 daha küçük olan (ya da veri çoğunluğunun dağıtımına ilişkin bir model 0'a yakın bir Poisson daha modu olduğu gibi, yani, ZINB RV) yaklaşımı tutucu tarafında err eğilimi (daha az veriyi aykırı olarak reddet).λ = 3λλ=3

Bunun neden 'muhafazakar' olarak değerlendirildiğini görmek için, sınırda (veriler çok küçük ile binom olduğunda ) hiçbir gözlemin bu kural tarafından hiçbir zaman eskisi gibi işaretlenmeyeceğini ve bu kesinlikle istediğimiz davranış olduğunu düşünün : maskeleme, aykırı davranışlara neden olmak Tahmini parametreleri keyfi olarak gerçek değerlerinden uzaklaştırabilmeli. Veriler sınırlı desteğe sahip (binom gibi) bir dağıtımdan alındığında, bu gerçekleşemez ...p

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.