library(ggplot2)
library(forecast)
library(readxl)
AGSyP_ts <- read_excel("C:/Users/Economia/Desktop/AGS y P.xlsx",
col_types = c("skip", "skip", "numeric"))
data=AGSyP_ts %>% ts(start = c(2005,1),frequency = 12)->AGSyP
print(AGSyP)
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct
## 2005 92.64 68.41 60.10 65.43 137.50 141.97 71.05 128.73 97.27 71.26
## 2006 86.67 69.31 62.80 65.16 136.68 143.43 70.70 137.40 107.81 74.25
## 2007 94.30 73.70 65.83 69.07 146.57 156.23 72.82 153.89 117.05 76.11
## 2008 91.09 70.96 64.06 67.95 150.52 165.58 75.11 154.51 114.93 74.25
## 2009 86.82 70.17 65.24 67.36 137.69 153.16 75.56 136.56 109.59 74.07
## 2010 97.58 82.25 68.26 68.26 153.40 149.50 75.17 147.21 103.37 74.22
## 2011 92.58 68.70 68.64 68.33 145.21 149.11 69.83 131.08 101.34 75.92
## 2012 88.55 62.62 61.39 65.20 149.91 183.43 71.85 146.35 116.73 73.90
## 2013 90.05 66.16 62.83 63.18 124.26 164.76 68.33 125.32 117.47 72.17
## 2014 97.83 75.14 61.11 67.20 122.92 154.11 74.61 124.65 118.20 74.18
## 2015 91.59 67.18 66.22 69.67 112.99 142.87 73.00 116.07 112.53 71.90
## 2016 82.95 70.20 66.91 66.61 118.81 168.59 74.25 132.16 126.73 75.35
## 2017 87.09 64.26 70.53 63.94 125.82 178.89 76.25 125.83 121.14 73.12
## 2018 94.25 71.82 71.18 68.57 127.33 164.70 71.65 126.29 116.30 71.36
## 2019 92.88 72.59 70.73 68.54 128.30 168.92 75.81 130.51 121.34
## Nov Dec
## 2005 115.84 123.22
## 2006 124.54 127.28
## 2007 131.05 135.13
## 2008 127.42 132.96
## 2009 122.34 122.11
## 2010 125.23 137.40
## 2011 126.99 130.58
## 2012 131.53 130.47
## 2013 124.56 110.55
## 2014 124.93 105.12
## 2015 112.19 97.74
## 2016 123.86 104.69
## 2017 119.79 106.42
## 2018 121.08 108.99
## 2019
library(forecast)
modelo<-auto.arima(y = AGSyP)
summary(modelo)
## Series: AGSyP
## ARIMA(3,0,2)(0,1,2)[12]
##
## Coefficients:
## ar1 ar2 ar3 ma1 ma2 sma1 sma2
## 0.0966 -0.5712 0.4551 0.2145 0.7144 -0.2315 -0.1695
## s.e. 0.1352 0.1736 0.0777 0.1591 0.1973 0.0943 0.0663
##
## sigma^2 estimated as 47.5: log likelihood=-550.34
## AIC=1116.68 AICc=1117.61 BIC=1141.53
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.2220619 6.511608 4.442784 0.01846539 4.259824 0.772935
## ACF1
## Training set -0.02842029
pronosticos<-forecast(modelo,h = 6)
autoplot(pronosticos)+xlab("Años")+ylab("indice")+theme_bw()
## PARTE 2: AJUSTE SARIMA
library(forecast)
autoplot(pronosticos$x,series = "IPI")+autolayer(pronosticos$fitted,series = "Pronostico")+ggtitle("Ajuste SARIMA")
## PARTE 3: Serie ampliada
AGSyP_h<-ts(as.numeric(rbind(as.matrix(pronosticos$x),as.matrix(pronosticos$mean))),start = c(2005,1),frequency = 12)
tail(AGSyP_h,75)
## Jan Feb Mar Apr May Jun Jul
## 2014 97.83000 75.14000 61.11000 67.20000 122.92000 154.11000 74.61000
## 2015 91.59000 67.18000 66.22000 69.67000 112.99000 142.87000 73.00000
## 2016 82.95000 70.20000 66.91000 66.61000 118.81000 168.59000 74.25000
## 2017 87.09000 64.26000 70.53000 63.94000 125.82000 178.89000 76.25000
## 2018 94.25000 71.82000 71.18000 68.57000 127.33000 164.70000 71.65000
## 2019 92.88000 72.59000 70.73000 68.54000 128.30000 168.92000 75.81000
## 2020 92.34674 71.27294 70.17367
## Aug Sep Oct Nov Dec
## 2014 124.65000 118.20000 74.18000 124.93000 105.12000
## 2015 116.07000 112.53000 71.90000 112.19000 97.74000
## 2016 132.16000 126.73000 75.35000 123.86000 104.69000
## 2017 125.83000 121.14000 73.12000 119.79000 106.42000
## 2018 126.29000 116.30000 71.36000 121.08000 108.99000
## 2019 130.51000 121.34000 74.17889 122.24368 108.89578
## 2020
library(stats)
fit<-stl(AGSyP_h,"periodic")
autoplot(fit)+theme_bw()
## PARTE 3.1: FIT DE LA SERIE TEMPORAL
TC<-fit$time.series[,2]
print(TC)
## Jan Feb Mar Apr May Jun Jul
## 2005 99.30646 98.96314 98.61982 98.36323 98.10664 97.92288 97.73913
## 2006 98.05989 98.43906 98.81824 99.22775 99.63727 100.07406 100.51085
## 2007 104.27961 104.96769 105.65577 106.17197 106.68817 107.01153 107.33489
## 2008 107.69477 107.78734 107.87991 107.82202 107.76412 107.69743 107.63073
## 2009 104.79565 104.12677 103.45789 103.00564 102.55338 102.50319 102.45299
## 2010 105.32099 105.53291 105.74483 105.79917 105.85351 105.83374 105.81397
## 2011 104.40080 103.89881 103.39683 102.93896 102.48108 102.13335 101.78563
## 2012 103.45495 104.54178 105.62861 106.21143 106.79426 107.14076 107.48726
## 2013 103.35562 102.47504 101.59446 100.99105 100.38764 100.12589 99.86415
## 2014 100.42543 100.33188 100.23834 100.15238 100.06642 99.82817 99.58993
## 2015 97.98251 97.29118 96.59985 95.99082 95.38180 94.78287 94.18394
## 2016 96.17369 97.15048 98.12727 99.13544 100.14360 100.71021 101.27682
## 2017 101.52769 101.50575 101.48381 101.51721 101.55061 101.73214 101.91367
## 2018 101.64549 101.45494 101.26439 101.21410 101.16380 101.08608 101.00836
## 2019 101.59115 102.00219 102.41324 102.72356 103.03389 102.94467 102.85544
## 2020 102.33280 102.19633 102.05986
## Aug Sep Oct Nov Dec
## 2005 97.58468 97.43024 97.48151 97.53279 97.79634
## 2006 101.02328 101.53572 102.18422 102.83271 103.55616
## 2007 107.37674 107.41859 107.43641 107.45423 107.57450
## 2008 107.49144 107.35214 106.85108 106.35002 105.57283
## 2009 102.89061 103.32823 103.89876 104.46929 104.89514
## 2010 105.59514 105.37631 105.18243 104.98855 104.69467
## 2011 101.47462 101.16361 101.31702 101.47043 102.46269
## 2012 107.51365 107.54004 106.70075 105.86146 104.60854
## 2013 100.09613 100.32810 100.48115 100.63420 100.52981
## 2014 99.42943 99.26894 99.12744 98.98595 98.48423
## 2015 93.96142 93.73891 94.10217 94.46542 95.31956
## 2016 101.31418 101.35154 101.32941 101.30729 101.41749
## 2017 102.09371 102.27375 102.22224 102.17073 101.90811
## 2018 100.91452 100.82068 100.89901 100.97734 101.28425
## 2019 102.77756 102.69967 102.63149 102.56331 102.44806
## 2020
library(dplyr)
library(zoo)
TC %>% as.numeric() %>% as.data.frame()->TC_df
names(TC_df)<-c("TC")
TC_df %>% mutate(T_1_1=(TC/dplyr::lag(TC,n=1)-1)*100,
T_1_12=(TC/dplyr::lag(TC,n=12)-1)*100,
T_12_12=(rollapply(TC,12,mean,align='right',fill=NA)
/rollapply(dplyr::lag(TC,n=12),12,mean,align='right',fill=NA)-1)*100) %>%
#REALIZANDO CENTRADO DE TASAS
mutate(T_1_12C=dplyr::lead(T_1_12,n = 6),
T_12_12C=dplyr::lead(T_12_12,n = 12)) %>% ts(start = c(2005,1),frequency = 12)->tabla_coyuntura
print(tail(tabla_coyuntura,n=12))
## TC T_1_1 T_1_12 T_12_12 T_1_12C T_12_12C
## Apr 2019 102.7236 0.30301617 1.4913614 -0.37330363 1.7170487 NA
## May 2019 103.0339 0.30210076 1.8485755 -0.18859088 1.5706239 NA
## Jun 2019 102.9447 -0.08659896 1.8386187 0.01653896 1.1490550 NA
## Jul 2019 102.8554 -0.08667402 1.8286465 0.24224916 0.7300332 NA
## Aug 2019 102.7776 -0.07572131 1.8461575 0.49218953 0.1903276 NA
## Sep 2019 102.6997 -0.07577869 1.8637010 0.76659926 -0.3450458 NA
## Oct 2019 102.6315 -0.06638765 1.7170487 1.01881935 NA NA
## Nov 2019 102.5633 -0.06643176 1.5706239 1.24869637 NA NA
## Dec 2019 102.4481 -0.11237592 1.1490550 1.39662567 NA NA
## Jan 2020 102.3328 -0.11250235 0.7300332 1.46227263 NA NA
## Feb 2020 102.1963 -0.13335783 0.1903276 1.43253188 NA NA
## Mar 2020 102.0599 -0.13353591 -0.3450458 1.30757644 NA NA
La distribución resultante una vez procesada toda la muestra es la utilizada para generar las previsiones bajo los distintos escenarios. Tal estimación contiene una frecuencia semetral del período 2005 (enero), al 2019 (septiembre)
tabla_coyuntura %>% as.data.frame() %>% select(T_12_12) %>% ts(start = c(2005,1),frequency = 12) %>% autoplot()
Como la distribución se han eliminado los componentes estacionales e irregulares la tendencia no se encuentra sucia y presenta una tendencia decadente.