Una muy buena manera de encontrar la periodicidad en cualquier serie regular de datos es inspeccionar su espectro de potencia después de eliminar cualquier tendencia general . (Esto se presta bien a la detección automática cuando la potencia total se normaliza a un valor estándar, como la unidad). La eliminación preliminar de la tendencia (y la diferenciación opcional para eliminar la correlación en serie) es esencial para evitar períodos de confusión con otros comportamientos.
El espectro de potencia es la transformada discreta de Fourier de la función de autocovarianza de una versión adecuadamente suavizada de la serie original. Si piensa en la serie temporal como un muestreo de una forma de onda física, puede estimar la cantidad de potencia total de la onda que se transporta dentro de cada frecuencia. El espectro de potencia (o periodograma ) traza la potencia versus la frecuencia. Cíclico (es decir, patrones repetitivos o estacionales) se mostrarán como grandes picos ubicados en sus frecuencias.
Como ejemplo, considere esta serie temporal (simulada) de residuos de una medición diaria tomada durante un año (365 valores).
0
Aquí hay otra gráfica de los mismos datos, dibujada para ayudarnos a ver posibles patrones periódicos.
Si miras muy duro, podrías discernir un patrón ruidoso pero repetitivo que ocurre de 11 a 12 veces. Las secuencias más largas de valores por encima de cero y por debajo de cero al menos sugieren alguna autocorrelación positiva, lo que muestra que esta serie no es completamente aleatoria.
Aquí está el periodograma, que se muestra para frecuencias de hasta 91 (un cuarto de la longitud total de la serie). Fue construido con una ventana de Welch y normalizado al área de la unidad (para todo el periodograma, no solo la parte que se muestra aquí).
El poder se ve como "ruido blanco" (pequeñas fluctuaciones aleatorias) más dos picos prominentes. Son difíciles de perder, ¿no? El más grande ocurre en un período de 12 y el más pequeño en un período de 52. Este método ha detectado un ciclo mensual y un ciclo semanal en estos datos. Eso es realmente todo lo que hay que hacer. Para automatizar la detección de ciclos ("estacionalidad"), simplemente escanee el periodograma (que es una lista de valores) en busca de máximos locales relativamente grandes.
Es hora de revelar cómo se crearon estos datos.
Los valores se generan a partir de una suma de dos ondas sinusoidales, una con frecuencia 12 (de amplitud cuadrada 3/4) y otra con frecuencia 52 (de amplitud cuadrada 1/4). Estos son los picos detectados en el periodograma. Su suma se muestra como la curva negra gruesa. Iid Luego se agregó ruido normal de varianza 2, como lo muestran las barras de color gris claro que se extienden desde la curva negra hasta los puntos rojos. Este ruido introdujo las oscilaciones de bajo nivel en la parte inferior del periodograma, que de otro modo sería un cero plano. Dos tercios de la variación total en los valores son no periódicos y aleatorios, lo cual es muy ruidoso: por eso es Es muy difícil distinguir la periodicidad con solo mirar los puntos. Sin embargo (en parte porque hay tantos datos) encontrar las frecuencias con el periodograma es fácil y el resultado es claro.
Las instrucciones y los buenos consejos para calcular periodogramas aparecen en el sitio de Recetas Numéricas : busque la sección "Estimación del espectro de potencia utilizando la FFT". R
tiene código para la estimación del periodograma . Estas ilustraciones fueron creadas en Mathematica 8; el periodograma se calculó con su función "Fourier".