sábado, 8 de enero de 2011

Análisis de la estacionalidad de la serie.

[Este post está en construcción]
Análisis de la estacionalidad de la serie:


La variación estacional representa un movimiento periódico de la serie de tiempo. La duración de la unidad del periodo es generalmente menor que un año. Puede ser un trimestre, un mes o un día, etc. Matemáticamente, podemos decir que la serie representa variación estacional si existe un número s tal que y(t) = y(t + k×s).
Para la determinación de la componente estacional de una serie temporal se requiere la previa determinación del esquema de integración que la caracteriza (esquema aditivo, multiplicativo o mixto). Mediante el gráfico de la serie podemos identificar el esquema de integración adecuado:
Análisis de estacionalidad de la serie mediante la aproximación con variables indicadoras (dummy):
 1) se selecciona las variables indicadoras (dummy) para cada estacionalidad (s=número de estaciones)
2) se utilizan estas variables como entradas en un modelo de regresión
Nota: para datos cuatrimestrales utilizao 4 indicadores, mientras que para datos mensuales utilizaremos 12 indicadores.

Aplicación en R
#### ESTACIONALIDAD ####
#ejemplo en R con datos "jj" de Shumway & Stoffer.
jj = scan("c:/data/jj.dat") # yes forward slash
jj = ts(jj, start=1960, frequency=4)
plot(jj, ylab="Quarterly Earnings per Share")

# Análisis estacional manual en R: según Shumway & Stoffer
Q1=rep(c(1,0,0,0),length=(x)/4)
summary(lm(lag(jj))~time(jj)+Q1+Q2+Q3+Q4)

# Análisis estacional automática en R:
plot(cycle(jj),xlim=c(1960,1965)) #observamos las variables a crear
Q=factor(cycle(jj)) #crea los factores cuatrimestrales (esto es, repite 1,2,3,4 unas 21 veces)
reg=lm(lag(jj)~0+time(jj)+Q,na.action=NULL) #realizamos una regresión sin intercepto
summary(reg) #para observar los atributos de la regresión
model.matrix(reg) #para observar el modelo matricial (con las variables dummy)
plot(log(jj), type="o") #graficamos las observaciones
lines(fitted(reg), col=2) #graficamos los valores ajustados en rojo
par(mfrow=c(2,1)); plot(resid(reg)); acf(resid(reg),20) #analizamos los residuales y el ACF de ellos
#observamos que el ACF de los residuales no se ve como proceso de ruido blanco

#la diferencia entre los 2 métodos es que cuando el modelo incluye un intercepto, se necesita omitir un indicador, para un factor se omite el primer indicador, pero para una lista explícita de variables se omite el último indicador.

Otra forma de incluir la estacionalidad en los modelos, es la utilización de modelos ARIMA estacionales (o SARIMA).

Aplicación en R:
#Construcción de modelos ARIMA estacionales multiplicativos:
#ARMA(P,Q)s estacional puro, causal e invertible. cuando contamos con diferenciación estacional.
#SARIMA o ARIMA(p,d,q)x(P,D,Q)s cuando contamos con diferenciación estacional y diferenciación ordinaria.

prod=ts(scan("c:/data/prod.dat"), start=1948, frequency=12) #analizamos los datos del BPI de la Reserva Federal
par(mfrow=c(2,1)); acf(prod, 48); pacf(prod, 48) # (P)ACF de los datos muestran un decaimiento lento del ACF y un pico en lag=1 del PACF, indicando comportamiento no.estacionario y la necesidad de diferenciar la serie (diferencia primera diff(Xt)).
par(mfrow=c(2,1)); acf(diff(prod), 48);pacf(diff(prod), 48) # (P)ACF de los datos diferenciados d1. vemos picos en lag=12, 24, 36, 48 con decaimiento lento, indicando la necesidad de diferenciación estacional de los datos (diff(diff(Xt))).
par(mfrow=c(2,1));acf(diff(diff(prod),12), 48);pacf(diff(diff(prod),12), 48) # (P)ACF de los datos d1-d12. Vemos un pico en lag=12 del ACF con menores picos para lag=24,36 y picos en lag=12, 24, 36, 48 del PACF. Por lo tanto, se sugieren los modelos MA estacional de orden Q=1 y el AR estacional de orden P=2 o ambos juntos. Asimismo, para lags no estacionales (h=1,...,11) ACF y PACf decaen, indicando que debemos ajustar modelos con p>0 y q>0 para el comportamiento no-estacional de la serie, en principio seleccionamos p=1 y q=1.
#los 3 modelos sugeridos son: ARIMA(1,1,1)x(0,1,1)12, ARIMA(1,1,1)x(2,1,0)12 y ARIMA(1,1,1)x(2,1,1)12

#ajustamos el tercer modelo sugerido ARIMA(1,1,1)x(2,1,1)12 y calculamos sus AIC
prod.fit3 = arima(prod, order=c(1,1,1),seasonal=list(order=c(2,1,1), period=12)); prod.fit3
tsdiag(prod.fit3, gof.lag=48) # diagnostics
prod.pr = predict(prod.fit3, n.ahead=12) ### forecasts for the final model
U = prod.pr$pred + 2*prod.pr$se; L = prod.pr$pred - 2*prod.pr$se
month=337:372; plot(month,prod[month],type="o",xlim=c(337,384),ylim=c(100,180),ylab="Production"); lines(prod.pr$pred, col="red",type="o");lines(U, col="blue", lty="dashed");lines(L, col="blue", lty="dashed"); abline(v=372.5,lty="dotted")
ts.plot(prod,prodpr$pred, col=1:2, type="o",ylim=c(105,175), xlim=c(1975,1980));lines(U, col="blue", lty="dashed");lines(L, col="blue", lty="dashed")



FUNDAMENTOS TEÓRICOS (http://www.uhu.es/45132/ficheros_datos/practica3.pdf)

Asimismo, para la distinción entre los esquemas de integración aditivo y multiplicativo se han propuesto en la literatura distintas técnicas entre ellas serán aplicadas en esta práctica la del Análisis de los Cocientes y Diferencias Estacionales y la del Gráfico de Desviación Típica-Media.

I. Método del Análisis de las Diferencias y Cocientes Estacionales
Esta técnica permite determinar el tipo de esquema según el cual se combinan las componentes del análisis clásico de series temporales mediante la comparación de los coeficientes de variación de Pearson de las series de diferencias (d= xt - xt−p) y cocientes (c= xt / xt−p) estacionales (4):
CVd=Sd/mean(Xd) o CVc=Sc/mean(Xc) (4)
De este modo, el esquema será aditivo o multiplicativo de acuerdo con la siguiente regla
(5)(6):
CVd>CVc para el esquema multiplicativo (5)
CVd

II. Método del Gráfico de la Desviación Típica y Media
Esta técnica permite determinar el tipo de esquema según el cual se combinan las componentes del análisis clásico de series temporales mediante la representación gráfica de la media aritmética y la desviación típica de grupos de observaciones de la serie temporal.

Este gráfico se construye de tal modo que se calcula la media aritmética y la desviación típica de las observaciones incluidas en cada uno de los años de la serie temporal. Una vez computados estos dos estadísticos se procederá a la elaboración de un diagrama de dispersión para los pares (media aritmética – desviación típica) correspondientes a cada uno de los años.
Si el gráfico resultante tras la realización de esta operación presenta una tendencia clara creciente o decreciente el esquema según el cual se combinan las componentes de la serie será multiplicativo, mientras que cuando esta no se observa el esquema será aditivo.
Una vez que éste es identificado puede procederse al cálculo de la estacionalidad de la serie temporal por alguno de los métodos propuestos en la literatura: Método de la Razón a la Media Móvil, Método de la Diferencia a la Media Móvil o Método de Ajuste de las Relaciones Estacionales Respecto a la Tendencia entre otros.

  • Método de la Media Móvil para la Determinación de la Estacionalidad
La aplicación de esta técnica requiere de los siguientes pasos:

− Obtener la Componente estacional (Sik) utilizando el Método de las Medias
Móviles de determinación de la Tendencia estudiado en el apartado anterior (Utilizar un valor de p igual al número de observaciones existente dentro de cada año).

− Cálculo de los Índices Específicos de Variación Estacional (IEVEik) según el esquema de acuerdo con el que se combinan las componentes de la serie sea:
Aditivo: IEVEik=xt-Sik (15)
Multiplicativo: IEVEik=xt/Sik (16)

− Cálculo de los Índices Generales de Variación Estacional (IGVEk):
IGVEk=sum(IEVEik)/(N-1) para k=1,2,...,p (17)

− Cálculo de los Índices Generales de Variación Estacional Ajustados (IEVEAk) según el esquema de acuerdo con el que se combinan las componentes de la serie sea:
Aditivo: IGVEAk=IGVEk-mean(IGVE) (18)
Multiplicativo: IGVEAk=IGVEk/mean(IGVE)*100 (19)

− La estacionalidad de cada período vendrá representada por los Índices Generales de Variación Estacional Ajustados (IGVEAk) correspondientes a cada uno de los períodos.

Nota: Para una serie mensual con estacionalidad anual (s = 12), la serie suavizada se obtiene,
Z(k)= [1/2*Z(k-6)+Z(k-5)+...+Z(k+5)+1/2*Z(k+6) ]/12, 7<=k<=n-6
Para una serie trimestral, con estacionalidad anual (s = 4), la serie suavizada está dada por
Z(k)= [1/2*Z(k-2)+Z(k-1)+Z(k)+Z(k+1)+1/2*Z(k+1) ]/4, 3<=k<=n-2
A este procedimiento se les llama: filtro simétrico finito.

No hay comentarios:

Publicar un comentario en la entrada

Libros para descargar sobre Análisis de Series Temporales