You are on page 1of 11

Respuestas Tarea 4

Martin

…..
library(readr)

## Warning: package 'readr' was built under R version 4.0.5

library(stats)
library(forecast)

## Registered S3 method overwritten by 'quantmod':


## method from
## as.zoo.data.frame zoo

library(tseries)
library(Metrics)

##
## Attaching package: 'Metrics'

## The following object is masked from 'package:forecast':


##
## accuracy

# Cargando Datos
practica = read_csv("D:/algunas carpetas F/Curso finanzas/Materia por
Semanas/semana 1/practica.csv")

##
## -- Column specification
--------------------------------------------------------
## cols(
## IMAE = col_double()
## )

# Dividir en train-test
training=practica[1:175,] # generando training
test=practica[176:187,] # generando test

# Convertir en formato de serie de tiempo


x = ts(training , start = c(1995, 1), end = c(2009, 7), frequency = 12)
x2 = ts(test , start = c(2009, 8), end = c(2010, 7), frequency = 12)
x3 = ts(practica , start = c(1995, 1), end = c(2010, 7), frequency = 12)
lam = BoxCox.lambda(x) # Calculando valor lamda para transformar
xCox = BoxCox(x, lambda=lam) # Transformando con BoxCox

Punto 1.Ejecutando modelos


# Modelo con ARIMA
modelo1 = arima(xCox, order = c(0, 1, 0), seasonal = list(order = c(1,0,0),
period = 12)) # Calculando modelo
summary(modelo1)

##
## Call:
## arima(x = xCox, order = c(0, 1, 0), seasonal = list(order = c(1, 0, 0),
period = 12))
##
## Coefficients:
## sar1
## 0.7871
## s.e. 0.0454
##
## sigma^2 estimated as 0.01513: log likelihood = 111.95, aic = -219.9
##
## Training set error measures:
## ME RMSE MAE MPE MAPE
MASE
## Training set 0.002707653 0.1226425 0.09311782 0.02010288 0.843083
0.6063995
## ACF1
## Training set -0.3178492

# Modelo auto.arima con serie transformada


modelo2=auto.arima(xCox, trace= TRUE, ic ="aicc", approximation = FALSE,
stepwise = FALSE) # auto arima. Automáticamente elige mejor modelo

##
## ARIMA(0,0,0)(0,1,0)[12] : 29.98367
## ARIMA(0,0,0)(0,1,0)[12] with drift : -111.3348
## ARIMA(0,0,0)(0,1,1)[12] : -21.60281
## ARIMA(0,0,0)(0,1,1)[12] with drift : -109.2733
## ARIMA(0,0,0)(0,1,2)[12] : -34.65235
## ARIMA(0,0,0)(0,1,2)[12] with drift : Inf
## ARIMA(0,0,0)(1,1,0)[12] : -42.63709
## ARIMA(0,0,0)(1,1,0)[12] with drift : -109.2628
## ARIMA(0,0,0)(1,1,1)[12] : Inf
## ARIMA(0,0,0)(1,1,1)[12] with drift : -109.8139
## ARIMA(0,0,0)(1,1,2)[12] : Inf
## ARIMA(0,0,0)(1,1,2)[12] with drift : Inf
## ARIMA(0,0,0)(2,1,0)[12] : -41.44782
## ARIMA(0,0,0)(2,1,0)[12] with drift : -128.1099
## ARIMA(0,0,0)(2,1,1)[12] : Inf
## ARIMA(0,0,0)(2,1,1)[12] with drift : -160.9817
## ARIMA(0,0,0)(2,1,2)[12] : Inf
## ARIMA(0,0,0)(2,1,2)[12] with drift : Inf
## ARIMA(0,0,1)(0,1,0)[12] : -82.30971
## ARIMA(0,0,1)(0,1,0)[12] with drift : -177.6155
## ARIMA(0,0,1)(0,1,1)[12] : -96.80332
## ARIMA(0,0,1)(0,1,1)[12] with drift : -180.5318
## ARIMA(0,0,1)(0,1,2)[12] : -109.4356
## ARIMA(0,0,1)(0,1,2)[12] with drift : -200.6369
## ARIMA(0,0,1)(1,1,0)[12] : -107.1057
## ARIMA(0,0,1)(1,1,0)[12] with drift : -177.6228
## ARIMA(0,0,1)(1,1,1)[12] : Inf
## ARIMA(0,0,1)(1,1,1)[12] with drift : Inf
## ARIMA(0,0,1)(1,1,2)[12] : Inf
## ARIMA(0,0,1)(1,1,2)[12] with drift : -199.5708
## ARIMA(0,0,1)(2,1,0)[12] : -113.6258
## ARIMA(0,0,1)(2,1,0)[12] with drift : -182.7692
## ARIMA(0,0,1)(2,1,1)[12] : Inf
## ARIMA(0,0,1)(2,1,1)[12] with drift : -204.0796
## ARIMA(0,0,1)(2,1,2)[12] : Inf
## ARIMA(0,0,1)(2,1,2)[12] with drift : -212.7913
## ARIMA(0,0,2)(0,1,0)[12] : -131.9062
## ARIMA(0,0,2)(0,1,0)[12] with drift : -198.7782
## ARIMA(0,0,2)(0,1,1)[12] : -134.2701
## ARIMA(0,0,2)(0,1,1)[12] with drift : -206.6317
## ARIMA(0,0,2)(0,1,2)[12] : -145.2523
## ARIMA(0,0,2)(0,1,2)[12] with drift : -219.5309
## ARIMA(0,0,2)(1,1,0)[12] : -137.029
## ARIMA(0,0,2)(1,1,0)[12] with drift : -201.6382
## ARIMA(0,0,2)(1,1,1)[12] : Inf
## ARIMA(0,0,2)(1,1,1)[12] with drift : -218.5906
## ARIMA(0,0,2)(1,1,2)[12] : -143.0973
## ARIMA(0,0,2)(1,1,2)[12] with drift : -218.4311
## ARIMA(0,0,2)(2,1,0)[12] : -145.4753
## ARIMA(0,0,2)(2,1,0)[12] with drift : -203.4965
## ARIMA(0,0,2)(2,1,1)[12] : Inf
## ARIMA(0,0,2)(2,1,1)[12] with drift : -220.7895
## ARIMA(0,0,3)(0,1,0)[12] : -150.5087
## ARIMA(0,0,3)(0,1,0)[12] with drift : -202.6811
## ARIMA(0,0,3)(0,1,1)[12] : -148.6243
## ARIMA(0,0,3)(0,1,1)[12] with drift : -217.6299
## ARIMA(0,0,3)(0,1,2)[12] : -157.1707
## ARIMA(0,0,3)(0,1,2)[12] with drift : -225.8334
## ARIMA(0,0,3)(1,1,0)[12] : -148.7937
## ARIMA(0,0,3)(1,1,0)[12] with drift : -209.2158
## ARIMA(0,0,3)(1,1,1)[12] : Inf
## ARIMA(0,0,3)(1,1,1)[12] with drift : -225.5082
## ARIMA(0,0,3)(2,1,0)[12] : -156.6583
## ARIMA(0,0,3)(2,1,0)[12] with drift : -210.7701
## ARIMA(0,0,4)(0,1,0)[12] : -160.3169
## ARIMA(0,0,4)(0,1,0)[12] with drift : -206.7912
## ARIMA(0,0,4)(0,1,1)[12] : -158.1633
## ARIMA(0,0,4)(0,1,1)[12] with drift : -221.2316
## ARIMA(0,0,4)(1,1,0)[12] : -158.165
## ARIMA(0,0,4)(1,1,0)[12] with drift : -213.4277
## ARIMA(0,0,5)(0,1,0)[12] : -180.1829
## ARIMA(0,0,5)(0,1,0)[12] with drift : -214.584
## ARIMA(1,0,0)(0,1,0)[12] : -209.2736
## ARIMA(1,0,0)(0,1,0)[12] with drift : -222.6307
## ARIMA(1,0,0)(0,1,1)[12] : -224.6566
## ARIMA(1,0,0)(0,1,1)[12] with drift : -240.7665
## ARIMA(1,0,0)(0,1,2)[12] : -223.6201
## ARIMA(1,0,0)(0,1,2)[12] with drift : -243.507
## ARIMA(1,0,0)(1,1,0)[12] : -222.162
## ARIMA(1,0,0)(1,1,0)[12] with drift : -234.5759
## ARIMA(1,0,0)(1,1,1)[12] : -224.132
## ARIMA(1,0,0)(1,1,1)[12] with drift : -244.2459
## ARIMA(1,0,0)(1,1,2)[12] : -222.1428
## ARIMA(1,0,0)(1,1,2)[12] with drift : -242.1311
## ARIMA(1,0,0)(2,1,0)[12] : -220.7403
## ARIMA(1,0,0)(2,1,0)[12] with drift : -234.656
## ARIMA(1,0,0)(2,1,1)[12] : -218.6991
## ARIMA(1,0,0)(2,1,1)[12] with drift : -242.177
## ARIMA(1,0,0)(2,1,2)[12] : -220.4025
## ARIMA(1,0,0)(2,1,2)[12] with drift : -239.9074
## ARIMA(1,0,1)(0,1,0)[12] : -232.0444
## ARIMA(1,0,1)(0,1,0)[12] with drift : -233.3779
## ARIMA(1,0,1)(0,1,1)[12] : -250.7114
## ARIMA(1,0,1)(0,1,1)[12] with drift : -254.041
## ARIMA(1,0,1)(0,1,2)[12] : Inf
## ARIMA(1,0,1)(0,1,2)[12] with drift : -255.1118
## ARIMA(1,0,1)(1,1,0)[12] : -245.2099
## ARIMA(1,0,1)(1,1,0)[12] with drift : -246.9432
## ARIMA(1,0,1)(1,1,1)[12] : Inf
## ARIMA(1,0,1)(1,1,1)[12] with drift : -255.6026
## ARIMA(1,0,1)(1,1,2)[12] : Inf
## ARIMA(1,0,1)(1,1,2)[12] with drift : -253.4192
## ARIMA(1,0,1)(2,1,0)[12] : -246.0623
## ARIMA(1,0,1)(2,1,0)[12] with drift : -248.5062
## ARIMA(1,0,1)(2,1,1)[12] : Inf
## ARIMA(1,0,1)(2,1,1)[12] with drift : -253.4196
## ARIMA(1,0,2)(0,1,0)[12] : -233.6359
## ARIMA(1,0,2)(0,1,0)[12] with drift : -234.5089
## ARIMA(1,0,2)(0,1,1)[12] : Inf
## ARIMA(1,0,2)(0,1,1)[12] with drift : -253.0832
## ARIMA(1,0,2)(0,1,2)[12] : Inf
## ARIMA(1,0,2)(0,1,2)[12] with drift : -254.3202
## ARIMA(1,0,2)(1,1,0)[12] : -245.7467
## ARIMA(1,0,2)(1,1,0)[12] with drift : -246.9299
## ARIMA(1,0,2)(1,1,1)[12] : Inf
## ARIMA(1,0,2)(1,1,1)[12] with drift : -254.959
## ARIMA(1,0,2)(2,1,0)[12] : -245.873
## ARIMA(1,0,2)(2,1,0)[12] with drift : -247.7405
## ARIMA(1,0,3)(0,1,0)[12] : -232.0318
## ARIMA(1,0,3)(0,1,0)[12] with drift : -232.942
## ARIMA(1,0,3)(0,1,1)[12] : Inf
## ARIMA(1,0,3)(0,1,1)[12] with drift : -250.9901
## ARIMA(1,0,3)(1,1,0)[12] : -243.8153
## ARIMA(1,0,3)(1,1,0)[12] with drift : -245.053
## ARIMA(1,0,4)(0,1,0)[12] : -235.2976
## ARIMA(1,0,4)(0,1,0)[12] with drift : -236.4874
## ARIMA(2,0,0)(0,1,0)[12] : -218.0839
## ARIMA(2,0,0)(0,1,0)[12] with drift : -225.755
## ARIMA(2,0,0)(0,1,1)[12] : -239.6785
## ARIMA(2,0,0)(0,1,1)[12] with drift : -248.3733
## ARIMA(2,0,0)(0,1,2)[12] : -239.2293
## ARIMA(2,0,0)(0,1,2)[12] with drift : -249.8812
## ARIMA(2,0,0)(1,1,0)[12] : -233.7308
## ARIMA(2,0,0)(1,1,0)[12] with drift : -240.1877
## ARIMA(2,0,0)(1,1,1)[12] : -239.5401
## ARIMA(2,0,0)(1,1,1)[12] with drift : -250.3228
## ARIMA(2,0,0)(1,1,2)[12] : -237.4244
## ARIMA(2,0,0)(1,1,2)[12] with drift : -248.1443
## ARIMA(2,0,0)(2,1,0)[12] : -234.1946
## ARIMA(2,0,0)(2,1,0)[12] with drift : -241.5296
## ARIMA(2,0,0)(2,1,1)[12] : -237.4636
## ARIMA(2,0,0)(2,1,1)[12] with drift : -248.1494
## ARIMA(2,0,1)(0,1,0)[12] : -232.7264
## ARIMA(2,0,1)(0,1,0)[12] with drift : -233.6547
## ARIMA(2,0,1)(0,1,1)[12] : Inf
## ARIMA(2,0,1)(0,1,1)[12] with drift : -252.9098
## ARIMA(2,0,1)(0,1,2)[12] : Inf
## ARIMA(2,0,1)(0,1,2)[12] with drift : -254.1663
## ARIMA(2,0,1)(1,1,0)[12] : -245.228
## ARIMA(2,0,1)(1,1,0)[12] with drift : -246.4628
## ARIMA(2,0,1)(1,1,1)[12] : Inf
## ARIMA(2,0,1)(1,1,1)[12] with drift : -254.7749
## ARIMA(2,0,1)(2,1,0)[12] : -245.5151
## ARIMA(2,0,1)(2,1,0)[12] with drift : -247.4404
## ARIMA(2,0,2)(0,1,0)[12] : -231.3879
## ARIMA(2,0,2)(0,1,0)[12] with drift : -232.4906
## ARIMA(2,0,2)(0,1,1)[12] : -247.7565
## ARIMA(2,0,2)(0,1,1)[12] with drift : -250.9247
## ARIMA(2,0,2)(1,1,0)[12] : -243.6585
## ARIMA(2,0,2)(1,1,0)[12] with drift : -244.8327
## ARIMA(2,0,3)(0,1,0)[12] : -230.9422
## ARIMA(2,0,3)(0,1,0)[12] with drift : -230.1834
## ARIMA(3,0,0)(0,1,0)[12] : -225.4494
## ARIMA(3,0,0)(0,1,0)[12] with drift : -229.6626
## ARIMA(3,0,0)(0,1,1)[12] : -244.8572
## ARIMA(3,0,0)(0,1,1)[12] with drift : -250.3687
## ARIMA(3,0,0)(0,1,2)[12] : -244.3698
## ARIMA(3,0,0)(0,1,2)[12] with drift : -251.3749
## ARIMA(3,0,0)(1,1,0)[12] : -239.687
## ARIMA(3,0,0)(1,1,0)[12] with drift : -243.4164
## ARIMA(3,0,0)(1,1,1)[12] : -244.7503
## ARIMA(3,0,0)(1,1,1)[12] with drift : -251.8776
## ARIMA(3,0,0)(2,1,0)[12] : -240.3557
## ARIMA(3,0,0)(2,1,0)[12] with drift : -244.8233
## ARIMA(3,0,1)(0,1,0)[12] : -233.2258
## ARIMA(3,0,1)(0,1,0)[12] with drift : -234.0264
## ARIMA(3,0,1)(0,1,1)[12] : -248.6302
## ARIMA(3,0,1)(0,1,1)[12] with drift : -251.1691
## ARIMA(3,0,1)(1,1,0)[12] : -244.3963
## ARIMA(3,0,1)(1,1,0)[12] with drift : -245.5479
## ARIMA(3,0,2)(0,1,0)[12] : -230.5815
## ARIMA(3,0,2)(0,1,0)[12] with drift : -243.2165
## ARIMA(4,0,0)(0,1,0)[12] : -234.0279
## ARIMA(4,0,0)(0,1,0)[12] with drift : -235.6357
## ARIMA(4,0,0)(0,1,1)[12] : -248.3071
## ARIMA(4,0,0)(0,1,1)[12] with drift : -251.4439
## ARIMA(4,0,0)(1,1,0)[12] : -244.6635
## ARIMA(4,0,0)(1,1,0)[12] with drift : -246.3816
## ARIMA(4,0,1)(0,1,0)[12] : -233.9244
## ARIMA(4,0,1)(0,1,0)[12] with drift : -234.62
## ARIMA(5,0,0)(0,1,0)[12] : -234.183
## ARIMA(5,0,0)(0,1,0)[12] with drift : -234.9559
##
##
##
## Best model: ARIMA(1,0,1)(1,1,1)[12] with drift

modelo2

## Series: xCox
## ARIMA(1,0,1)(1,1,1)[12] with drift
##
## Coefficients:
## ar1 ma1 sar1 sma1 drift
## 0.9194 -0.4615 0.2917 -0.7395 0.0168
## s.e. 0.0427 0.1002 0.1388 0.1090 0.0019
##
## sigma^2 estimated as 0.01129: log likelihood=134.07
## AIC=-256.14 AICc=-255.6 BIC=-237.58

Punto 2. Aná lisis de Residuos. Los resultados del primer modelo muestran que debe
mejorarse. Los residuos se distribuyen de manera aleatoria, pero se observan residuos
cercanos o mayores a 3 y cercanos o menores a -3. Ademá s, se observa que los residuos
está n correlacionados con el rezago anterior, por lo cual el modelo se debe mejorar. A lo
mejor agregando un componente en el rezago 1 se logra un modelo con mejores resultados.
Con el modelo auto.arima los residuos cercanos a -3 y 3 desaparecen, pero ahora los
residuos muestran una correlació n significativa con los residuos rezagados en el periodo
14. Se podría hacer algú n esfuerzo por mejorar ese modelo antes de proceder a las pruebas
de test, aunque ya este modelo representa una mejora con respecto al primero.
# Análisis de modelo 1
library(TSA) # cargar libreria para generar residuos estandarizados

## Warning: package 'TSA' was built under R version 4.0.5

## Registered S3 methods overwritten by 'TSA':


## method from
## fitted.Arima forecast
## plot.Arima forecast

##
## Attaching package: 'TSA'

## The following object is masked from 'package:readr':


##
## spec

## The following objects are masked from 'package:stats':


##
## acf, arima

## The following object is masked from 'package:utils':


##
## tar

checkresiduals(modelo1) # gráficos para análisis de residuos


##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)(1,0,0)[12]
## Q* = 46.322, df = 23, p-value = 0.002727
##
## Model df: 1. Total lags used: 24

estanda=rstandard(modelo1) # generar residuos estandarizados


plot(estanda,ylab='Standardized residuals',type='l') # gráficos de
estandarizados

# Análisis de modelo 2
checkresiduals(modelo2) # gráficos para análisis de residuos
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,0,1)(1,1,1)[12] with drift
## Q* = 28.901, df = 19, p-value = 0.06756
##
## Model df: 5. Total lags used: 24

estanda2=rstandard(modelo2) # generar residuos estandarizados


plot(estanda2,ylab='Standardized residuals',type='l') # gráficos de
estandarizados
Punto 3 Evaluando predicciones. Se puede observar que el RMSE y MAPE del modelo 2 es
mejor que el 1. En el 2 se observa un RMSE de 3.23, mientras que en el 1 el RMSE es de
5.40. Por otra parte, el MAPE en el modelo 2 es de 1.68%
# Pronóstico con modelo 1
forecast1=predict(modelo1,n.ahead=12)
forecast1_final=InvBoxCox(forecast1$pred, lambda=lam)
rmse(forecast1_final, x2)

## [1] 5.403639

mape(forecast1_final, x2)

## [1] 0.02815035

# Pronóstico con modelo 2


#forecast2=predict(modelo2,n.ahead=12)
# Observe que genera error. Eso pasa porque el comando predict no funciona
para generar predicciones con el modelo generado por auto.arima. Por lo tanto
se puede usar otro comando llamado forecast para generar la predicción

# Generando predicción con comando forecast


forecast2=forecast(modelo2, 12)
forecast2_final=InvBoxCox(forecast2$mean , lambda=lam)
rmse(forecast2_final, x2)

## [1] 3.234
mape(forecast2_final, x2)

## [1] 0.01688325

modelo2

## Series: xCox
## ARIMA(1,0,1)(1,1,1)[12] with drift
##
## Coefficients:
## ar1 ma1 sar1 sma1 drift
## 0.9194 -0.4615 0.2917 -0.7395 0.0168
## s.e. 0.0427 0.1002 0.1388 0.1090 0.0019
##
## sigma^2 estimated as 0.01129: log likelihood=134.07
## AIC=-256.14 AICc=-255.6 BIC=-237.58

Punto 4.
xCox3 = BoxCox(x3, lambda=lam)
modeloFinal = arima(xCox3, order = c(1, 0, 1), seasonal = list(order =
c(1,1,1), period = 12)) # Arima Definiendo el modelo
forecastFinal=predict(modeloFinal,n.ahead=12) # Para predecir a futuro en 4
periodos
InvBoxCox(forecastFinal$pred, lambda=lam) # Quitando efecto de transformación

## Jan Feb Mar Apr May Jun Jul


Aug
## 2010
164.8563
## 2011 170.4563 173.8118 176.4882 164.5087 178.7058 169.2191 165.8190

## Sep Oct Nov Dec


## 2010 158.8073 165.6535 166.6782 173.8090
## 2011

You might also like