Może się to wydawać sprzeczne z intuicją, ale stosowanie podejścia, które opisujesz, nie ma sensu (biorąc pod uwagę twoje sformułowania, wolałbym pisać „może prowadzić do rezultatów bardzo odmiennych od zamierzonych”) i nigdy nie należy tego robić: ryzyko nie działa to w konsekwencji, a ponadto istnieje prostsza, znacznie bezpieczniejsza i lepiej ustalona alternatywa dostępna bez dodatkowych kosztów.
Po pierwsze, prawdą jest, że jeśli istnieje jedna wartość odstająca, w końcu znajdziesz ją przy użyciu sugerowanej procedury. Ale ogólnie (gdy w danych może występować więcej niż jedna wartość odstająca), algorytm, który sugerujesz, całkowicie się psuje, w sensie potencjalnej skłonności do odrzucenia dobrego punktu danych jako wartości odstającej lub utrzymania wartości odstających jako dobrych punktów danych z potencjalnie katastrofalnymi konsekwencjami.
Poniżej podam prosty numeryczny przykład, w którym załamuje się proponowana przez ciebie reguła, a następnie proponuję znacznie bezpieczniejszą i bardziej ugruntowaną alternatywę, ale przed tym wyjaśnię a) co jest nie tak z proponowaną metodą oraz b) co zwykle preferowane alternatywą jest to.
Zasadniczo nie można wykorzystać odległości obserwacji od średniej pomijanej i odchylenia standardowego danych, aby wiarygodnie wykryć wartości odstające, ponieważ szacunki, których używasz (pomiń jedną średnicę i odchylenie standardowe) nadal mogą zostać przesunięte w kierunku pozostałych wartości odstające: nazywa się to efektem maskowania.
W skrócie, jednym prostym sposobem na niezawodne wykrywanie wartości odstających jest użycie zaproponowanej przez ciebie ogólnej idei (odległość od oszacowania lokalizacji i skali), ale zastąpienie używanych estymatorów (pomiń jedną średnią, sd) solidnymi - tj. Szacunków zaprojektowany tak, aby był znacznie mniej podatny na bycie kołysanym przez wartości odstające.
Rozważ ten przykład, w którym dodaję 3 wartości odstające do 47 autentycznych obserwacji zaczerpniętych z Normalnej 0,1:
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
Poniższy kod oblicza wskaźnik odstępstwa na podstawie średniej „out one out” i odchylenia standardowego (np. Proponowane podejście).
out_1 <- rep(NA,n)
for(i in 1:n){ out_1[i] <- abs( x[i]-mean(x[-i]) )/sd(x[-i]) }
a ten kod tworzy wykres, który widzisz poniżej.
plot(x, out_1, ylim=c(0,1), xlim=c(-3,20))
points(x[1:3], out_1[1:3], col="red", pch=16)
Zdjęcie 1 przedstawia wartość twojego wskaźnika oddalenia jako funkcję wartości obserwacji (najdalej oddalone wartości odstające znajdują się poza zakresem tego wykresu, ale pozostałe dwa są pokazane jako czerwone kropki). Jak widać, z wyjątkiem najbardziej ekstremalnego, wskaźnik oddalenia skonstruowany zgodnie z sugestią nie ujawniłby wartości odstających: w rzeczywistości druga i trzecia (łagodniejsza) wartość odstająca ma teraz nawet wartość (na wskaźniku odstępstwa) mniejszą niż wszystkieprawdziwe obserwacje! ... Podejście, które sugerujesz, pozwoliłoby zachować te dwie skrajne wartości odstające w zestawie autentycznych obserwacji, prowadząc cię do wykorzystania 49 pozostałych obserwacji, tak jakby pochodziły z tego samego jednorodnego procesu, dając ci końcowy oszacowanie średniej i sd na podstawie tych 49 punktów danych 0,45 i 2,32, bardzo zły opis którejkolwiek części twojej próbki!
xjaX
O ( xja, X) = | xja- med ( X) |szalony (X)
med (X)Xszalony (X)
W R ten drugi wskaźnik odstępstwa można obliczyć jako:
out_2 <- abs( x-median(x) )/mad(x)
i wykreślono (jak poprzednio) przy użyciu:
plot(x, out_2, ylim=c(0,15), xlim=c(-3,20))
points(x[1:3], out_2[1:3], col="red", pch=16)
Zdjęcie 2 przedstawia wartość tego alternatywnego wskaźnika odstępstwa dla tego samego zestawu danych. Jak widać, teraz wszystkie trzy wartości odstające są wyraźnie ujawnione jako takie. Ponadto ta reguła wykrywania wartości odstających ma pewne ustalone właściwości statystyczne. Prowadzi to między innymi do obowiązujących zasad odcięcia. Na przykład jeśli można założyć, że prawdziwa część danych pochodzi z symetrycznego rozkładu ze skończonym drugim momentem, możesz odrzucić wszystkie punkty danych, dla których
| xja- med ( X) |szalony (X)> 3.5
jako wartości odstające. W powyższym przykładzie zastosowanie tej reguły doprowadziłoby do prawidłowego oznaczenia obserwacji 1,2 i 3. Odrzucając je, średnia i sd pozostałych obserwacji wynosi 0,021 i 0,93 receptywnie, co jest znacznie lepszym opisem prawdziwej części próbki !