Mam wiele danych szeregów czasowych - poziomy wody i prędkości w funkcji czasu. Jest to wynik symulacji modelu hydraulicznego. W ramach procesu przeglądu, aby potwierdzić, że model działa zgodnie z oczekiwaniami, muszę wykreślić każdy szereg czasowy, aby upewnić się, że w danych nie ma żadnych „wahnięć” (patrz przykład mniejszego wahania poniżej). Korzystanie z interfejsu użytkownika oprogramowania do modelowania jest dość powolnym i pracochłonnym sposobem sprawdzania tych danych. Dlatego napisałem krótkie makro VBA, aby zaimportować różne bity danych z modelu, w tym wyniki do Excela i wykreślić je wszystkie naraz. Mam nadzieję napisać kolejne krótkie makro VBA, aby przeanalizować dane szeregów czasowych i wyróżnić wszelkie podejrzane sekcje.
Do tej pory myślałem tylko, że mógłbym przeprowadzić analizę nachylenia danych. Wszędzie tam, gdzie nachylenie gwałtownie zmienia się od wielokrotnego dodatniego do ujemnego w danym oknie wyszukiwania, można je zaklasyfikować jako niestabilne. Czy brakuje mi prostszych sztuczek? Zasadniczo „stabilna” symulacja powinna zapewniać bardzo płynną krzywą. Wszelkie nagłe zmiany mogą wynikać z niestabilności obliczeń.
źródło
Odpowiedzi:
Dla uproszczenia sugerowałbym przeanalizowanie wielkości (wartości bezwzględnych) reszt w stosunku do solidnego wygładzenia danych. W przypadku automatycznego wykrywania rozważ zastąpienie tych rozmiarów wskaźnikiem: 1, gdy przekroczą jakiś wysoki kwantyl, powiedzmy na poziomie , a 0 w przeciwnym razie. Wygładź ten wskaźnik i wyróżnij wygładzone wartości przekraczające .1−α α
Grafika po lewej stronie przedstawia punktów danych w kolorze niebieskim wraz z solidnym, lokalnym wygładzeniem w kolorze czarnym. Grafika po prawej stronie pokazuje rozmiary resztek tej gładkości. Czarna linia przerywana to ich 80 percentyl (odpowiadający ). Czerwona krzywa jest skonstruowana jak opisano powyżej, ale została przeskalowana (od wartości i ) do średnicy bezwzględnych reszt do wykreślenia.1201 α=0.2 0 1
Zmienianie pozwala kontrolować precyzję. W tym przypadku ustawienie poniżej identyfikuje krótką przerwę w hałasie około 22 godzin, podczas gdy ustawienie większe niż powoduje także szybką zmianę w pobliżu 0 godzin.α α 0.20 α 0.20
Szczegóły gładkości nie mają większego znaczenia. W tym przykładzie less gładka (realizowane w
R
jakloess
zespan=0.05
aby go zlokalizować) użyto, ale nawet z okienkiem średnią zrobiłby grzywny. Aby wygładzić resztki bezwzględne, przeprowadziłem okienkową średnią szerokość 17 (około 24 minut), a następnie środkową okienkową. Te wygładzone okna są stosunkowo łatwe do wdrożenia w programie Excel. Wydajna implementacja VBA (dla starszych wersji programu Excel, ale kod źródłowy powinien działać nawet w nowych wersjach) jest dostępna pod adresem http://www.quantdec.com/Excel/smoothing.htm .R
Kodźródło