Zeitreihenprognosen sind eine der gefragtesten Techniken der Datenwissenschaft, sei es im Aktienhandel, bei der Vorhersage von Unternehmensverkäufen oder bei der Wettervorhersage. Es ist eindeutig eine sehr nützliche Fähigkeit zu haben, und ich werde Sie mit genau das am Ende dieses Artikels auszustatten.
In diesem Tutorial werden wir ein ARIMA-Modell bauen (keine Sorge, wenn Sie nicht genau wissen, wie das funktioniert noch), um die zukünftigen Temperaturwerte einer bestimmten Stadt mit Python vorherzusagen. Den GitHub-Link für den Code und den Datensatz finden Sie am Ende dieses Blogs. Ich habe auch mein YouTube-Video am Ende angehängt, falls Sie an einer Videoerklärung interessiert sind. Also, ohne Zeit zu verschwenden, lasst uns loslegen.
Der erste Schritt bei jeder Zeitreihe ist, die Daten zu lesen und zu sehen, wie sie aussehen. Der folgende Codeschnipsel zeigt, wie man das macht.
Der Code ist ziemlich einfach. Wir lesen die Daten mit pd.read_csv und schreiben parse_date=True, um sicherzustellen, dass Pandas versteht, dass es sich um Datumswerte und nicht um String-Werte handelt.
Als Nächstes entfernen wir alle fehlenden Werte und drucken die Form der Daten. df.head() gibt die ersten 5 Zeilen des Datensatzes aus. Hier ist die Ausgabe, die Sie sehen sollten:
Als nächstes werden Ihre Daten geplottet. So können Sie sich ein Bild davon machen, ob die Daten stationär sind oder nicht. Für diejenigen, die nicht wissen, was Stationarität bedeutet, möchte ich es kurz erläutern. Obwohl ich mehrere Videos zu diesem Thema gemacht habe, läuft es auf Folgendes hinaus:
Jede Zeitreihe, die modelliert werden soll, muss stationär sein. Stationär bedeutet, dass ihre statistischen Eigenschaften mehr oder weniger konstant mit der Zeit sind. Ergibt Sinn, oder? Wie soll man sonst Vorhersagen machen, wenn die statistischen Eigenschaften mit der Zeit variieren? Die folgenden Eigenschaften hat jedes stationäre Modell:
Konstanter Mittelwert
Konstante Varianz(Es kann Schwankungen geben, aber die Schwankungen sollten nicht unregelmäßig sein)
Keine Saisonalität(Keine sich wiederholenden Muster im Datensatz)
Der erste Schritt ist also die Überprüfung auf Stationarität. Wenn Ihr Datensatz nicht stationär ist, müssen Sie ihn in eine stationäre Reihe umwandeln. Bevor Sie sich jetzt Sorgen machen, entspannen Sie sich! Es gibt einen festen, einfachen Test zur Überprüfung der Stationarität, den ADF (Augmented Dickey Fuller Test). Da ich nur an der Vorhersage der Durchschnittstemperatur interessiert bin, ist das die einzige Spalte, die ich aufzeichnen werde.
df.plot(figsize=(12,5))
Prüfung auf Stationarität
Auf Anhieb können wir sehen, dass es so etwas wie einen konstanten Mittelwert um 45 zu haben scheint. Und auch die Schwankungen scheinen mehr oder weniger gleich zu sein. Um jedoch sicher zu sein, ob die Daten stationär sind oder nicht, führen wir einen festen statistischen Test mit folgendem Code durch:
Schreibe einen Kommentar