¿Qué método se puede usar para detectar la estacionalidad en los datos?

56

Quiero detectar la estacionalidad en los datos que recibo. Hay algunos métodos que he encontrado, como el gráfico de subserie estacional y el gráfico de autocorrelación, pero la cuestión es que no entiendo cómo leer el gráfico, ¿alguien podría ayudarme? La otra cosa es, ¿hay otros métodos para detectar la estacionalidad con o sin el resultado final en el gráfico?

Danial
fuente
1
puede incluir el gráfico real que tiene problemas para entender.
Karl
Más preferiblemente, los datos originales que pueden usarse para generar el ACF "problemático".
IrishStat
1
ver: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu y D Wang, 2011: Sobre el cambio de El Niño: una visión desde el tiempo anual ciclo, variabilidad interanual y estado medio. J. Climate, 24 (24), 6486–6500

Respuestas:

70

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).

serie de residuos

0

Aquí hay otra gráfica de los mismos datos, dibujada para ayudarnos a ver posibles patrones periódicos.

serie de residuos, llenados hasta 0

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í).

periodograma

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.

Datos descompuestos en señal más ruido

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". Rtiene código para la estimación del periodograma . Estas ilustraciones fueron creadas en Mathematica 8; el periodograma se calculó con su función "Fourier".

whuber
fuente
2
La suposición "después de eliminar cualquier tendencia general" es el talón de Aquiles, ya que puede haber muchas tendencias temporales, muchos cambios de nivel, todos los cuales fueron excluidos en su ejemplo. La idea de que las series de entrada son de naturaleza determinista va en contra de lo posible presencia de estructura ARIMA estacional y regular. Los valores únicos inusuales no tratados distorsionarán cualquier esquema de identificación basado en periodograma debido a un sesgo a la baja en las estimaciones de periodograma que no tienen importancia
IrishStat
@Irlandés Creo que tu comentario puede exagerar un poco. Es muy elemental buscar y tratar los "valores únicos inusuales" (también conocidos como valores atípicos), por lo que esto solo vale mencionar que algunos estimadores de series temporales pueden ser sensibles a los valores atípicos. La "naturaleza determinista" tergiversa las ideas básicas: nadie supone que hay determinismo (como lo demuestra la gran cantidad de ruido en la simulación). La simulación incorpora una señal periódica definida como modelo, siempre aproximada en realidad, solo para ilustrar la conexión entre el periodograma y la estacionalidad. (Continúa ...)
whuber
2
Sí, los cambios en la estacionalidad pueden oscurecer el periodograma (y el acf, etc.), especialmente los cambios en la frecuencia (poco probable) o fase (posible). Las referencias en mi publicación dan una solución para manejar eso: recomiendan usar una ventana móvil para la estimación del periodograma. Hay un arte en esto, y claramente hay dificultades, por lo que muchos análisis de series de tiempo se beneficiarán del tratamiento experto, como usted defiende. Pero la pregunta se pregunta si hay "otros métodos para detectar la estacionalidad" e indudablemente el periodograma es una opción estadísticamente poderosa, computacionalmente eficiente y fácilmente interpretable.
whuber
En mi mundo, usar senos / cosenos son "efectos deterministas" muy parecidos a los indicadores del mes del año. El ajuste de cualquier modelo especificado previamente restringe los valores ajustados a un patrón especificado por el usuario, a menudo por debajo del estándar. Los datos deben ser "escuchados" como ayudando al analista / software de computadora avanzado a discernir efectivamente entre entradas fijas y estocásticas. de la serie En mi opinión, la utilización del periodograma "sobreventa" de modelos estadísticos simples
IrishStat
2
@whuber Repetir lo mismo podría no ser útil. Sin embargo, también podría ser bueno corregir el párrafo debajo del periodograma para decir que los picos se encuentran en una "frecuencia de" 12 y 52 veces al año, y no en un "período de". También podría ser bueno arreglar la trama para decir "frecuencia" en lugar de "período" si crees que no es demasiado molesto.
Celelibi
19

Aquí hay un ejemplo que usa datos mensuales sobre las solicitudes de registro de desempleo de una ciudad de Nueva Jersey (de Stata, solo porque eso es lo que analicé originalmente en estos datos). Estacionalidad ACF

Las alturas de las líneas indican la correlación entre una variable y el sth lag de sí misma; el área gris le da una idea de si esta correlación es significativa (este rango es solo una guía y no es la forma más confiable de probar la importancia). Si esta correlación es alta, hay evidencia de correlación en serie. Tenga en cuenta las jorobas que ocurren alrededor de los períodos 12, 24 y 36. Dado que se trata de datos mensuales, esto sugiere que la correlación se vuelve más fuerte cuando se miran períodos exactamente 1, 2 o 3 años anteriores. Esto es evidencia de la estacionalidad mensual.

Puede probar estas relaciones estadísticamente haciendo retroceder la variable en variables ficticias que indican el componente de estacionalidad --- aquí, dummies de mes. Puede probar la importancia conjunta de esos maniquíes para evaluar la estacionalidad.

Este procedimiento no es del todo correcto, ya que la prueba requiere que los términos de error no estén correlacionados en serie. Entonces, antes de probar estos dummies de estacionalidad, necesitamos eliminar la correlación serial restante (típicamente incluyendo rezagos de la variable). Puede haber pulsos, interrupciones y todos los demás problemas de series temporales que también necesita corregir para obtener los resultados apropiados de la prueba. No preguntaste sobre eso, así que no entraré en detalles (además, hay muchas preguntas de CV sobre esos temas). (Solo para alimentar su curiosidad, esta serie requiere los dummies mensuales, un solo retraso de sí mismo y un componente de cambio para deshacerse de la correlación serial).

Charlie
fuente
4

La estacionalidad puede cambiar, y lo hace a menudo, con el tiempo, por lo que las medidas de resumen pueden ser bastante inadecuadas para detectar la estructura. Hay que probar la transitoriedad en los coeficientes ARIMA y, a menudo, los cambios en los "dummies estacionales". Por ejemplo, en un horizonte de 10 años, puede que no haya habido un efecto de junio durante los primeros k años, pero en los últimos 10 años hay evidencia de un efecto de junio. Un simple efecto compuesto de junio podría no ser significativo ya que el efecto no fue constante en el tiempo. De manera similar, un componente ARIMA estacional también puede haber cambiado. Se debe tener cuidado para incluir los cambios a nivel local y / o las tendencias de tiempo local al tiempo que se garantiza que la variación de los errores se ha mantenido constante en el tiempo. No se deben evaluar transformaciones como GLS / mínimos cuadrados ponderados o transformaciones de potencia como registros / raíces cuadradas, etc. en los datos originales pero en los errores de un modelo tentativo. Los supuestos gaussianos no tienen nada que ver con los datos observados, sino que tienen que ver con los errores del modelo. Esto se debe a los fundamentos de las pruebas estadísticas que utilizan la relación de una variable de chi-cuadrado no central a una variable de chi-cuadrado central.

Si desea publicar una serie de ejemplos de su mundo, me complacería proporcionarle a usted y a la lista un análisis exhaustivo que conduzca a la detección de la estructura estacional.

IrishStat
fuente
1

La respuesta de Charlie es buena, y es donde comenzaría. Si no desea utilizar gráficos ACF, puede crear variables ficticias k-1 para los k períodos de tiempo presentes. Luego puede ver si las variables ficticias son significativas en una regresión con las variables ficticias (y probablemente un término de tendencia).

Si sus datos son trimestrales: ficticio Q2 es 1 si este es el segundo trimestre, de lo contrario 0 ficticio Q3 es 1 si este es el tercer trimestre, de lo contrario 0 ficticio Q4 es 1 si este es el cuarto trimestre, de lo contrario 0 Tenga en cuenta que el trimestre 1 es el caso base (los 3 dummies cero)

Es posible que también desee consultar la "descomposición de series temporales" en Minitab, a menudo llamada "descomposición clásica". Al final, es posible que desee utilizar algo más moderno, pero este es un lugar simple para comenzar.

zbicyclist
fuente
0

Me gustaría aceptar la oferta de ayuda del usuario de IrishStat o de cualquier otra persona en mi serie de ejemplos del mundo real. Estoy tratando de producir un índice estacional basado en los últimos 5 años de precios de futuros del petróleo crudo. He logrado producir un promedio estacional simple que se puede ver aquí .

Sin embargo, me gustaría reproducir un gráfico estacional anual continuo (supongo que continuo significa que el inicio y el final del año tienen el mismo valor) y está en una escala de cero a 100 como se muestra en la imagen siguiente: ingrese la descripción de la imagen aquí

Hay 15 años de datos de nivel de precio diario en la hoja de cálculo que se pueden descargar. Ejemplo o cualquier pista sobre cómo lograr lo anterior sería muy apreciada.

Andrej Kirda
fuente
-1

Soy un poco nuevo para R, pero mi comprensión de la función ACF es que si la línea vertical va por encima de la línea discontinua superior o por debajo de la línea discontinua inferior, hay algo de autorregresión (incluida la estacionalidad). Intente crear un vector de seno

Bill Yarberry
fuente
El ajuste de senos / cosenos, etc. puede ser útil para algunas series de tiempo físicas / eléctricas, pero debe tener en cuenta MSB, sesgo de especificación del modelo.
IrishStat
1
La autorregresión no implica estacionalidad.
Jens