13 votos

¿Cómo determinar el Forecastability de serie de tiempo?

Uno de los temas importantes a los que se enfrentan por los meteorólogos es si la serie puede ser previsto o no ?

Me topé con un artículo titulado "la Entropía como Indicador, a Priori, de la Previsibilidad" por Pedro Catt que utiliza la Entropía Aproximada (ApEn) como una medida relativa para determinar de una serie de tiempo dada es forecastable.

El artículo dice:

"Más pequeño ApEn valores indican una mayor probabilidad de que un conjunto de datos ser seguido por datos similares (regularidad). Por el contrario, un valor mayor de ApEn indica una menor probabilidad de datos similares se repitan (irregularidad). Por lo tanto, los mayores valores a transmitir más desorden, el azar, la y la complejidad del sistema."

Y es seguido por fórmulas matemáticas para el cálculo de ApEn. Este es un enfoque interesante porque proporciona un valor numérico que puede ser utilizado para evaluar forecastablity en sentido relativo. No sé qué Aproximado de Entropía significa, estoy leyendo más sobre él.

Hay un paquete llamado pracma en R que le permite calcular ApEn. Para una ilustración, he utilizado 3 diferentes series de tiempo y se calcula de la ApEn números.

  1. Serie 1: El famoso AirPassenger serie de tiempo - es altamente determinista y debemos ser capaces de prever fácilmente.
  2. Serie 2: de las Manchas solares de la Serie de Tiempo - está muy bien definido, pero debe ser menos forecastable de la serie 1.
  3. Serie 3: Número Aleatorio no Hay manera de pronóstico de esta serie.

Así, si calculamos ApEn, Serie 1 debe ser menor que la Serie 2 debe ser muy muy inferior a la de la Serie 3.

Abajo está la R fragmento de código que calcula ApEn para todos los tres de la serie.

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

Esto no es lo que yo esperaba. El azar de la serie tiene un número menor que el bien definidos AirPassenger de la serie. Incluso si puedo aumentar el número al azar a 100, todavía se me pone el siguiente que es menos bien definido, el de la serie 2/Manchas solares.yealry de la serie.

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

A continuación son mis preguntas:

  1. Hay 2 parámetros en el cálculo de ApEn (m y r) ? Cómo determinar. Iused valores predeterminados en la R código anterior.
  2. ¿Qué estoy haciendo incorrectamente que está mostrando que, erróneamente, que ApEn es menor para los números aleatorios frente a una bien definida de la serie, tales como manchas solares.anual.
  3. Debo deseasonalize/detrend la serie y, a continuación, la estimación de ApEn. El autor, sin embargo, se ha aplicado ApEn directamente a la serie.
  4. ¿Hay alguna otra manera para determinar si la serie es forecastable ?

8voto

AusTravel Puntos 6

Parámetros m y r, que intervienen en el cálculo de la entropía aproximada (ApEn) de series de tiempo, son de la ventana (secuencia) de la longitud y la tolerancia (valor de filtro), correspondientemente. De hecho, en términos de m, r así como N (número de puntos de datos), ApEn es definido como "el logaritmo natural de la prevalencia relativa de los patrones repetitivos de longitud m en comparación con los de longitud m + 1" (Balasis, Daglis, Anastasiadis Y Eftaxias, 2011, p. 215):

$$ ApEn(m, r, N) = \Phi^m(r) - \Phi^{m+1}(r), $$

$\texto{donde }$

$$ \Phi^m(r) = {\LARGE{\Sigma}_i} lnC^m_i(r)/(N - m + 1) $$

Therefore, it appears that changing the tolerance r allows to control the (temporal) granularity of determining time series' entropy. Nevertheless, using the default values for both m and r parameters in pracma package's entropy function calls works fine. The only fix that needs to be done to see the correct entropy values relation for all three time series (lower entropy for more well-defined series, higher entropy for more random data) is to increase the length of random data vector:

 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 

The results are as expected - as the predictability of fluctuations decreases from most determined series1 to most random series 3, their entropy consequently increases: ApEn(series1) < ApEn(series2) < ApEn(series3).

In regard to other measures of forecastability, you may want to check mean absolute scaled errors (MASE) - see this discussion for more details. Forecastable component analysis also seems to be an interesting and new approach to determining forecastability of time series. And, expectedly, there is an R package for that, as well - ForeCA.

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

Here $\Omega \en [0, 1]$ is a measure of forecastability where $\Omega(ruido blanco) = 0\$ and $%\Omega(sinusoide) = 100 \%$.

Referencias

Balasis, G., Daglis, I. A., Anastasiadis, A., & Eftaxias, K. (2011). La detección de la dinámica de la complejidad de los cambios en el horario de verano el tiempo sSeries el uso de conceptos de entropía y reescalado rango de análisis. En W. Liu y M. Fujimoto (Eds.), La Dinámica de la Magnetosfera, IAGA Especial Sopron Libro, Serie 3, 211. doi:10.1007/978-94-007-0501-2_12. Springer. Recuperado de http://members.noa.gr/anastasi/papers/B29.pdf

Georg M. Goerg (2013): Forecastable Análisis De Los Componentes. JMLR, W&CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13

0voto

Cada vez que la serie se compone de 3 componentes: tendencia, estacionalidad y al azar. Si los datos exhibe una tendencia fuerte y es altamente estacionales, predicción será relativamente fácil. Si los datos son en su mayoría al azar, entonces por definición no se puede predecir nada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X