[Ich stellte zunächst diese Frage zu Stack Overflow hier aber nicht bekam keine Antworten, so dass ich dachte , ich würde hier versuchen , über. Entschuldigung, wenn Reposting nicht erlaubt ist.]
Ich habe versucht, diese Implementierung des Holt-Winters-Algorithmus für die Vorhersage von Zeitreihen in Python zu verwenden, bin aber auf eine Straßensperre gestoßen ... Grundsätzlich werden für einige Reihen von (positiven) Eingaben manchmal negative Zahlen vorhergesagt, was eindeutig sein sollte nicht der Fall sein. Selbst wenn die Prognosen nicht negativ sind, sind sie manchmal sehr ungenau - Größenordnungen höher / niedriger als sie sein sollten. Es scheint nicht hilfreich zu sein, dem Algorithmus mehr Datenperioden zur Verfügung zu stellen, mit denen er arbeiten kann, und verschlechtert die Prognose häufig.
Die von mir verwendeten Daten weisen die folgenden Merkmale auf, die Probleme verursachen können:
Sehr häufig abgetastet (ein Datenpunkt alle 15 Minuten im Gegensatz zu monatlichen Daten, wie im Beispiel verwendet) - aber nach dem, was ich gelesen habe, sollte der Holt-Winters-Algorithmus damit kein Problem haben. Vielleicht deutet das auf ein Problem mit der Implementierung hin?
Hat mehrere Periodizitäten - es gibt tägliche Spitzen (dh alle 96 Datenpunkte) sowie einen wöchentlichen Zyklus von Wochenenddaten, der deutlich unter den Wochentagsdaten liegt - zum Beispiel können Wochentage Spitzenwerte um 4000, Wochenenden Spitzenwerte bei 1000 erreichen - aber selbst wenn ich nur gebe Bei Wochentagsdaten stoße ich auf das Problem der negativen Zahlen.
Fehlt mir etwas bei der Implementierung oder der Verwendung des Holt-Winters-Algorithmus im Allgemeinen? Ich bin kein Statistiker und verwende daher die im obigen Link angegebenen Standardwerte für Alpha, Beta und Gamma. Ist dies wahrscheinlich das Problem? Was ist ein besserer Weg, um diese Werte zu berechnen?
Oder ... gibt es hier einen besseren Algorithmus als Holt-Winters? Letztendlich möchte ich hier nur sinnvolle Prognosen aus historischen Daten erstellen. Ich habe versucht, einfach und doppelt exponentiell zu glätten, aber (soweit ich weiß) unterstützt keine Periodizität in Daten.
Ich habe auch versucht , das R- Prognosepaket stattdessen über rpy2 zu verwenden - würde das mir bessere Ergebnisse bringen? Ich stelle mir vor, ich müsste noch die Parameter berechnen und so weiter, also wäre es nur eine gute Idee, wenn mein aktuelles Problem in der Implementierung des Algorithmus liegt ...?
Jede Hilfe / Eingabe wäre sehr dankbar!