Trabajo No 3 de Técnicas de Pronósticos Análisis de Serie de Tiempo: Modelos SARIMA Noviembre de 2010 1. Introducción El objetivo del trabajo es analizar una serie de tiempo utilizando las dos metodologı́as que se introdujeron en el curso: los modelos de descomposición con errores ARMA y los modelos SARIMA. Cada grupo tiene asignada una serie de la lista en la sección siguiente. El trabajo debe contener el análisis de los dos modelos y los pronósticos, examinando la calidad de éstos mediante la metodologı́a de validación cruzada. Es decir, se debe dejar una sección de los datos al final de la serie para comparalos con los pronósticos de ambos modelos. Esta metodologı́a se ha explicado varias veces en diferentes ejemplos en los talleres. 2. Puntos y Series para los Grupos Al final del tema está la lista con las asignaciones para cada grupo ó persona de la serie asignada. La lista es la siguiente. 1. Consumo de agua mensual en el área metropolitana en metros cúbicos, por estrato, para los estratos 1,2,3,4,5,6, incluyendo el consumo total. Desde enero de 2002. En total son 7 series. Los datos están en el archivo consumo.dat, en la página del curso. Escoger una de las series ó una combinación de las mismas, como se se utilizaron en el trabajo No 2, que mejor se adapte al análisis comparativo de las dos metodologı́as. 2. Consumo de gas, trimestral, en el Reino Unido entre 1960 y 1986 en millones de therms ( 1 therm, unidad de energı́a calórica = 29.3 KWH). Esta serie está dentro del R en la base de datos que viene con el software. Se carga en el programa escribiendo simplemente: y = gasUK. 3. Análisis de la serie de la variación porcentual del ipc entre 08/01/2000 y 07/01/2010, datos mensuales tomados de la página de investigaciones económicas de Bancolombia. 1 Archivo ipc2000 2010.prn Con relación a los resultados de los Trabajos No’s 1 y 2, continuar con el análisis SARIMA y comparar los pronósticos con el modelo de descomposición con errores ARMA. Usar la metodologı́a de validación cruzada dejando los últimos 6 datos para comparación de los pronósticos. En lo posible actualizar los datos del archivo. 4. Análisis la serie: demanda energia 18.dat, con datos diarios de demanda de energı́a durante la hora 18:00 (6 pm) en una zona de Bogotá. Las unidades son Gw. El objetivo del análisis es desarrollar un modelo para la componente estacional y realizar pronósticos con ésta. Después de leer los datos escoja 2 años, de 52 semanas cada uno, de 7 dı́as cada semana, y ası́gnele frecuencia 7, ya que una de las componentes estacionales. 5. Utilizar una serie simulada con el modelo SETAR(2,2) propuesto en el Trabajo No 1, similar a la de los linces. La no linealidad aparece como una aparente periodicidad. Aunque los resultados con el modelo de descomposición no fueron buenos, de todas maneras compararlos con SARIMA y con redes neuronales. Con la validación cruzada se requiere tener pronósticos a varios pasos con las redes neuronales. Como esto no está implementado en R todavı́a, se puede dejar pendiente. 3. Una Guı́a para el Análisis SARIMA Los siguientes pasos son una guı́a para el análisis SARIMA, que complementa los programas de los talleres en la sala de cómputo. 1. Declare la series un objeto ts, con la frecuencia correspondiente a la definición de la serie: trimestral (s=4) mensual, (s=12). 2. Obtenga una estimación de la tendencia y la estacionalidad con el filtro stl. Se asumirá que existe tanto tendencia lineal como componente estacional, al menos inicialmente, antes de ajustar los dos tipos de modelos. Utilice la instrucción m2 = stl(y, s.window = ’per’). 3. Ajuste un modelo con tendencia lineal, estacionalidad y componente aleatoria tipo ARMA-ARIMA, usando las instrucciones siguientes. Y calcule pronósticos a 4 años. Supongamos que la serie es y. Use las instrucciones siguientes. source("crear_patron_estacional.r") s = 12 2 n = length(y) It = crear_patron_estacional(s,n) t = seq(1,n,1) X = It[,1:(s-1)] m1 = arima(y, order = c(0,0,0), xreg = data.frame(t,X)) summary(m1) et = m1$residuals tsdisplay(et) Supongamos que e(t) no resulta ruido blanco, sino que determinamos que es AR(4), a partir del resultado de tsdisplay(et) de la aplicación de auto.arima(et). Entonces se re-estima el modelo colocando m2 = arima(y, order = c(4,0,0), xreg = data.frame(t,X)) summary(m2) et = m2$residuals tsdisplay(et) Antes de realizar pronósticos, comprobar que los residuos et son ruido blanco. Reporte la gráfica de fac y facp. Prueba LB. Para los pronósticos, primero se generan los valores de t y las variables estacionales para 4 años. Utilice las instrucciones siguientes Itp = crear_patron_estacional(s,s*4) tp = seq(n+1,n+4*s,1) Itpa = Itp[,1:(s-1)] ypred1 = (predict(m1, n.ahead = 4*s, newxreg = data.frame(tp,X=Itpa), se.fit = TRUE)) ypred.1 = ypred1$pred plot(tt,c(y,ypred.1), type = ’l’, col=’red’,lty=2 ) lines(tp,ypred.1, col=’dark red’) 4. Ajuste un modelo SARIMA o ARIMA para los datos en y. El objetivo es comparar los pronósticos de estos modelos con los del modelo de descomposición que está en la Gráfica No 1. Aplique la función auto.arima( ), estime el modelo y calcule los pronósticos. Utilice los siguientes comandos. Supongamos que auto.arima detecta el modelo arima(2,1,1)(1,0,1)12 entonce se programa 3 auto.arima(y) m2 = arima(y,order=c(2,1,1),seasonal=list(order=c(1,0,1), period = s)) summary(m2) et = m2$residuals tsdisplay(et) Asegúrese que los residuos et son ruido blanco para poder proceder a calcular los pronósticos ypreda = predict(m4, n.ahead = 4*s, se.fit = TRUE) y.pred = ypreda$pred plot(tt,c(y,y.pred), type = ’l’, col=’red’,lty=2 ) lines(tp,y.pred, col=’dark red’) 5. Por último ajuste el modelo SARIMA(0,1,1)(0,1,1)s , es decir, el modelo airline, a la serie y, y calcule pronósticos durante 4 años. Las instrucciones son completamente iguales al punto 3. Llame la gráfica de los pronósticos Gráfica No 3. 6. Reporte las tres gráficas de los pronósticos. Reporte una tabla con los valores de BIC y MAPE para los tres modelos: descomposición, arima, airline. Finalmente, recomiende uno de los tres para pronóstico. Y reporte los pronósticos (cifras). 7. Coloque algunas conclusiones que considere de importancia. Algunas sugerencias pueden ser las siguientes preguntas. a) Para la serie de consumo de gas, es recomendable usar logaritmo?. Por qué?. b) Para la serie de consumo de gas, si se observan las amplitudes de la componente estacional parecen constantes de 1960 a 1971, pero luego se incrementan de 1971 a 1979, y luego se estabilizan, esto invalida el modelo de descomposición que asume una estacionalidad global y favorece el modelo SARIMA? c) En las series de consumo de agua, si se coloca la instrucción t1 = m1$time.series[,2] y se grafica la serie x = diff(t1,1), se obtiene una estimación de una tasa de consumo en metros cúbicos por mes. Qué puede comentar sobre esa gráfica? d ) Para la serie de consumo de gas, si se estima la tendencia con la instrucción de la parte c., se observa algo particular?. Se puede estimar la tasa de consumo trimestral?. e) Qué caracterı́ticas tiene el consumo en estrato 6 ? . Por ejemplo, en la componente estacional?. 4 4. Presentación y Valor del Trabajo Para la presentación de este informe utilice Microsoft Word ó LaTex. Hojas tamaño carta y formato tipo artı́culo: resumen, introducción, resultados, conclusión, referencias, y tablas y gráficos numerados con tı́tulos. Por ejemplo el formato Word de la revista Ingenierı́a y Ciencia, que se encuentra en la página del profesor, en la sección “Documentos”. El valor es de 33 %. La fecha de entrega se fijará en clase. Referencias [1] Diebold, F. (1999) Elementos de Pronósticos. International Thomson Editores, México. 5. Tabla de asignación de Datos de Series de Tiempo Asignación de Series Grupo Integrantes 1 2 3 4 5 6 7 8 9 10 11 Punto Maria Cecilia Gonzalez Dora Rivera Escobar Verónica López Angela Restrepo Sebastián Múnera Jorge Andrés Giraldo Ledwing Osorio Jorge Valencia Camilo Arango Juan Camilo Andrade Juan David Urrego Juliana Valencia Henrı́quez Rubén Darı́o Martı́nez Johana Osorno Gómez Diego Salazar Blandón Marbin Said Hinestroza Evensen Pérez Edilson Ruiz Jaime Alberto Hernández Fernán Villa Martı́n Elias Rico Herrera Serie 1 Serie 4 Serie 3 Serie 3 Serie 2 Serie 3 Serie 4 Serie Serie Serie Serie 5 3 2 5 2