Jedną z ważnych kwestii, przed którymi stoją prognozy, jest to, czy daną serię można prognozować, czy nie?
Natknąłem się na artykuł zatytułowany „ Entropia jako wskaźnik Priori przewidywalności ” autorstwa Petera Catta, który wykorzystuje aproksymalną entropię (ApEn) jako miarę względną do określenia danego szeregu czasowego.
Artykuł mówi:
„Mniejsze wartości ApEn wskazują na większą szansę, że po zestawie danych pojawią się podobne dane (prawidłowość). I odwrotnie, większa wartość ApEn wskazuje na mniejszą szansę na powtórzenie podobnych danych (nieregularność). Dlatego większe wartości przenoszą więcej nieporządku , losowość i złożoność systemu. ”
Po nim następują wzory matematyczne do obliczania ApEn. Jest to interesujące podejście, ponieważ zapewnia wartość liczbową, której można użyć do oceny możliwości prognozowania w sensie względnym. Nie wiem, co oznacza przybliżona entropia, czytam o tym więcej.
Jest to pakiet o nazwie pracma w R
który pozwala obliczyć APEN. Dla celów ilustracyjnych wykorzystałem 3 różne szeregi czasowe i obliczyłem liczby ApEn.
- Seria 1: Słynna seria czasowa AirPassenger - jest wysoce deterministyczna i powinniśmy być w stanie łatwo przewidzieć.
- Seria 2: Sunspot Time Series - jest bardzo dobrze zdefiniowana, ale powinna być mniej przewidywalna niż seria 1.
- Seria 3: Liczba losowa Nie ma możliwości przewidzenia tej serii.
Jeśli więc obliczymy ApEn, seria 1 powinna być mniejsza niż seria 2 powinna być bardzo, bardzo mniejsza seria 3.
Poniżej znajduje się fragment kodu R, który oblicza ApEn dla wszystkich trzech serii.
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
Nie tego się spodziewałem. Seria losowa ma niższą liczbę niż dobrze określona seria AirPassenger. Nawet jeśli zwiększę liczbę losową do 100, nadal otrzymuję następujący wynik, który jest mniejszy niż dobrze zdefiniowana seria 2 / Seria Sunspot.yealry.
> series3 <- approx_entropy(rnorm(1:100))
> series3
[1] 0.747275
Poniżej moje pytania:
- Istnieją 2 parametry w obliczaniu ApEn (
m
ir
)? Jak je ustalić. Użyłem wartości domyślnych wR
powyższym kodzie. - Co robię niepoprawnie, to pokazuje, że niepoprawnie ApEn jest niższy dla liczb losowych w porównaniu z dobrze zdefiniowaną serią, taką jak plamka słoneczna. Rok.
- Czy powinienem zdezasonalizować / odrzucić serię, a następnie oszacować ApEn. Autor zastosował jednak ApEn bezpośrednio do serii.
- Czy istnieje inny sposób ustalenia, czy seria jest przewidywalna?
Odpowiedzi:
Parametry
m
ir
, zaangażowane w obliczanie przybliżonej entropii (ApEn) szeregów czasowych, to odpowiednio długość okna (sekwencja) i tolerancja (wartość filtra) . W rzeczywistości, zarówno pod względemm
,r
jak iN
(liczby punktów danych), ApEn jest definiowany jako „logarytm naturalny względnej częstości powtarzalnych wzorów długościm
w porównaniu z wzorcami długościm + 1
” (Balasis, Daglis, Anastasiadis i Eftaxias, 2011 , s. 215):Wydaje się zatem, że zmiana tolerancji
r
pozwala kontrolować (czasową) ziarnistość określania entropii szeregów czasowych. Niemniej jednak użycie wartości domyślnych dla obu parametrówm
ir
parametrów wpracma
wywołaniach funkcji entropii pakietu działa dobrze. Jedyną poprawką, którą należy zrobić, aby zobaczyć prawidłową relację wartości entropii dla wszystkich trzech szeregów czasowych (niższa entropia dla bardziej dobrze zdefiniowanych serii, wyższa entropia dla więcej danych losowych) to zwiększenie długości wektora danych losowych :Wyniki są spodziewane - jak przewidywalność zmian zmniejsza się od najbardziej określona
series1
większości losowoseries 3
ich entropia konsekwencji zwiększa:ApEn(series1) < ApEn(series2) < ApEn(series3)
.W odniesieniu do innych środków o forecastability , może chcesz sprawdzić średnie bezwzględne błędy skalowane (MASE) - zobaczyć dyskusję o więcej szczegółów. Prognozowana analiza komponentów wydaje się również być interesującym i nowym podejściem do określania przewidywalności szeregów czasowych. I, jak można się spodziewać, istnieje również
R
pakiet do tego - ForeCA .Bibliografia
Balasis, G., Daglis, IA, Anastasiadis, A., i Eftaxias, K. (2011). Wykrywanie dynamicznych zmian złożoności w sSeries w czasie Dst z wykorzystaniem koncepcji entropii i analizy przeskalowanego zakresu. W W. Liu i M. Fujimoto (red.), The Dynamic Magnetosphere, IAGA Special Sopron Book, Series 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Skoczek. Źródło: http://members.noa.gr/anastasi/papers/B29.pdf
Georg M. Goerg (2013): Forecastable Component Analysis. JMLR, W&CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13
źródło
pracma::sample_entropy()
funkcję i koryguje relację wyników w szeregu czasowym również w tym scenariuszu.Za każdym razem seria składa się z 3 elementów: trendu, sezonowości i losowości. Jeśli dane wykazują silny trend i / lub są sezonowe, przewidywanie będzie stosunkowo łatwe. Jeśli dane są w większości przypadkowe, to z definicji nie można niczego przewidzieć.
źródło