Muszę wdrożyć wykrywanie anomalii w kilku zestawach danych szeregów czasowych. Nigdy wcześniej tego nie robiłem i liczyłem na radę. Bardzo dobrze czuję się w Pythonie, więc wolałbym, aby rozwiązanie było zaimplementowane w nim (większość mojego kodu to Python dla innych części mojej pracy).
Opis danych: to miesięczne dane szeregów czasowych, które dopiero zaczęły być gromadzone w ciągu ostatnich 2 lat (tj. Tylko 24–36 okresów). Zasadniczo istnieje kilka wskaźników monitorowanych co miesiąc dla kilku klientów.
time_period client metric score
01-2013 client1 metric1 100
02-2013 client1 metric1 119
01-2013 client2 metric1 50
02-2013 client2 metric2 500
...
Oto, o czym myślę: ściągnij dane do ramki danych (pandy), a następnie oblicz kroczącą średnią z 6 miesięcy dla każdej pary klient / metryczny. Jeśli wartość bieżącego okresu przekracza pewien próg na podstawie średniej z 6 miesięcy, podnieś flagę. Problem wydaje się dość prosty. Chcę się tylko upewnić, że podchodzę solidnie.
Jakakolwiek rada, aby rozwinąć ten pomysł, byłaby bardzo mile widziana. Wiem, że pytanie jest nieco abstrakcyjne i przepraszam za to.