Karşılıklı-sezgisel görünebilir, ancak tarif ettiğiniz yaklaşımı kullanmak mantıklı değil (ifadenizi almak için "yazmayı tercih ettiğimden çok farklı sonuçlara yol açabilir") ve kişi bunu asla yapmamalıdır: riskleri işe yaramaz ve sonuç olarak, ek bir ücret ödemeden daha basit, daha güvenli ve daha iyi kurulmuş bir alternatif vardır.
İlk olarak, tek bir aykırı değer varsa, sonunda önerdiğiniz prosedürü kullanarak bulacağınız doğrudur . Ancak, genel olarak (verilerde tek bir aykırı değerden fazla olduğunda), önerdiğiniz algoritma, potansiyel olarak iyi bir veri noktasını aykırı olarak reddetmenize veya aykırı değerleri iyi veri noktaları olarak tutmanıza yol açması açısından tamamen bozulur. potansiyel olarak felaketle sonuçlanabilir.
Aşağıda, önerdiğiniz kuralın bozulduğu basit bir sayısal örnek verdim ve daha sonra daha güvenli ve daha köklü bir alternatif öneriyorum, ancak bundan önce a) önerdiğiniz yöntemde neyin yanlış olduğunu ve b) genellikle tercih edilenin ne olduğunu açıklayacağım alternatif.
Temel olarak, bir gözlemin uzaktaki ortalamadan uzaklığını kullanamazsınız ve aykırı değerleri güvenilir bir şekilde tespit etmek için verilerinizin standart sapmasını kullanamazsınız çünkü kullandığınız tahminler (bir dış ortalama ve standart sapma) kalanlara doğru çekilmekle yükümlüdür aykırı değerler: Buna maskeleme efekti denir.
Özetle, aykırı değerleri güvenilir bir şekilde tespit etmenin basit bir yolu, önerdiğiniz genel fikri kullanmaktır (konum ve ölçek tahmininden uzaklık), ancak kullandığınız tahmincileri (bir tane ortalama, sd) sağlam olanlarla değiştirmek - yani tahminler aykırı değerlerin sallanmasına karşı çok daha az hassas olacak şekilde tasarlanmıştır.
Normal 0,1'den alınan 47 gerçek gözleme 3 aykırı değer eklediğim bu örneği düşünün:
n <- 50
set.seed(123) # for reproducibility
x <- round(rnorm(n,0,1), 1)
x[1] <- x[1]+1000
x[2] <- x[2]+10
x[3] <- x[3]+10
Aşağıdaki kod, dışarıda bırakma ortalamasını ve standart sapmayı (örn. Önerdiğiniz yaklaşım) temel alarak dışlama endeksini hesaplar.
out_1 <- rep(NA,n)
for(i in 1:n){ out_1[i] <- abs( x[i]-mean(x[-i]) )/sd(x[-i]) }
ve bu kod aşağıda gördüğünüz grafiği oluşturur.
plot(x, out_1, ylim=c(0,1), xlim=c(-3,20))
points(x[1:3], out_1[1:3], col="red", pch=16)
Şekil 1, dışa dönüklük endeksinizin değerini gözlemlerin değerinin bir fonksiyonu olarak tasvir etmektedir (aykırı değerlerin en uzağında bu çizimin aralığı dışındadır, ancak diğer ikisi kırmızı noktalar olarak gösterilmiştir). Gördüğünüz gibi, en uç olanı hariç, önerdiğiniz gibi inşa edilen bir dışa dönüklik endeksi aykırı değerleri ortaya çıkartamaz: aslında ikinci ve üçüncü (daha hafif) aykırı değerler artık hepsinden daha küçük bir değere (dışsallık endeksinizde) bilegerçek gözlemler! ... Önerdiğiniz yaklaşım çerçevesinde, bu iki uç değer aykırı gerçek gözlemler kümesinde tutulacak ve kalan 49 gözlemi aynı homojen süreçten geliyormuş gibi kullanacak ve size son 0.45 ve 2.32'nin 49 veri noktasına dayanan ortalama ve sd'nin tahmini, örneğin her iki bölümünün de çok zayıf bir açıklaması !
xiX
O(xi,X)=|xi−med(X)|mad(X)
med(X)Xmad(X)
R'de, bu ikinci dışsallık endeksi şu şekilde hesaplanabilir:
out_2 <- abs( x-median(x) )/mad(x)
ve kullanarak (daha önce olduğu gibi):
plot(x, out_2, ylim=c(0,15), xlim=c(-3,20))
points(x[1:3], out_2[1:3], col="red", pch=16)
Şekil 2, aynı veri kümesi için bu alternatif dışlama endeksinin değerini çizmektedir. Gördüğünüz gibi, şimdi üç aykırı değer de açıkça bu şekilde ortaya çıkıyor. Ayrıca, bu aykırı değer tespit kuralı bazı belirlenmiş istatistiksel özelliklere sahiptir. Bu, diğer şeylerin yanı sıra, kullanılabilir kesme kurallarına yol açar. Örneğin, verilerin orijinal kısmının sonlu ikinci momentle simetrik bir dağılımdan alınabileceği varsayılırsa, bunun için tüm veri noktalarını reddedebilirsiniz.
|xi−med(X)|mad(X)>3.5
aykırı olarak. Yukarıdaki örnekte, bu kuralın uygulanması, gözlem 1,2 ve 3'ü doğru şekilde işaretlemenize yol açacaktır. Bunları reddettiğinizde, kalan gözlemlerin ortalaması ve sd'si reseptif olarak 0.021 ve 0.93'tür, numunenin orijinal kısmının çok daha iyi bir açıklamasıdır. !