Wir verwenden STL (R-Implementierung) zur Vorhersage von Zeitreihendaten.
Jeden Tag führen wir tägliche Prognosen durch. Wir möchten Prognosewerte mit realen Werten vergleichen und durchschnittliche Abweichungen ermitteln. Zum Beispiel haben wir Prognosen für morgen erstellt und Prognosepunkte erhalten. Wir möchten diese Prognosepunkte mit realen Daten vergleichen, die wir morgen erhalten. Mir ist bewusst, dass Prognosewerte und reale Daten in den meisten Fällen nicht übereinstimmen. Dies ist einer der Gründe, warum wir gerne nachverfolgen möchten, wie genau wir jeden Tag sind.
Jetzt versuchen wir herauszufinden, wie dieses Problem am besten gelöst werden kann. Alle Hilfe Zeiger wäre dankbar.
Ich habe mir die Frage zur Messung der Prognosegenauigkeit angesehen , aber es scheint, dass sie eher mit dem Vergleich von Modellen als mit der Berechnung der Genauigkeit mit realen Werten zusammenhängt.
Ich habe mir die Implementierung der Genauigkeitsfunktion in R angesehen , aber mit zwei Fragen verwechselt:
1) Funktioniert es mit realen Daten im Vergleich zu Prognosedaten, da die meisten Lernprogramme "Testdaten" und "Prognosedaten" enthalten?
2) Es scheint, dass die Genauigkeitsfunktion eher ein Array von Werten als ein Prozentsatz der Abweichung ist.
Antworten:
Es gibt viele verschiedene Möglichkeiten, die Prognosegenauigkeit zu messen, und die
accuracy()
Funktion aus dem Prognosepaket für R gibt mehrere davon aus. Aus Ihrem Kommentar zu "% der Abweichung" geht hervor, dass Sie den mittleren absoluten prozentualen Fehler verwenden möchten, der eine der von bereitgestellten Maßnahmen istaccuracy()
. Die gebräuchlichsten Maße für die Prognosegenauigkeit werden hier erörtert . Vielleicht möchten Sie darüber nachdenken, ob MAPE die am besten geeignete Maßnahme für Ihr Problem ist oder ob eine der anderen Maßnahmen besser ist.Die
accuracy()
Funktion arbeitet mit realen Daten. Die "Testdaten" sind diejenigen Daten, die nicht zur Erstellung der Prognosen verwendet wurden. Manchmal sind sie verfügbar, werden jedoch bei der Berechnung der Prognosen nicht verwendet (klassische Aufteilung der Daten in Trainings- und Testsätze). In anderen Situationen werden alle verfügbaren Daten zur Berechnung der Prognosen verwendet. Anschließend müssen Sie warten, bis einige zukünftige Beobachtungen als Testdaten verfügbar sind.Wenn
f
also ein Vektor von Vorhersagen undx
ein Vektor von Beobachtungen ist, die denselben Zeiten entsprechen, dannwird tun was du willst.
quelle
quelle
Ich habe dies in R getan. Hier ist mein Code für meine Daten sowohl für In-Sample- als auch für Out-of-Sample-Daten:
hoffe das hilft ein bisschen. Wenn Sie meinen vollständigen Code möchten, den ich verwendet habe, fragen Sie bitte, da dies sehr einfach ist
quelle
Die kurze Antwort: Um die Qualität Ihrer Vorhersagen zu bewerten, verwenden Sie genau das Maß, das Sie beim Training (Anpassen) Ihres Modells verwendet haben.
Die lange Antwort:
Um ein Maß für die Genauigkeit Ihrer Prognosen zu wählen, müssen Sie zunächst wissen, wie Sie Ihre Prognosen interpretieren. Mit anderen Worten, was geben Sie eigentlich als "Prognose" an? Ist es Mittelwert? Median? Wahrscheinlichster Wert? Die Antwort auf diese Frage identifiziert das Maß für die Prognosegenauigkeit eindeutig. Wenn Sie den Mittelwert vorhersagen, müssen Sie die quadratische mittlere Abweichung als Maß für die Prognosegenauigkeit verwenden. Wenn Sie den Median vorhersagen, müssen Sie die mittlere absolute Abweichung als Maß für die Genauigkeit verwenden.
Ich werde auf diesen Punkt etwas näher eingehen. Nehmen wir an, Sie machen eine Vorhersage für morgen. Nehmen wir auch an, dass Sie für jeden Wert, den Sie morgen beobachten könnten, eine entsprechende Wahrscheinlichkeit haben, beobachtet zu werden. Zum Beispiel wissen Sie, dass Sie 1 mit einer Wahrscheinlichkeit von 0,03, 2 mit einer Wahrscheinlichkeit von 0,07, 3 mit einer Wahrscheinlichkeit von 0,11 usw. beobachten können. Sie haben also eine Verteilung der Wahrscheinlichkeiten über verschiedene Werte. Mit dieser Verteilung können Sie verschiedene Eigenschaften berechnen und als "Vorhersagen" angeben. Sie können den Mittelwert berechnen und als Vorhersage für morgen angeben. Alternativ können Sie den Median als Vorhersage verwenden. Sie können auch den wahrscheinlichsten Wert finden und ihn als Vorhersage für morgen angeben.
Wenn Sie den Mittelwert als Vorhersage verwenden, muss die Frage "Wie messe ich die Genauigkeit meiner Vorhersage?" Durch "Was ist das Maß für die Genauigkeit des Mittelwerts?" Ersetzt werden. Die Antwort lautet "quadratische mittlere Abweichung zwischen dem." reale Werte und Vorhersage ". Wenn Sie den Median als Vorhersage verwenden, müssen Sie die mittlere absolute Abweichung verwenden.
Es kann sein, dass Sie nicht wissen, ob Sie Median oder Mittelwert oder etwas anderes verwenden. Um herauszufinden, was Sie tatsächlich als Vorhersagen verwenden, müssen Sie wissen, welche Maßnahme Sie im Training zu minimieren versuchen. Wenn Sie versuchen, Parameter des Modells zu finden, die die Abweichung des quadratischen Mittelwerts zwischen den Vorhersagen und Zielwerten aus den Trainingsdaten minimieren, müssen Ihre Vorhersagen als Mittelwert behandelt werden. Wenn Sie absolute Abweichungen minimieren, trainieren Sie Ihr Modell, um Mediane usw. bereitzustellen.
HINZUGEFÜGT
Ich möchte eines hervorheben. Wie ich oben erwähnt habe, ist es wichtig, das gleiche Maß an Genauigkeit bei "Passform" und "Vorhersage" beizubehalten. Darüber hinaus möchte ich sagen, dass Sie bei der Auswahl Ihrer Maßnahmen absolut frei sind. Es gibt keine "besseren" oder "schlechteren" Maßnahmen. Die Maßnahme sollte durch die Art und Weise bestimmt werden, wie Sie (oder Ihr Kunde) Ihre Vorhersagen verwenden. Zum Beispiel kann es sehr wichtig sein (für Sie oder Ihren Kunden), eine genaue Übereinstimmung zu haben, und wenn Sie diese nicht haben, spielt sie keine Rolle, wenn der Unterschied zwischen den tatsächlichen und den vorhergesagten Werten groß oder klein ist. In anderen Fällen spielt dieser Unterschied eine Rolle. Die Differenz von 1 ist besser als die Differenz von 2. In einigen Fällen ist die Differenz von 2 zweimal schlechter als die Differenz von 1. In anderen Fällen ist eine Differenz von 2 100-mal schlechter als eine Differenz von 1. Sie können sich auch exotische Fälle vorstellen, in denen Sie einen Wert generieren müssen, der sich von den Beobachtungen unterscheidet. Das Maß für die Qualität der von Ihnen generierten Zahlen kann also je nach Bedarf beliebig sein. Wichtig ist, dass beim Training (Fit) und bei der Bewertung von Vorhersagen dasselbe Maß verwendet wird.
quelle