Pracuję z szeregiem czasowym wyników anomalii (tłem jest wykrywanie anomalii w sieciach komputerowych). Co minutę otrzymuję wynik anomalii który mówi mi, jak „nieoczekiwany” lub nienormalny jest obecny stan sieci. Im wyższy wynik, tym bardziej nienormalny jest obecny stan. Wyniki bliskie 5 są teoretycznie możliwe, ale prawie nigdy nie występują.
Teraz chcę wymyślić algorytm lub formułę, która automatycznie określa próg dla tego szeregu czasowego anomalii. Gdy tylko wynik anomalii przekroczy ten próg, uruchamiany jest alarm.
Poniższy rozkład częstotliwości jest przykładem szeregu czasowego anomalii w ciągu 1 dnia. Nie można jednak zakładać, że każda anomalia szeregów czasowych będzie tak wyglądać. W tym szczególnym przykładzie sensowny byłby próg anomalii, taki jak kwantyla .99, ponieważ kilka wyników po prawej stronie można uznać za anomalie.
I taki sam rozkład częstotliwości jak szeregi czasowe (waha się tylko od 0 do 1, ponieważ w szeregach czasowych nie ma wyższych wyników anomalii):
Niestety rozkład częstotliwości może mieć kształty, w których kwantyl .99 nie jest użyteczny . Przykład jest poniżej. Prawy ogon jest bardzo niski, więc jeśli jako próg zostanie użyty kwantyl .99, może to spowodować wiele fałszywych trafień. Ten rozkład częstotliwości nie wydaje się zawierać anomalii, dlatego próg powinien znajdować się poza rozkładem na poziomie około 0,25.
Podsumowując, różnica między tymi dwoma przykładami polega na tym, że pierwszy wydaje się wykazywać anomalie, podczas gdy drugi nie.
Z mojego naiwnego punktu widzenia algorytm powinien rozważyć te dwa przypadki:
- Jeśli rozkład częstotliwości ma duży prawy ogon (tj. Kilka nieprawidłowych wyników), kwantyla .99 może być dobrym progiem.
- Jeśli rozkład częstotliwości ma bardzo krótki prawy ogon (tj. Brak nienormalnych wyników), wówczas próg powinien znajdować się poza rozkładem.
/ edit: Nie ma też żadnej podstawowej prawdy, tj. dostępne zestawy danych oznaczone. Algorytm jest więc „ślepy” na naturę wyników anomalii.
Teraz nie jestem pewien, jak te obserwacje można wyrazić za pomocą algorytmu lub formuły. Czy ktoś ma sugestię, jak rozwiązać ten problem? Mam nadzieję, że moje wyjaśnienia są wystarczające, ponieważ moje zaplecze statystyczne jest bardzo ograniczone.
Dzięki za pomoc!