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 , R
dass Sie ApEn berechnen lässt. Zur Veranschaulichung habe ich 3 verschiedene Zeitreihen verwendet und die ApEn-Zahlen berechnet.
- Serie 1: Die berühmte AirPassenger-Zeitreihe - ist sehr deterministisch und wir sollten leicht vorhersagen können.
- Serie 2: Sunspot-Zeitreihen - sind sehr gut definiert, sollten jedoch weniger vorhersehbar sein als Serie 1.
- 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:
- Es gibt 2 Parameter bei der Berechnung von ApEn (
m
undr
)? Wie man sie bestimmt. Ich habe die Standardeinstellungen imR
obigen Code verwendet. - Was mache ich falsch, das zeigt falsch, dass ApEn für Zufallszahlen niedriger ist als für eine gut definierte Serie wie sunspot.yearly.
- Sollte ich die Serie deseasonalisieren / abwerten und dann ApEn schätzen? Der Autor hat ApEn jedoch direkt auf die Serie angewendet.
- Gibt es eine andere Möglichkeit, um festzustellen, ob die Serie vorhersehbar ist?
quelle
Antworten:
Die Parameter
m
undr
, 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 aufm
,r
sowieN
(Anzahl der Datenpunkte), ApEn wird definiert als „natürliche Logarithmus der relativen Häufigkeit von sich wiederholenden Muster mit einer Länge ,m
wie mit denen der Länge im Vergleichm + 1
“ (BALASIS, Daglis, Anastasiadis & Eftaxias 2011 , S. 215):Daher scheint es möglich zu sein, durch Ändern der Toleranz
r
die (zeitliche) Granularität der Bestimmung der Entropie von Zeitreihen zu steuern . Die Verwendung der Standardwerte für beidem
und derr
Parameter inpracma
den 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 :Die Ergebnisse sind wie erwartet - da die Vorhersagbarkeit von Schwankungen von den
series1
am meisten bestimmten auf die am meisten zufälligen abnimmtseries 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
R
Paket - ForeCA .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
quelle
pracma::sample_entropy()
Funktion getestet und die korrekte Ergebnisbeziehung über die Zeitreihen hinweg gilt auch für dieses Szenario.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.
quelle