Modelowanie nierównomiernie rozłożonych szeregów czasowych

12

Mam zmienną ciągłą, próbkowaną przez okres roku w nieregularnych odstępach czasu. Niektóre dni mają więcej niż jedną obserwację na godzinę, podczas gdy inne okresy nie mają nic przez kilka dni. To sprawia, że ​​szczególnie trudno jest wykryć wzorce w szeregach czasowych, ponieważ niektóre miesiące (na przykład październik) są bardzo próbkowane, podczas gdy inne nie.

wprowadź opis zdjęcia tutaj

Moje pytanie brzmi: jakie byłoby najlepsze podejście do modelowania tej serii czasowej?

  • Uważam, że większość technik analizy szeregów czasowych (takich jak ARiMR) wymaga stałej częstotliwości. Mogłem agregować dane, aby uzyskać stałą próbkę lub wybrać bardzo szczegółowy podzestaw danych. W przypadku obu opcji brakuje mi niektórych informacji z oryginalnego zestawu danych, które mogłyby ujawnić różne wzorce.
  • Zamiast rozkładać serie w cyklach, mogłem zasilić model całym zestawem danych i oczekiwać, że wziął wzorce. Na przykład przekształciłem godzinę, dzień tygodnia i miesiąc w zmienne jakościowe i wypróbowałem regresję wielokrotną z dobrymi wynikami (R2 = 0,71)

Mam pomysł, że techniki uczenia maszynowego, takie jak ANN, mogą również wybierać te wzorce z nierównomiernych szeregów czasowych, ale zastanawiałem się, czy ktoś tego próbował i może dostarczyć mi porady na temat najlepszego sposobu reprezentowania wzorców czasowych w sieci neuronowej.

dwubajtowy
źródło

Odpowiedzi:

4

ARIMA, Wygładzanie wykładnicze i inne rzeczywiście wymagają równomiernie rozmieszczonych punktów próbkowania. Gdy piszesz, możesz grupować swoje dane (powiedzmy w dni), ale gdy piszesz, tracisz informacje. Ponadto mogą wystąpić braki w wartościach, dlatego trzeba by przypisać, ponieważ ARIMA nie jest bardzo dobra w obsłudze brakujących wartości.

Jedną z możliwości, jak piszesz ponownie, jest karmienie manekinów czasowych w ramach regresji. Osobiście nie lubię kategorycznych manekinów, ponieważ implikuje to ostre odcięcie między sąsiednimi kategoriami. Zwykle nie jest to zbyt naturalne. Wolałbym więc spojrzeć na okresowe splajny o różnych okresach. Takie podejście ma tę zaletę, że radzi sobie z nierównym próbkowaniem, a także z brakującymi wartościami.

Bądź bardzo ostrożny przy interpretacji . Dopasowywanie w próbie jest powszechnie wprowadzane w błąd jako miara dokładności prognoz poza próbą ( patrz tutaj ). Argumentowałbym, że to rozłączenie między dopasowaniem w próbie a dokładnością prognozy poza próbą oznacza również, że nie ma związku między dopasowaniem w próbie a tym, jak dobrze model „rozumiał” dane, nawet jeśli twoje zainteresowanie nie polega na prognozowaniu , ale tylko w modelowaniu jako takim. Moja filozofia jest taka, że ​​jeśli nie potrafisz dobrze przewidzieć szeregu czasowego, nie zrozumiałeś go w żadnym sensownym znaczeniu.R2)

Wreszcie, nie przesadzaj z modelowaniem. Wystarczy spojrzeć na swoje dane, oczywiste jest, że coś się wydarzyło w czerwcu, jednego dnia sierpnia i września / października. Proponuję najpierw dowiedzieć się, co to coś było i to w tym modelu, na przykład, jako zmienne objaśniające (które można uwzględnić w Arimax jeśli chcesz). To, co się tam wydarzyło, oczywiście nie jest sezonowe.

Stephan Kolassa
źródło
0

Ponieważ twoje pytanie i ładna odpowiedź od @Stephan Kolassa omawiają ARIMA, aw szczególności sieci neuronowe, chciałem wspomnieć, że możesz dać forecastpakiet w mgnieniu oka R- ma on nnetarfunkcję, która szkoli prostą sieć neuronową z 1 przekazywaniem ukrytej warstwy i opóźnione wejścia.

Może mógłbyś spróbować czegoś w stylu:

  • wyodrębnij wiele funkcji dla każdej ze swoich obserwacji, takich jak dzień tygodnia, dzień miesiąca, dzień tygodnia / weekend itp. (tylko data i godzina jest wymieniona jako potencjalna zależność w twoim pytaniu, dlatego właśnie to załączyłem - ale możesz uwzględnić wszystkie możliwe rzeczy, które możesz przypuszczam, że może wpływać na twoją zmienną zainteresowania).
  • opóźnione wartości twojej zmiennej zainteresowania, a także informacje dotyczące daty i godziny (np. dzień tygodnia itp.) byłyby twoimi danymi wejściowymi. możesz na przykład uwzględnić zmienne datetime jako zewnętrzne regresory ( xreg).

i przewiduj przyszłe wartości swojego zainteresowania na podstawie tych danych wejściowych. Dodatkowo możesz również pomyśleć o włączeniu obserwowanej średniej i wariancji / odchylenia dla każdego dnia wartości, którą chcesz przewidzieć. Oznaczałoby to, że musiałbyś najpierw przewidzieć oczekiwaną średnią i wariancję z np. ARIMA, a następnie dodać to jako dodatkowy wkład do wyżej wspomnianego podejścia.

hth.

Dawidski
źródło