Uma das questões importantes que os meteorologistas enfrentam é se a série fornecida pode ser prevista ou não?
Eu me deparei com um artigo intitulado " Entropia como um indicador prioritário de previsibilidade ", de Peter Catt, que usa Entropia aproximada (ApEn) como uma medida relativa para determinar uma determinada série temporal que é previsível.
O artigo diz,
"Valores menores de ApEn indicam uma chance maior de que um conjunto de dados seja seguido por dados semelhantes (regularidade). Por outro lado, um valor maior de ApEn indica uma chance menor de repetição de dados semelhantes (irregularidade). Portanto, valores maiores transmitem mais desordem , aleatoriedade e complexidade do sistema ".
E é seguido por fórmulas matemáticas para calcular ApEn. Essa é uma abordagem interessante, pois fornece um valor numérico que pode ser usado para avaliar a capacidade de previsão em sentido relativo. Não sei o que significa Entropia Aproximada, estou lendo mais sobre isso.
Há um pacote chamado pracma em R
que permite calcular ApEn. Para fins ilustrativos, usei 3 séries temporais diferentes e calculei os números ApEn.
- Série 1: A famosa série temporal do AirPassenger - é altamente determinística e devemos poder fazer previsões facilmente.
- Série 2: Série temporal das manchas solares - é muito bem definida, mas deve ser menos previsível que a série 1.
- Série 3: Número aleatório Não há como prever esta série.
Portanto, se calcularmos o ApEn, a Série 1 deve ser menor que a Série 2 e deve ser muito, muito menor que a Série 3.
Abaixo está o trecho R que calcula o ApEn para todas as três 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
Não é o que eu esperava. A série aleatória tem um número menor que a série AirPassenger bem definida. Mesmo se eu aumentar o número aleatório para 100, ainda assim recebo o que é menor do que a bem definida série 2 / Sunspot.yealry.
> series3 <- approx_entropy(rnorm(1:100))
> series3
[1] 0.747275
Abaixo estão minhas perguntas:
- Existem 2 parâmetros no cálculo de ApEn (
m
er
)? Como determiná-los. Utilizei padrões noR
código acima. - O que estou fazendo incorretamente está mostrando que incorretamente o ApEn é mais baixo para números aleatórios vs. uma série bem definida, como sunspot.yearly.
- Devo dessazonalizar / prejudicar a série e depois estimar o ApEn. O autor, no entanto, aplicou o ApEn diretamente à série.
- Existe outra maneira de determinar se a série é previsível?
Respostas:
Os parâmetros
m
er
envolvidos no cálculo da entropia aproximada (ApEn) das séries temporais são o comprimento da janela (sequência) e a tolerância (valor do filtro) , correspondentemente. De fato, em termos dem
(r
bem comoN
(número de pontos de dados), ApEn é definido como "logaritmo natural da prevalência relativa de padrões repetitivos de comprimentom
em comparação com aqueles de comprimentom + 1
" (Balasis, Daglis, Anastasiadis & Eftaxias, 2011 215):Portanto, parece que alterar a tolerância
r
permite controlar a granularidade (temporal) da determinação da entropia das séries temporais. No entanto, usar os valores padrão para ambosm
er
parâmetros naspracma
chamadas de função de entropia do pacote funciona bem. A única correção que precisa ser feita para ver a relação correta dos valores de entropia para todas as três séries temporais (entropia mais baixa para séries mais bem definidas, entropia mais alta para mais dados aleatórios) é aumentar o comprimento do vetor de dados aleatórios :Os resultados são como é esperado - como a previsibilidade das flutuações diminui de mais determinada
series1
a mais aleatórioseries 3
, o seu entropia, consequentemente, aumenta a:ApEn(series1) < ApEn(series2) < ApEn(series3)
.Em relação a outras medidas de previsibilidade , convém verificar os erros médios absolutos de escala (MASE) - consulte esta discussão para obter mais detalhes. A análise de componentes previsíveis também parece ser uma abordagem nova e interessante para determinar a previsibilidade de séries temporais. E, como esperado, também há um
R
pacote para isso - o ForeCA .Aqui é uma medida de previsibilidade em que e .Ω ( w h i t e n o i s de e ) = 0 %Ω∈[0,1] Ω(whitenoise)=0% Ω(sinusoid)=100%
Referências
Balasis, G., Daglis, IA, Anastasiadis, A. e Eftaxias, K. (2011). Detecção de alterações de complexidade dinâmica no ssteries Dst time usando conceitos de entropia e análise de escala redimensionada. Em W. Liu e M. Fujimoto (Eds.), The Dynamic Magnetosphere, IAGA Special Sopron Book, Série 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Springer. Disponível em http://members.noa.gr/anastasi/papers/B29.pdf
Georg M. Goerg (2013): Análise de Componentes Previsíveis. JMLR, W&CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13
fonte
pracma::sample_entropy()
função e a relação de resultados corrigidos ao longo das séries temporais também nesse cenário.Todas as séries temporais são compostas por 3 componentes: Tendência, Sazonalidade e Aleatória. Se os dados exibirem uma tendência forte e / ou forem altamente sazonais, a previsão será relativamente fácil. Se os dados são aleatórios, então, por definição, você não pode prever nada.
fonte