Miguel C´ardenas Montes
CIEMAT, Madrid (Spain)
Madrid, 2018
(CIEMAT) Madrid, 2018 1 / 45
Descomposici´ on de Series Temporales
La idea de la descomposici´on de las series temporales es que ´esta puede ser separada en tres componentes fundamentales: una tendencia (Tt), una componente estacional (St) y un ruido o componente aleatoria (Rt),
de forma que la series se puede modelar como Yt = Tt+ St+ Rt
(CIEMAT) Madrid, 2018 3 / 45
Descomposici´ on ST II
La tendencia es responsable del crecimiento o de la reducci´on de la serie a largo plazo.
La componente estacional es responsable de la influencia estacional debido al mes, al d´ıa de la semana; y tiene que tener media nula.
El ruido es el resultado de la substracci´on de las componentes anteriores: Rt = Yt− (Tt+ St)
Producción mensual de cerveza en Australia
Año
Ml
1960 1970 1980 1990
100150200
(CIEMAT) Madrid, 2018 5 / 45
Descomposici´ on ST III
Hay dos formas de descomposici´on cl´asica, dependiendo si el modelo final es aditivo (ecuaci´on 1) o multiplicativo (ecuaci´on 2).
Yt= St+ Tt+ Et (1)
Yt = St∗ Tt∗ Et (2)
En la descripci´on que se presenta a continuaci´on se supone que la serie temporal es estacional con un periodo cuatrimestral (m = 4), anual (m = 12), o semanal (m = 7). No admite otros valores.
Nacimientos mensuales en New York
año
Nacimientos
1946 1948 1950 1952 1954 1956 1958 1960
202224262830
(CIEMAT) Madrid, 2018 7 / 45
Ejemplo ST
Time
Nacimientos NY
1946 1948 1950 1952 1954 1956 1958 1960
202224262830
(a) 6 meses
Time
Nacimientos NY
1946 1948 1950 1952 1954 1956 1958 1960
202224262830
(b) 12 Meses
MA 11 meses
Time
Nacimientos NY
1946 1948 1950 1952 1954 1956 1958 1960
202224262830
(c) 11 Meses
Time
Nacimientos NY
1946 1948 1950 1952 1954 1956 1958 1960
202224262830
(d) 12 y 24 Meses
Si la serie es aditiva hay que seguir los pasos que se detallan a continuaci´on:
1 Calcular la tendencia, ˆTt, a trav´es de un modelo 2 × mMA (Moving Average), si m es par o mMA si m es impar.
2 Calcular la serie sin tendencia yt− ˆTt.
3 Estimar la componente estacional de cada mes promediando los valores para cada mes de la serie sin tendencia (yt− ˆTt). Los valores para todos los meses son ajustados para asegurar que su suma es cero,P
1≤t≤LSt= 0, donde L es el periodo.
4 Calcular la componente resultante al restar a la serie temporal la tendencia y la parte estacional: ˆEt = yt− ˆTt− ˆSt.
(CIEMAT) Madrid, 2018 9 / 45
Ejemplo ST
Producción mensual de cerveza en Australia
Año
Ml
1960 1970 1980 1990
100150200
100150200
observed 100140
trend −2001030
seasonal −40−20020
1960 1970 1980 1990
random
Time
Decomposition of additive time series
(CIEMAT) Madrid, 2018 11 / 45
Descomposici´ on ST IV
Esta forma de descomposici´on asume que la componente estacional se repite invariante en cada periodo. Esto puede ser no asumible en algunas series temporales.
Adem´as la forma del c´alculo de la tendencia no estima ni las primeras n observaciones ni las n ´ultimas. En una serie ”corta” hay una p´erdida de datos relevante.
Tiene dificultades con los datos ”extremos”.
Pasajeros (miles) en US
Año
Pasajeros (Miles)
1960 1965 1970 1975
5101520
(CIEMAT) Madrid, 2018 13 / 45
Descomposici´ on Multiplicativa
Por el contrario si la serie es multiplicativa se siguen los pasos siguientes:
1 Calcular la tendencia a trav´es de un modelo 2 × mMA, si m es par o mMA si m es impar.
2 Calcular la serie sin tendencia yˆt
Tt.
3 Estimar la componente estacional de cada mes promediando los valores para cada mes de la serie sin tendencia (yˆt
Tt). Los valores para todos los meses son ajustados para asegurar que su suma es m, P
1≤t≤LSt = m, donde L es el periodo.
4 Calcular los residuos a trav´es de la divisi´on de los valores de la serie entre la tendencia y la componente estacional, ˆEt = yt
( ˆTt·ˆSt).
(CIEMAT) Madrid, 2018 15 / 45
Pr´ acticas
# Cargar librar´ıa library(forecast)
# Leer los datos setwd("./")
passangers <- read.csv("./monthly-us-air-passenger-miles-j.csv", header=F, dec=".", sep=";")
head(passangers) tail(passangers)
# Convertir la hoja de datos en una serie temporal
passangers.ts <- ts(passangers, frequency = 12, start = c(1960,1), end = c(1977,12))
plot(passangers.ts[,2], ylab="Pasajeros (Miles)", xlab="A~no")
(CIEMAT) Madrid, 2018 17 / 45
Pr´ acticas II
# Descomposici\’on aditiva
report <- decompose(passangers.ts[,2], type="additive") plot(report)
# Descomposici\’on multiplicativa
report <- decompose(passangers.ts[,2], type="multiplicative") plot(report)
(CIEMAT) Madrid, 2018 19 / 45
Descomposici´ on X-12 I
Este m´etodo se basa en la descomposici´on anterior a˜nadidendo algunos pasos adicionales.
En estos pasos adicionales trata de superar las dificultades que plantea la descomposici´on cl´asica.
La descomposici´on X-12 ARIMA maneja descomposici´on aditiva y multiplicativa, perosolo est´a dispobible para series mensuales o cuatrimestrales de datos.
Entre otras las mejoras incluyen: que la tendencia es generada para todas las observaciones, y que se permite que la serie temporal var´ıe suavemente.
En general es m´as robusta a observaciones an´omalas que la descomposici´on cl´asica. En el algoritmo anterior, la presencia de datos an´omalos produce un fuerte impacto en el resultado.
(CIEMAT) Madrid, 2018 21 / 45
Descomposici´ on X-12 III
La descomposici´on multiplicativa de datos mensuales sigue los siguientes pasos:
1 Calcular una media m´ovil 2 × 12 MA aplicado a los datos originales para obtener una estimaci´on de la tendencia en todos los periodos, ˆTt.
2 Calcular los ratios de los datos a la tendencia, denominados ratios centrados, yˆt
Tt.
3 Aplicar separadamente 3 × 3 MA a cada mes de los ratios centrados obtenidos anteriormente (yˆt
Tt) para obtener a estimaci´on inicial de ˆSt.
4 Dividir los ratios centrados por ˆSt para obtener una estimaci´on del residuo o resto, ˆEt
5 Reducir los valores extremos-an´omalos de Et por ˆSt para obtener un Eˆt modificado.
Multiplicar el ˆE modificado por ˆS para obtener los ratios centrados
1 Repetir el paso 3 para obneter ˆSt revisado.
2 Dividir los datos originales por la nueva estimaci´on de ˆSt para obtener una serie preliminar estacionalmente ajustada, yˆt
St
3 La tendencia es estimada aplicando una media m´ovil de Henderson pensada a la serie preliminar estacionalmente ajustada del paso anterior.
4 Repetir el paso 2 dividiendo por la nueva estimaci´on de ˆTt, yˆt
Tt.
5 Repetir los pasos desde 3 al 6 con nuevos ratios y aplicando 3 × 5 MA en vez de 3 × 3 MA.
6 Repetir el paso 8.
7 Obtener el residuo dividiendo los datos de los pasos 13 y 9.
8 Los valores extremos del residuo se modifican como en el paso 5.
9 Una serie de datos modificados es obtenido multiplicando la tendencia, la componente estacional y el residuo.
(CIEMAT) Madrid, 2018 23 / 45
Descomposici´ on X-12 V
El anterior proceso es repetido dos veces m´as usando los datos de paso 16 en cada vez. En el ciclo final el 3 × 5 MA de los pasos 11 y 12 es sustituido por algunos de los siguientes en funci´on de la variabilidad de los datos: 3 × 3 MA, 3 × 5 MA, 3 × 9 MA.
(CIEMAT) Madrid, 2018 25 / 45
Descomposici´ on STL I
La descomposi´on STL, Seasonal and Trend decomposition using Loess, siendo Loess un m´etodo para estimar relaciones no lineales.
A diferencia de X-12-ARIMA, STL puede manejar cualquier tipo de estacionalidad, la componente estacional se extiende sobre el conjunto de las observaciones, el suavizado sobre la tendencia es controlado por el usuario y es robusto contra datos an´omalos.
Cuando se especifica el tama˜no de la ventana en STL, solo los datos de la ventana son utilizados en el an´alisis de la tendencia y la estacionalidad.
Por lo tanto, el tama˜no de la ventana dar´a lugar a curvas m´as o menos suaves, en funci´on del uso de ventana mayores o m´as peque˜nas.
Adem´as las observaciones situadas dentro de la ventana son pesadas, de forma que aquella m´as centrales tienen m´as relevancia para el c´alculo que la de los extremos.
(CIEMAT) Madrid, 2018 27 / 45
Descomposici´ on STL III
Ejemplo de descomposici´on STL.
100150200
data −2001030
seasonal 100140
trend
La descomposici´on STL presenta dos par´ametros que permiten el control sobre como de r´apido se permite a la tendencia y a la
componente estacional cambiar: par´ametros trend window (t.window) y seasonal window (s.window).
Valores peque˜nos de estos par´ametros permite cambios m´as r´apidos en las componentes.
Se puede forzar que la componente estacional se puramente peri´odica.
Finalmente la descomposici´on STL presenta la desventaja que solo es posible la descomposici´on en modo de series aditivas.
(CIEMAT) Madrid, 2018 29 / 45
Pr´ acticas
beer.stl <- stl(beer.ts[,2], t.window=15,
s.window="periodic", robust=TRUE) plot(beer.stl)
100150200
data −2001030
seasonal 100140
trend
(CIEMAT) Madrid, 2018 31 / 45
Pr´ acticas
beer.stl <- stl(beer.ts[,2], t.window=15, s.window=3, robust=TRUE)
100150200
data −4002060
seasonal 80100140
trend 010
remainder
beer.stl <- stl(beer.ts[,2], t.window=15, s.window=7, robust=TRUE)
(CIEMAT) Madrid, 2018 33 / 45
Pr´ acticas
beer.stl <- stl(beer.ts[,2], t.window=7,
s.window="periodic", robust=TRUE)
100150200
data −2001030
seasonal 80120160
trend 020
remainder
(CIEMAT) Madrid, 2018 35 / 45
Descomposici´ on STL VI: significado de la barra gris
(CIEMAT) Madrid, 2018 37 / 45
Predicci´ on
Aunque la descomposici´on tiene como objetivo primario el estudio de la serie, puede ser utilizado para hacer predicciones de futuros valores.
Independientemente si la descomposici´on es aditiva o multiplicativa, la predicci´on para la serie descompuesta puede hacerse atendiendo a futuros valores siguiendo la tendencia y la componente estacional (m´etodo ingenuo estacional).
(CIEMAT) Madrid, 2018 39 / 45
Predicci´ on II
En estos casos se separa la componente estacional ˆSt y la componente estacionalmente ajustada: ˆAt= ˆTt+ ˆRt = Yt− ˆSt. Se estima que la componente estacional no cambia o lo hace muy poco, y se proyecta los valores futuros de la serie simplemente estimando la componente estacionalmente ajustada del ´ultimo a˜no.
Para proyectar los valores de la componente estacionalmente ajustada se puede utilizar cualquier m´etodo no estacional como el m´etodo de Holt.
# Naive forecast
fcast <- forecast(beer.stl, method="ets")
plot(fcast, main = "Producci´on mensual de cerveza en Australia", xlab
Producción mensual de cerveza en Australia
Año
Ml
1960 1970 1980 1990
100150200
(CIEMAT) Madrid, 2018 41 / 45
Separaci´on de Series Temporales
con Fuerte Tendencia o con Fuerte Estacionalidad
En datos con una fuerte tendencia, los datos estacionalmente ajustados, y − Sl = Tl+ Rl, deben tene una varianza mayor que la varianza del ruido o resto Rl, y por lo tanto el cociente
Var(Rl)
Var(Tl+Rl) tiene que ser peque˜no, y FT
cercano a la unidad.
Por el contrario, para series temporales con poca o nula tendencia, la varianza del resto y del resto m´as la tendencia deben ser casi iguales, y por lo tanto, el cociente Var(TVar(Rl)
l+Rl) cercano a la unidad, y FT casi nulo.
FT = max(0,1− Var(Rl) Var(Tl + Rl))
(CIEMAT) Madrid, 2018 43 / 45
Tendencia o Estacionalidad
En las series que no exhiben estacionalidad, la varianza de la componente sin tendencia
y − Tl = Sl+ Rl y del resto Rl deben ser casi iguales y, por lo tanto, FS
cercano a cero.
Por el contrario, si la series tiene una fuerte estacionalidad, el cociente
Var(Rl)
Var(Sl+Rl) debe ser cercano a cero y FS
cercano a la unidad.
FS = max(0,1− Var(Rl) Var(Sl+ Rl))
¿Preguntas?
(CIEMAT) Madrid, 2018 45 / 45