L'un des problèmes importants auxquels sont confrontés les prévisionnistes est de savoir si la série donnée peut être prévue ou non?
Je suis tombé sur un article intitulé " L'entropie comme indicateur a priori de la prévisibilité " de Peter Catt qui utilise l' entropie approximative (ApEn) comme mesure relative pour déterminer qu'une série chronologique donnée est prévisible.
L'article dit,
"Des valeurs ApEn plus petites indiquent une plus grande chance qu'un ensemble de données soit suivi de données similaires (régularité). Inversement, une valeur plus élevée d'ApEn indique une probabilité plus faible de répétition de données similaires (irrégularité). Par conséquent, des valeurs plus grandes véhiculent plus de désordre , le caractère aléatoire et la complexité du système. "
Et est suivi de formules mathématiques pour calculer ApEn. Il s'agit d'une approche intéressante car elle fournit une valeur numérique qui peut être utilisée pour évaluer la prévisibilité au sens relatif. Je ne sais pas ce que signifie Entropie approximative, j'en lis plus à ce sujet.
Il y a un paquet appelé pracma en R
qui vous permet de calculer EnAp. À des fins d'illustration, j'ai utilisé 3 séries chronologiques différentes et calculé les nombres ApEn.
- Série 1: La célèbre série chronologique AirPassenger - est hautement déterministe et nous devrions être en mesure de prévoir facilement.
- Série 2: Sunspot Time Series - est très bien définie mais devrait être moins prévisible que la série 1.
- Série 3: nombre aléatoire Il n'y a aucun moyen de prévoir cette série.
Donc, si nous calculons ApEn, la série 1 devrait être inférieure à la série 2 devrait être très très inférieure à la série 3.
Ci-dessous, l'extrait R qui calcule ApEn pour les trois séries.
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
Ce n'est pas ce à quoi je m'attendais. La série aléatoire a un nombre inférieur à la série AirPassenger bien définie. Même si j'augmente le nombre aléatoire à 100, j'obtiens toujours ce qui suit qui est inférieur à la série bien définie série 2 / Sunspot.yealry.
> series3 <- approx_entropy(rnorm(1:100))
> series3
[1] 0.747275
Voici mes questions:
- Il y a 2 paramètres dans le calcul de ApEn (
m
etr
)? Comment les déterminer. J'ai utilisé les valeurs par défaut dans leR
code ci-dessus. - Qu'est-ce que je fais de manière incorrecte qui montre que de manière incorrecte, ApEn est inférieur pour les nombres aléatoires par rapport à une série bien définie telle que sunspot.yearly.
- Dois-je désaisonnaliser / décourager la série, puis estimer ApEn. L'auteur a cependant appliqué directement ApEn à la série.
- Existe-t-il un autre moyen de déterminer si la série est prévisible?
la source
Réponses:
Les paramètres
m
etr
, impliqués dans le calcul de l' entropie approximative (ApEn) des séries chronologiques, sont la longueur de la fenêtre (séquence) et la tolérance (valeur du filtre) , en conséquence. En fait, en termes dem
,r
ainsi que deN
(nombre de points de données), ApEn est défini comme «logarithme naturel de la prévalence relative des modèles répétitifs de longueurm
par rapport à ceux de longueurm + 1
» (Balasis, Daglis, Anastasiadis & Eftaxias, 2011 , p. 215):Par conséquent, il apparaît que le changement de la tolérance
r
permet de contrôler la granularité (temporelle) de la détermination de l'entropie des séries chronologiques. Néanmoins, l'utilisation des valeurs par défaut pour les deux paramètresm
etr
danspracma
les appels de fonction d'entropie du package fonctionne correctement. Le seul correctif qui doit être fait pour voir la relation correcte des valeurs d'entropie pour les trois séries temporelles (entropie inférieure pour des séries plus bien définies, entropie supérieure pour des données plus aléatoires) est d' augmenter la longueur du vecteur de données aléatoires :Les résultats sont attendus - comme la prévisibilité des fluctuations diminue de plus déterminé
series1
à plus aléatoireseries 3
, leur entropie augmente en conséquence:ApEn(series1) < ApEn(series2) < ApEn(series3)
.En ce qui concerne les autres mesures de la prévisibilité , vous voudrez peut-être vérifier les erreurs d'échelle absolues moyennes (MASE) - voir cette discussion pour plus de détails. L'analyse des composants prévisibles semble également être une approche nouvelle et intéressante pour déterminer la prévisibilité des séries chronologiques. Et, on peut s'y attendre, il existe également un
R
package pour cela - ForeCA .Références
Balasis, G., Daglis, IA, Anastasiadis, A., et Eftaxias, K. (2011). Détection des changements de complexité dynamique dans la série Dst time en utilisant des concepts d'entropie et une analyse de gamme redimensionnée. Dans W. Liu et M. Fujimoto (éd.), The Dynamic Magnetosphere, IAGA Special Sopron Book, Series 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Springer. Extrait de http://members.noa.gr/anastasi/papers/B29.pdf
Georg M. Goerg (2013): Analyse des composants prévisibles. JMLR, W&CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13
la source
pracma::sample_entropy()
fonction et la relation de résultats correcte à travers la série chronologique est également valable dans ce scénario.Chaque série chronologique est composée de 3 composants: tendance, saisonnalité et aléatoire. Si les données présentent une tendance forte et / ou sont fortement saisonnières, la prévision sera relativement facile. Si les données sont principalement aléatoires, par définition, vous ne pouvez rien prédire.
la source