W komentarzu do tego pytania użytkownik @whuber wskazał na możliwość używania okresowej wersji splajnów w celu dopasowania danych okresowych. Chciałbym dowiedzieć się więcej o tej metodzie, w szczególności o równaniach definiujących splajny oraz o tym, jak je zaimplementować w praktyce (jestem głównie R
użytkownikiem, ale jeśli zajdzie taka potrzeba, poradzę sobie z MATLAB-em lub Pythonem). Ponadto, ale jest to „miło mieć”, dobrze byłoby wiedzieć o możliwych zaletach / wadach w odniesieniu do dopasowania wielomianów trygonometrycznych, i tak zazwyczaj radzę sobie z tego rodzaju danymi (chyba że odpowiedź nie jest bardzo płynna, w takim przypadku przełączam się na proces Gaussa z okresowym jądrem).
regression
time-series
seasonality
splines
DeltaIV
źródło
źródło
Odpowiedzi:
Splajny są używane w modelowaniu regresji do modelowania możliwie złożonych, nieliniowych form funkcjonalnych. Trend wygładzony splajnem składa się z częściowo ciągłych wielomianów, których wiodący współczynnik zmienia się w każdym punkcie przerwania lub węźle. Splajn można określić zarówno pod względem wielomianu trendu, jak i punktów przerwania. Reprezentacja splajnu współzmiennej rozciąga pojedynczy wektor obserwowanych wartości do macierzy, której wymiarem jest stopień wielomianowy plus liczba węzłów.
Okresowe wersja wypustów jest tylko okresowe wersja usprawiedliwienia: dane są cięte na powtórzeń o długości okresu. Na przykład modelowanie trendu dobowego w wielodniowym eksperymencie na szczurach wymagałoby przekodowywania czasu eksperymentu na przyrosty 24-godzinne, więc 154 godzina byłaby wartością modulo 24 równą 10 (154 = 6 * 24 + 10). Jeśli dopasujesz regresję liniową do danych cięcia, oszacuje ona przebieg fali piły dla trendu. Jeśli wpiszesz funkcję kroku gdzieś w tym okresie, będzie to kwadratowy przebieg pasujący do szeregu. Splajn jest w stanie wyrazić znacznie bardziej wyrafinowaną falkę. Za to, co jest warte, w
splines
pakiecie znajduje się funkcja,periodicSpline
która właśnie to robi.Zobaczysz, że są dość zgodne. Ponadto konwencja nazewnictwa umożliwia interpretację. W wyniku regresji widać:
Zakładam, że znasz częstotliwość dostępnych danych. Jeśli w danych brakuje komponentu wzrostu lub średniej ruchomej, możesz przekształcić długi szereg czasowy w repliki krótkich szeregów trwających 1 okres. Masz teraz repliki i możesz użyć analizy danych do oszacowania powtarzającego się trendu.
Załóżmy, że generuję następujące nieco głośne, bardzo długie szeregi czasowe:
Wynikowa wydajność pokazuje rozsądną wydajność.
źródło