82 votos

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

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

1 votos

Podría incluir el gráfico real que le cuesta entender.

0 votos

Más preferentemente los datos originales que pueden utilizarse para generar el ACF "problemático".

3 votos

92voto

jldugger Puntos 7490

Una forma muy buena 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 al cribado automatizado 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 serial) es esencial para evitar confundir los períodos con otros comportamientos.

El espectro de potencia es la transformada discreta de Fourier de la función de autocovarianza de una versión convenientemente suavizada de la serie original. Si se considera la serie temporal como un muestreo de una forma de onda física, se puede estimar qué parte de la potencia total de la onda se transmite en cada frecuencia. El espectro de potencia (o periodograma ) representa la potencia en función de la frecuencia. Los patrones cíclicos (es decir, repetitivos o estacionales) aparecerán como grandes picos situados en sus frecuencias.

Como ejemplo, considere esta serie temporal (simulada) de residuos de una medición diaria realizada durante un año (365 valores).

series of residuals

Los valores fluctúan en torno a $0$ sin ninguna tendencia evidente, lo que demuestra que se han eliminado todas las tendencias importantes. La fluctuación aparece aleatorio: no se aprecia ninguna periodicidad.

Aquí hay otro gráfico de los mismos datos, dibujado para ayudarnos a ver posibles patrones periódicos.

series of residuals, filled to 0

Si miras realmente duro, puede ser capaz de discernir un patrón ruidoso pero repetitivo que se produce de 11 a 12 veces. Las largas secuencias de valores por encima de cero y por debajo de cero sugieren al menos cierta autocorrelación positiva, lo que demuestra que esta serie no es completamente aleatoria.

Aquí está el periodograma, mostrado para los periodos hasta el 91 (un cuarto de la longitud total de la serie). Se construyó con una ventana Welch y se normalizó a la unidad de área (para todo el periodograma, no sólo la parte que se muestra aquí).

periodogram

La potencia parece "ruido blanco" (pequeñas fluctuaciones aleatorias) más dos picos prominentes. Son difíciles de pasar por alto, ¿verdad? El mayor se produce en un periodo de 12 y el menor en un periodo de 52. Así, este método ha detectado un mensualmente ciclo y un semanal ciclo en estos datos. Eso es realmente todo lo que hay que hacer. Para automatizar la detección de ciclos ("estacionalidad"), basta con explorar 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.

Data decomposed into signal plus noise

Los valores se generan a partir de una suma de dos ondas sinusoidales, una con frecuencia 12 (de amplitud 3/4 al cuadrado) y otra con frecuencia 52 (de amplitud 1/4 al cuadrado). Estos son los picos detectados en el periodograma. Su suma se muestra como la curva negra gruesa. A continuación, se añadió un ruido normal de varianza 2, como muestran las barras grises claras que se extienden desde la curva negra hasta los puntos rojos. Este ruido introdujo las ondulaciones de bajo nivel en la parte inferior del periodograma, que de otro modo sería simplemente un 0 plano. Dos tercios de la variación total de los valores no son periódicos y son aleatorios, lo cual es muy ruidoso: por eso es tan difícil distinguir la periodicidad con sólo mirar los puntos. Sin embargo (en parte porque hay muchos datos), encontrar las frecuencias con el periodograma es fácil y el resultado es claro.

Las instrucciones y los buenos consejos para calcular los periodogramas aparecen en el Recetas numéricas sitio: busque la sección sobre "estimación del espectro de potencia mediante 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".

2 votos

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 se excluyeron en su ejemplo. La idea de que las series de entrada son de naturaleza determinista se enfrenta a la posible presencia de una estructura ARIMA estacional y regular. Los valores inusuales de una sola vez no tratados distorsionarán cualquier esquema de identificación basado en el periodograma debido a un sesgo a la baja de las estimaciones del periodograma, lo cual no es significativo.

0 votos

@Irish Creo que tu comentario puede exagerar un poco. Lo más elemental es buscar y tratar los "valores inusuales de una sola vez" (también conocidos como valores atípicos), así que esto sólo vale la pena mencionarlo para enfatizar que algunos estimadores de series temporales pueden ser sensibles a los valores atípicos. "De naturaleza determinista" tergiversa las ideas básicas: nadie supone que haya determinismo (como demuestra la enorme cantidad de ruido en la simulación). La simulación incorpora una señal periódica definida como modelo --siempre aproximado en la realidad-- sólo para ilustrar la conexión entre el periodograma y la estacionalidad. (Continúa...)

3 votos

Sí, los cambios de estacionalidad pueden oscurecer el periodograma (y el acf, etc.), especialmente los cambios de frecuencia (poco probables) o de fase (posibles). Las referencias en mi post dan una solución para manejar eso: recomiendan usar un ventana móvil para la estimación del periodograma. Esto es un arte, y está claro que hay trampas, por lo que gran parte del análisis de series temporales se beneficiará de un tratamiento experto, como defiendes. Pero la pregunta se refiere a si hay "otros métodos para detectar la estacionalidad" y es innegable que el periodograma es una opción estadísticamente potente, computacionalmente eficiente y fácilmente interpretable.

23voto

simmosn Puntos 304

He aquí un ejemplo que utiliza datos mensuales sobre el registro de solicitudes de desempleo de una ciudad de Nueva Jersey (de Stata, sólo porque es con lo que analicé estos datos originalmente). Seasonality ACF

Las alturas de las líneas indican la correlación entre una variable y el sth lag de la misma; el área gris le da una idea de si esta correlación es significativa (este rango es sólo una guía y no es la forma más fiable de probar la significación). Si esta correlación es alta, hay evidencia de correlación serial. Obsérvese que los periodos 12, 24 y 36 se caracterizan por ser muy elevados. Dado que se trata de datos mensuales, esto sugiere que la correlación se hace más fuerte cuando se observan los períodos de exactamente 1, 2 o 3 años anteriores. Esto es una prueba de la estacionalidad mensual.

Puede comprobar estas relaciones estadísticamente haciendo una regresión de la variable sobre variables ficticias que indiquen el componente de estacionalidad, en este caso, variables ficticias de mes. Puede comprobar la importancia conjunta de esas variables ficticias para comprobar 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. Por lo tanto, antes de probar estas variables ficticias de estacionalidad, tenemos que eliminar la correlación serial restante (normalmente incluyendo rezagos de la variable). Es posible que haya pulsos, interrupciones y todos los demás problemas de las series temporales que también hay que corregir para obtener los resultados adecuados de la prueba. No has preguntado por ellos, así que no entraré en detalles (además, hay muchas preguntas de CV sobre esos temas). (Sólo para alimentar tu curiosidad, esta serie requiere los dummies del mes, un solo retardo de sí misma, y un componente de desplazamiento para deshacerse de la correlación serial).

5voto

Owen Fraser-Green Puntos 642

La estacionalidad puede cambiar, y de hecho lo hace, a lo largo del tiempo, por lo que las medidas resumidas pueden ser bastante inadecuadas para detectar la estructura. Es necesario comprobar la transitoriedad de los coeficientes ARIMA y, a menudo, los cambios en las "variables ficticias 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-k años hay pruebas de un efecto de junio. Un simple efecto compuesto de junio podría no ser significativo, ya que el efecto no fue constante a lo largo del tiempo. Del mismo modo, un componente ARIMA estacional también puede haber cambiado. Hay que tener cuidado de incluir los cambios a nivel local y/o las tendencias temporales locales, al tiempo que se garantiza que la varianza de los errores ha permanecido constante a lo largo del tiempo. No se deben evaluar las transformaciones como GLS/mínimos cuadrados ponderados o transformaciones de potencia como logaritmos/raíces cuadradas, etc. en los datos originales, sino en los errores de un modelo provisional. Los supuestos gaussianos no tienen nada que ver con los datos observados, sino con los errores del modelo. Esto se debe a los fundamentos de las pruebas estadísticas que utilizan la relación entre una variable chi-cuadrado no central y una variable chi-cuadrado central.

Si quiere publicar una serie de ejemplo de su mundo, estaré encantado de proporcionarle a usted y a la lista un análisis exhaustivo que lleve a la detección de la estructura estacional.

2voto

JornC Puntos 81

La respuesta de Charlie es buena, y es por donde yo empezaría. Si no quieres usar gráficos ACF, podrías crear k-1 variables ficticias para los k periodos de tiempo presentes. Entonces puedes 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: dummy Q2 es 1 si es el segundo trimestre, si no 0 la variable ficticia Q3 es 1 si es el tercer trimestre, si no 0 la variable ficticia Q4 es 1 si es el cuarto trimestre, si no, 0 Tenga en cuenta que el trimestre 1 es el caso base (las 3 variables ficticias son cero)

Tal vez quiera consultar también 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 sencillo para empezar.

-2voto

lajos Puntos 13791

Soy un poco nuevo en 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 autoregresión (incluyendo estacionalidad). Intenta crear un vector de seno

0 votos

El ajuste de senos/cosenos, etc., puede ser útil para algunas series temporales físicas/eléctricas, pero hay que tener en cuenta el sesgo de especificación del modelo (MSB).

2 votos

La autoregresión no implica estacionalidad.

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