Wie kann die Vorhersagbarkeit von Zeitreihen bestimmt werden?

10

Eines der wichtigen Themen von Meteorologen konfrontiert wird , wenn die gegebene Serie kann prognostiziert werden oder nicht?

Ich bin auf einen Artikel mit dem Titel " Entropie als A-priori-Indikator für die Vorhersagbarkeit " von Peter Catt gestoßen , in dem die ungefähre Entropie (ApEn) als relatives Maß zur Bestimmung einer bestimmten Zeitreihe verwendet wird.

Der Artikel sagt:

"Kleinere ApEn-Werte zeigen eine größere Wahrscheinlichkeit an, dass auf einen Datensatz ähnliche Daten folgen (Regelmäßigkeit). Umgekehrt zeigt ein größerer Wert von ApEn eine geringere Wahrscheinlichkeit an, dass ähnliche Daten wiederholt werden (Unregelmäßigkeit). Daher vermitteln größere Werte mehr Unordnung , Zufälligkeit und Systemkomplexität. "

Und es folgen mathematische Formeln zur Berechnung von ApEn. Dies ist ein interessanter Ansatz, da er einen numerischen Wert liefert, mit dem die Prognosefähigkeit im relativen Sinne bewertet werden kann. Ich weiß nicht, was ungefähre Entropie bedeutet, ich lese mehr darüber.

Es gibt ein Paket namens pracma in , Rdass Sie ApEn berechnen lässt. Zur Veranschaulichung habe ich 3 verschiedene Zeitreihen verwendet und die ApEn-Zahlen berechnet.

  1. Serie 1: Die berühmte AirPassenger-Zeitreihe - ist sehr deterministisch und wir sollten leicht vorhersagen können.
  2. Serie 2: Sunspot-Zeitreihen - sind sehr gut definiert, sollten jedoch weniger vorhersehbar sein als Serie 1.
  3. Serie 3: Zufallszahl Es gibt keine Möglichkeit, diese Serie vorherzusagen.

Wenn wir also ApEn berechnen, sollte Serie 1 kleiner sein als Serie 2 sehr, sehr viel weniger Serie 3.

Unten sehen Sie das R-Snippet, das ApEn für alle drei Serien berechnet.

library("pracma")
> series1 <- approx_entropy(AirPassengers)
> series1
[1] 0.5157758
> series2 <- approx_entropy(sunspot.year)
> series2
[1] 0.762243
> series3 <- approx_entropy(rnorm(1:30))
> series3
[1] 0.1529609

Das habe ich nicht erwartet. Die Zufallsreihe hat eine niedrigere Anzahl als die gut definierte AirPassenger-Reihe. Selbst wenn ich die Zufallszahl auf 100 erhöhe, erhalte ich immer noch Folgendes, was weniger ist als die gut definierte Serie 2 / Sunspot.yealry.

> series3 <- approx_entropy(rnorm(1:100))
> series3
[1] 0.747275

Unten sind meine Fragen:

  1. Es gibt 2 Parameter bei der Berechnung von ApEn ( mund r)? Wie man sie bestimmt. Ich habe die Standardeinstellungen im Robigen Code verwendet.
  2. Was mache ich falsch, das zeigt falsch, dass ApEn für Zufallszahlen niedriger ist als für eine gut definierte Serie wie sunspot.yearly.
  3. Sollte ich die Serie deseasonalisieren / abwerten und dann ApEn schätzen? Der Autor hat ApEn jedoch direkt auf die Serie angewendet.
  4. Gibt es eine andere Möglichkeit, um festzustellen, ob die Serie vorhersehbar ist?
Prognostiker
quelle
Wie im Artikel angegeben, sollte die ungefähre Entropie nicht für kurze Zeitreihen verwendet werden, N <200. Noch wichtiger ist, dass der Artikel eine Probenentropie verwendet, die keine ungefähre Entropie darstellt. Pracma enthält beides. Danke
Berücksichtigt es erklärende Variablen? Wenn Sie beispielsweise die Kontoabnutzung eines Unternehmens prognostizieren, kann dies mit den Marketingausgaben korrelieren, und die Ausgaben sind in hohem Maße vorhersehbar. Tatsächlich sind sie für Monate im Voraus geplant. Wie würde dies im vorgeschlagenen Ansatz berücksichtigt?
Aksakal
@Aksakal, nein, es gibt keine erklärenden Variablen. Ich suchte nach einer großen univariaten Zeitreihenprognose (keine erklärende Variable), bei der wir eine objektive Maßnahme zur Beurteilung der Prognosefähigkeit benötigen. In vielen Fällen ist die univariate Vorhersage viel genauer als Modelle, die mit erklärenden Variablen erstellt wurden.
Prognostiker
1
Mögliches Duplikat der Bewertung der Vorhersagbarkeit von Zeitreihen
Tim
1
Meiner Meinung nach ist dies eine viel engere Frage als das vorgeschlagene Duplikat. Die Abstimmung bleibt offen, aber schlagen Sie dem OP vor, einen spezifischeren Titel in Betracht zu ziehen, um eine Verwechslung der beiden zu vermeiden. Sagen Sie: "Wie kann die Vorhersagbarkeit von Zeitreihen mithilfe der ungefähren Entropie bestimmt werden ?"
Sean Easter

Antworten:

7

Die Parameter mund r, die an der Berechnung der ungefähren Entropie (ApEn) von Zeitreihen beteiligt sind, sind entsprechend die Länge des Fensters (Sequenz) und die Toleranz (Filterwert) . In der Tat, in Bezug auf m, rsowie N(Anzahl der Datenpunkte), ApEn wird definiert als „natürliche Logarithmus der relativen Häufigkeit von sich wiederholenden Muster mit einer Länge , mwie mit denen der Länge im Vergleich m + 1“ (BALASIS, Daglis, Anastasiadis & Eftaxias 2011 , S. 215):

ApEn(m,r,N)=Φm(r)Φm+1(r),

where 

Φm(r)=ΣilnCim(r)/(Nm+1)

Daher scheint es möglich zu sein, durch Ändern der Toleranz rdie (zeitliche) Granularität der Bestimmung der Entropie von Zeitreihen zu steuern . Die Verwendung der Standardwerte für beide mund der rParameter in pracmaden Entropiefunktionsaufrufen des Pakets funktioniert jedoch einwandfrei. Die einzige Korrektur , die durchgeführt werden muss, um die korrekte Entropiewertbeziehung für alle drei Zeitreihen zu sehen (niedrigere Entropie für besser definierte Reihen, höhere Entropie für mehr Zufallsdaten), besteht darin , die Länge des Zufallsdatenvektors zu erhöhen :

 library(pracma)
 set.seed(10)
 all.series <- list(series1 = AirPassengers,
                    series2 = sunspot.year,
                    series3 = rnorm(500)) # <== size increased
 sapply(all.series, approx_entropy)
  series1   series2   series3 
  0.5157758 0.7622430 1.4741971 

Die Ergebnisse sind wie erwartet - da die Vorhersagbarkeit von Schwankungen von den series1am meisten bestimmten auf die am meisten zufälligen abnimmt series 3, nimmt ihre Entropie folglich zu : ApEn(series1) < ApEn(series2) < ApEn(series3).

In Bezug auf andere Maßnahmen der Vorhersagbarkeit , sollten Sie prüfen , mittlere absolute skalierten Fehler (MASE) - siehe diese Diskussion für weitere Details. Die Analyse vorhersagbarer Komponenten scheint auch ein interessanter und neuer Ansatz zur Bestimmung der Vorhersagbarkeit von Zeitreihen zu sein. Und dafür gibt es erwartungsgemäß auch ein RPaket - ForeCA .

library(ForeCA)
sapply(all.series,
       Omega, spectrum.control = list(method = "wosa"))
 series1   series2   series3 
 41.239218 25.333105  1.171738 

Hier ist ein Maß für die Vorhersagbarkeit, wobei und .Ω ( w h i t e n o i s e ) = 0 % Ω ( s i n u s o i d ) = 100 %Ω[0,1]Ω(whitenoise)=0%Ω(sinusoid)=100%

Verweise

Balasis, G., Daglis, IA, Anastasiadis, A. & Eftaxias, K. (2011). Erkennung dynamischer Komplexitätsänderungen in der Dst-Zeit-Serie mithilfe von Entropiekonzepten und einer neu skalierten Bereichsanalyse. In W. Liu und M. Fujimoto (Hrsg.), The Dynamic Magnetosphere, IAGA Special Sopron Book, Serie 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Springer. Abgerufen von http://members.noa.gr/anastasi/papers/B29.pdf

Georg M. Goerg (2013): Prognostizierbare Komponentenanalyse. JMLR, W & CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13

Aleksandr Blekh
quelle
Ich habe auch die pracma::sample_entropy()Funktion getestet und die korrekte Ergebnisbeziehung über die Zeitreihen hinweg gilt auch für dieses Szenario.
Aleksandr Blekh
@forecaster: Gern geschehen.
Aleksandr Blekh
1
Siehe auch dieses Papier notsoirrational.files.wordpress.com/2015/04/schulz15.pdf , das experimentelle Daten verwendet, um ihre Vorhersagbarkeitsmaße zu rechtfertigen. Es bezieht sich auch auf einige der Arbeiten, die in diesem Beitrag erwähnt werden
Georg M. Goerg
@ GeorgM.Goerg: Danke für die Vorschläge, Links & Bearbeitungen.
Aleksandr Blekh
@forecaster: Es war mir ein Vergnügen.
Aleksandr Blekh
0

Jede Zeitreihe besteht aus 3 Komponenten: Trend, Saisonalität und Zufall. Wenn die Daten einen starken Trend aufweisen und stark saisonabhängig sind, ist die Vorhersage relativ einfach. Wenn die Daten größtenteils zufällig sind, können Sie per Definition nichts vorhersagen.

Verstecktes Markov-Modell
quelle