Modellierung ungleichmäßig verteilter Zeitreihen

12

Ich habe eine kontinuierliche Variable, die über einen Zeitraum von einem Jahr in unregelmäßigen Abständen abgetastet wird. Einige Tage haben mehr als eine Beobachtung pro Stunde, während andere Perioden tagelang nichts haben. Dies macht es besonders schwierig, Muster in der Zeitreihe zu erkennen, da einige Monate (z. B. Oktober) stark abgetastet werden, andere nicht.

Geben Sie hier die Bildbeschreibung ein

Meine Frage ist, was wäre der beste Ansatz, um diese Zeitreihe zu modellieren?

  • Ich glaube, dass die meisten Zeitreihenanalysetechniken (wie ARMA) eine feste Frequenz benötigen. Ich könnte die Daten aggregieren, um eine konstante Stichprobe zu erhalten, oder eine Teilmenge der Daten auswählen, die sehr detailliert ist. Bei beiden Optionen würden mir einige Informationen aus dem Originaldatensatz fehlen, die unterschiedliche Muster enthüllen könnten.
  • Anstatt die Reihe in Zyklen zu zerlegen, könnte ich das Modell mit dem gesamten Datensatz versorgen und erwarten, dass es die Muster aufnimmt. Zum Beispiel habe ich Stunde, Wochentag und Monat in kategoriale Variablen umgewandelt und eine multiple Regression mit guten Ergebnissen versucht (R2 = 0,71).

Ich habe die Idee, dass maschinelle Lerntechniken wie ANN diese Muster auch aus ungleichmäßigen Zeitreihen auswählen können, aber ich habe mich gefragt, ob dies jemand versucht hat, und könnte mir einige Ratschläge geben, wie Zeitmuster in einem neuronalen Netzwerk am besten dargestellt werden können.

Doppelbyte
quelle

Antworten:

4

ARIMA, Exponential Smoothing und andere erfordern tatsächlich gleichmäßig verteilte Abtastpunkte. Während Sie schreiben, können Sie Ihre Daten aufteilen (z. B. in Tage), aber wenn Sie auch schreiben, verlieren Sie Informationen. Darüber hinaus kann es vorkommen, dass Werte fehlen, sodass Sie diese unterstellen müssen, da ARIMA nicht sehr gut mit fehlenden Werten umgehen kann.

Eine Alternative besteht, wie Sie erneut schreiben, darin, Zeitattrappen in ein Regressionsframework einzugeben. Ich persönlich mag kategoriale Dummies nicht wirklich, weil dies eine scharfe Trennung zwischen benachbarten Kategorien impliziert. Dies ist normalerweise nicht sehr natürlich. Ich würde mir also lieber periodische Splines mit unterschiedlichen Periodizitäten ansehen. Dieser Ansatz hat den Vorteil, dass Sie sich mit Ihrer ungleichmäßigen Abtastung und auch mit fehlenden Werten befassen.

Seien Sie sehr vorsichtig beim DolmetschenR.2. Die Anpassung innerhalb der Stichprobe ist als Maß für die Genauigkeit der Prognose außerhalb der Stichprobe notorisch irreführend ( siehe hier ). Ich würde argumentieren, dass diese Trennung zwischen der Anpassung innerhalb der Stichprobe und der Genauigkeit der Prognose außerhalb der Stichprobe auch bedeutet, dass kein Zusammenhang zwischen der Anpassung innerhalb der Stichprobe und dem "Verständnis" der Daten durch ein Modell besteht, selbst wenn Ihr Interesse nicht an der Prognose liegt , aber nur in der Modellierung an sich. Meine Philosophie ist, dass wenn Sie eine Zeitreihe nicht gut vorhersagen können, Sie sie in keinem sinnvollen Sinne verstanden haben.

Übertreiben Sie die Modellierung nicht. Wenn Sie nur Ihre Daten betrachten, ist es offensichtlich, dass im Juni, an einem Tag im August und im September / Oktober etwas passiert ist. Ich schlage vor , Sie zuerst herausfinden, was dieses etwas war und nimmt diese in Ihrem Modell, zum Beispiel als erklärende Variablen (die Sie in ARIMAX umfassen können , wenn Sie wollen). Was dort passiert ist, ist offensichtlich keine Saisonalität.

Stephan Kolassa
quelle
0

Da Ihre Frage und die nette Antwort von @Stephan Kolassa insbesondere ARIMA und neuronale Netze betreffen, wollte ich erwähnen, dass Sie das forecastPaket abgeben könnenR - es hat eine nnetarFunktion, die ein einfaches neuronales Feed-Forward-Netz mit 1 versteckten Schicht und trainiert verzögerte Eingaben.

Vielleicht könnten Sie etwas in der Art versuchen:

  • Extrahieren Sie viele Funktionen für jede Ihrer Beobachtungen wie Wochentag, Wochentag, Wochentag / Wochenende usw. (nur die Datums- und Uhrzeitangabe wird in Ihrer Frage als mögliche Abhängigkeit erwähnt. Deshalb habe ich dies aufgenommen - aber Sie können alle möglichen Dinge einbeziehen, die Sie tun glauben, könnte Ihre interessierende Variable beeinflussen).
  • Verzögerte Werte Ihrer interessierenden Variablen sowie die Datums- / Uhrzeitinformationen (wie der Wochentag usw.) wären Ihre Eingaben. Sie können die datetime-Variablen beispielsweise als externe Regressoren ( xreg) einschließen .

und prognostizieren Sie die zukünftigen Werte Ihrer interessierenden Variablen basierend auf diesen Eingaben. Darüber hinaus können Sie auch den beobachteten Mittelwert und die Varianz / Abweichung an jedem Tag des Wertes berücksichtigen, den Sie vorhersagen möchten. Dies würde bedeuten, dass Sie zuerst Ihren erwarteten Mittelwert und Ihre erwartete Varianz mit z. B. ARIMA prognostizieren und diese dann als zusätzlichen Input zu dem oben genannten Ansatz hinzufügen müssten.

hth.

Davidki
quelle