Wykrywanie wartości odstających w bardzo małych zestawach

12

Muszę uzyskać jak najdokładniejszą wartość jasności głównie stabilnego źródła światła, biorąc pod uwagę dwanaście wartości jasności próbki. Czujnik jest niedoskonały, a światło może czasami „migotać” jaśniej lub ciemniej, co można zignorować, stąd moja potrzeba wykrycia wartości odstających (myślę?).

Przeczytałem tutaj o różnych podejściach i nie mogę się zdecydować, które wybrać. Liczba wartości odstających nigdy nie jest znana z góry i często wynosi zero. Migotanie jest na ogół bardzo dużym odchyleniem od stabilnej jasności (wystarczającym, aby naprawdę zadzierać z każdą średnią pobraną z dużym prezentem), ale niekoniecznie.

Oto przykładowy zestaw 12 pomiarów dla kompletności pytania:

295,5214, 277,7749, 274,6538, 272,5897, 271,0733, 292,5856, 282,0986, 275,0419, 273,084, 273,1783, 274,0317, 290,1837

Mam przeczucie, że w tym konkretnym zestawie prawdopodobnie nie ma żadnych wartości odstających, chociaż 292 i 295 wyglądają nieco wyżej.

Moje pytanie brzmi: jakie byłoby tutaj najlepsze podejście? Powinienem wspomnieć, że wartości pochodzą z przyjęcia odległości euklidesowej składników RG i B światła od punktu zerowego (czarnego). Programowo bolesne, ale możliwe, byłoby przywrócenie tych wartości w razie potrzeby. Odległość euklidesowa została użyta jako miara „ogólnej siły”, ponieważ nie interesuje mnie kolor, tylko siła wyjściowa. Istnieje jednak uzasadniona szansa, że ​​wspomniane przeze mnie migotania mają inny skład RGB niż zwykłe wyjście.

W tej chwili bawię się jakąś funkcją, która będzie się powtarzać, aż do uzyskania stabilnego członkostwa dozwolonych środków przez:

  1. Znalezienie odchylenia standardowego
  2. Umieszczając wszystko na zewnątrz, powiedz 2 SD na liście ignorowanych
  3. Ponowne obliczenie średniej i SD z wyłączeniem listy ignorowanych
  4. Ponowne podjęcie decyzji, kogo zignorować na podstawie nowej średniej i SD (oceń wszystkie 12)
  5. Powtarzaj, aż będzie stabilny.

Czy to podejście ma jakąkolwiek wartość?

Wszystkie komentarze z wdzięcznością przyjęte!

technorabble
źródło
Chociaż jest to bolesne, warto zająć się spekulacjami, że migotanie może mieć różne komponenty RGB (choć czasami podobną odległość od czerni). Inną opcją jest użycie mediany zamiast średniej, w zależności od celu.
Wayne

Odpowiedzi:

7

Wartości odstające w małych próbkach zawsze mogą być bardzo trudne do wykrycia. W większości przypadków faktycznie zalecałbym, że jeśli uważasz, że Twoje dane nie są tępo uszkodzone, wartość „nietypowa” może nie być problematyczna, a jej wyłączenie może być nieuzasadnione. Prawdopodobnie użycie solidnych technik statystycznych będzie bardziej rozsądne i bliższe rozwiązaniu środkowej płaszczyzny. Masz małą próbkę; staraj się, aby każdy punkt próbki się liczył. :)

Odnośnie twojego sugerowanego podejścia: nie egzekwowałbym pośpiesznie założenia normalności do twoich danych z regułą 68-95-99,7 na nich (jak się wydaje, jakoś robisz z twoją regułą heurystyczną 2SD). Nierówność Czebyszewa choć raz zakłada na nich zasadę 75–88.9–93.8, która jest wyraźnie mniej sztywna. Istnieją również inne „ zasady ”; Identyfikacja odstających sekcja w poboczna lematu w Wikipedia ma wiązkę heurystyki.

ZM.

M.ja=.6745(xja-x~)/M.ZAre

x~M.3.5

Ponownie, biorąc pod uwagę, że masz naprawdę małą próbkę, jeśli uważasz, że twoja próbka nie jest oczywiście zepsuta (człowiek 9'4 „wysoki), radziłbym, abyś nie wykluczał pośpiesznie danych. Twoje„ podejrzane wartości odstające ”mogą być danymi niepoprawnymi; ich użycie może raczej pomóc, niż zaszkodzić analizie.

usεr11852
źródło
1
x¯x¯x~
1
+1 za silny nacisk na wartość solidnych podsumowań. Zobacz także inne wątki na tej stronie.
Nick Cox,
1
@NickCox: Dobra uwaga, nie wiem o czym przede wszystkim myślałem. Zmieniłem to teraz. Dzieki za sugestie.
usεr11852
0

Wskaż pierwszy - warto wrócić do koloru rgb. Rzadko warto wyrzucać dane, a wielkość wektora rgb nie jest jedynym sposobem przedstawienia jasności - postrzegana jasność jest inna, podobnie jak wartość w HSV.

Ale odkładając to na bok i mając do czynienia z posiadanymi danymi, czy zastanawiałeś się nad utworzeniem tego problemu jako problemem klasyfikacyjnym zamiast modelowania i przeprowadzeniem uczenia maszynowego? Masz wejście, które jest wektorem z 12 rzeczywistymi wartościami (odczyty jasności). Masz wynik, który jest wektorem 12 wartości binarnych (1 = wartość wewnętrzna, 0 = wartość odstająca). Uzyskaj kilka zestawów odczytu jasności i ręcznie oznacz je etykietą, pokazując, który odczyt jasności w każdym zestawie jest wartością wewnętrzną / zewnętrzną. Coś takiego:

Następnie przeprowadź całą akcję przez jakiś klasyfikator:

  • Możesz użyć jednego klasyfikatora, który generuje 12 różnych wartości binarnych - sieć neuronowa pozwoli ci to łatwo ustawić.
  • Możesz też użyć standardowego klasyfikatora binarnego (np. SVMlite ) i wyszkolić 12 różnych modeli, z których jeden klasyfikuje, czy każdy element wyniku jest wartością wewnętrzną / zewnętrzną.

I jesteś skończony! Nie musisz zawracać sobie głowy próbą znalezienia „reguły”, która oddziela wartości wewnętrzne od wartości odstających. Po prostu zdobądź kilka zestawów danych, które wyglądają rozsądnie i pozwól, aby maszyna zrobiła to za ciebie :)

~~~

EDYCJA: Nawiasem mówiąc, proponowana metoda, w której iteracyjnie dopasowujesz gaussa, a następnie klasyfikujesz każdą próbkę dalej niż 2 odchylenia standardowe jako wartość odstającą, wygląda bardzo podobnie do algorytmu maksymalizacji oczekiwań. Coś takiego:

  • Pojedynczy komponent gaussowski (modelowanie wartości wewnętrznych)
  • Jednolity składnik tła (wartości odstające)
  • Pewne wcześniejsze prawdopodobieństwo każdego, które w nieoczywisty sposób zależy od szerokości gaussa (reguła „klasyfikuj przy 2 odchyleniach standardowych”).
  • Trudna klasyfikacja na etapie oczekiwania.

Jeśli pójdziesz tą ścieżką, warto szukać w Google algorytmów EM i sprawdzać, jakie założenia budujesz w swoim modelu.

Poklepać
źródło