1. importar los datos

library(ggplot2)
library(forecast)
library(readxl)
ivae_ts2 <- read_excel("C:/Users/carlo/Desktop/ivae_ts2.xlsx")
data=ivae_ts2$Construcción %>% ts(start = c(2005,1),frequency = 12)->Construcción
print(Construcción)
##         Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep    Oct
## 2005  53.64  66.26  74.71  95.27  76.28  82.05  77.38  68.53  70.42  71.00
## 2006  58.02  78.13  85.91  71.83  76.95  86.10  81.23  71.78  80.45  84.78
## 2007  69.44  72.62  89.93  75.06  87.83  78.06  87.98  73.90  77.90  89.63
## 2008  70.91  91.48  86.79 111.87  92.50  86.57  91.02  74.44  80.25  77.81
## 2009  66.58  76.94  82.57  82.62  68.96  80.85  82.53  67.30  74.47  71.25
## 2010  50.25  82.29  94.10  80.80  80.59  80.94  82.17  70.28 101.33  79.48
## 2011  81.43  92.48 106.20  90.68  97.49  94.65 115.03  88.75  93.80  79.15
## 2012  90.16  99.48 113.51  98.28 102.30 100.09  96.59  88.06  86.30  94.04
## 2013  78.76  90.97 106.31 107.93 107.37 107.75  96.14  94.65  97.49 100.92
## 2014  87.63 100.73 122.00 107.75 108.66 113.48  96.10  90.19  87.94  90.85
## 2015  87.74  99.62  98.68  98.18 103.84 100.91 117.87  90.21 101.81  97.32
## 2016  82.18  98.64  94.84 119.32  98.53 104.22 106.50  93.21 104.14 101.73
## 2017  79.47 100.13 120.78 106.49 108.03 106.96 118.98  99.45 108.18 102.12
## 2018  92.06 116.08 117.85 121.97 112.42 118.93 121.86 115.61 107.71 105.31
## 2019 104.96 116.65 131.11 130.31 125.42 122.41 123.94 130.12 124.99 118.64
## 2020 120.88 127.69 122.26  90.29  68.15  78.61  96.91 103.23 105.36 113.17
##         Nov    Dec
## 2005  80.96  96.61
## 2006  90.15 108.46
## 2007  84.78 106.15
## 2008  81.55  84.51
## 2009  64.42 118.97
## 2010  83.07 111.93
## 2011  83.82 107.40
## 2012  99.96 111.94
## 2013 100.57 129.81
## 2014  92.13 102.53
## 2015  94.03 103.77
## 2016  98.77 126.12
## 2017 108.66 137.47
## 2018 116.01 143.17
## 2019 133.69 152.02
## 2020
autoplot(Construcción,xlab = "años",ylab = "Indice",main = " Construcción, periodo 2005-2020 (octubre)")+theme_bw()

2. proyección a Seis meses

library(forecast)
modelo<-auto.arima(y =Construcción)
summary(modelo)
## Series: Construcción 
## ARIMA(3,1,2)(2,0,0)[12] 
## 
## Coefficients:
##           ar1     ar2     ar3      ma1      ma2    sar1    sar2
##       -0.6371  0.5864  0.3343  -0.0269  -0.9321  0.5097  0.2291
## s.e.   0.0784  0.0828  0.0723   0.0392   0.0404  0.0797  0.0830
## 
## sigma^2 estimated as 108.4:  log likelihood=-711.44
## AIC=1438.88   AICc=1439.68   BIC=1464.82
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE    MAPE     MASE        ACF1
## Training set 1.121304 10.19158 7.213692 0.2269403 7.75237 0.719893 -0.01019995
pronosticos<-forecast(modelo,h = 6)
autoplot(pronosticos)+xlab("Años")+ylab("indice")+theme_bw()

library(forecast)
autoplot(pronosticos$x,series = "Construcción")+autolayer(pronosticos$fitted,series = "Pronóstico")+ggtitle("Ajuste SARIMA")

3. Serie ampliada

Construcción_h<-ts(as.numeric(rbind(as.matrix(pronosticos$x),as.matrix(pronosticos$mean))),start = c(2005,1),frequency = 12)
print(Construcción_h)
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2005  53.6400  66.2600  74.7100  95.2700  76.2800  82.0500  77.3800  68.5300
## 2006  58.0200  78.1300  85.9100  71.8300  76.9500  86.1000  81.2300  71.7800
## 2007  69.4400  72.6200  89.9300  75.0600  87.8300  78.0600  87.9800  73.9000
## 2008  70.9100  91.4800  86.7900 111.8700  92.5000  86.5700  91.0200  74.4400
## 2009  66.5800  76.9400  82.5700  82.6200  68.9600  80.8500  82.5300  67.3000
## 2010  50.2500  82.2900  94.1000  80.8000  80.5900  80.9400  82.1700  70.2800
## 2011  81.4300  92.4800 106.2000  90.6800  97.4900  94.6500 115.0300  88.7500
## 2012  90.1600  99.4800 113.5100  98.2800 102.3000 100.0900  96.5900  88.0600
## 2013  78.7600  90.9700 106.3100 107.9300 107.3700 107.7500  96.1400  94.6500
## 2014  87.6300 100.7300 122.0000 107.7500 108.6600 113.4800  96.1000  90.1900
## 2015  87.7400  99.6200  98.6800  98.1800 103.8400 100.9100 117.8700  90.2100
## 2016  82.1800  98.6400  94.8400 119.3200  98.5300 104.2200 106.5000  93.2100
## 2017  79.4700 100.1300 120.7800 106.4900 108.0300 106.9600 118.9800  99.4500
## 2018  92.0600 116.0800 117.8500 121.9700 112.4200 118.9300 121.8600 115.6100
## 2019 104.9600 116.6500 131.1100 130.3100 125.4200 122.4100 123.9400 130.1200
## 2020 120.8800 127.6900 122.2600  90.2900  68.1500  78.6100  96.9100 103.2300
## 2021 113.4726 119.3717 121.0973 103.9013                                    
##           Sep      Oct      Nov      Dec
## 2005  70.4200  71.0000  80.9600  96.6100
## 2006  80.4500  84.7800  90.1500 108.4600
## 2007  77.9000  89.6300  84.7800 106.1500
## 2008  80.2500  77.8100  81.5500  84.5100
## 2009  74.4700  71.2500  64.4200 118.9700
## 2010 101.3300  79.4800  83.0700 111.9300
## 2011  93.8000  79.1500  83.8200 107.4000
## 2012  86.3000  94.0400  99.9600 111.9400
## 2013  97.4900 100.9200 100.5700 129.8100
## 2014  87.9400  90.8500  92.1300 102.5300
## 2015 101.8100  97.3200  94.0300 103.7700
## 2016 104.1400 101.7300  98.7700 126.1200
## 2017 108.1800 102.1200 108.6600 137.4700
## 2018 107.7100 105.3100 116.0100 143.1700
## 2019 124.9900 118.6400 133.6900 152.0200
## 2020 105.3600 113.1700 119.8892 137.5573
## 2021

4. Descomposición de la serie temporal

library(stats)
fit<-stl(Construcción_h,"periodic")
autoplot(fit)+theme_bw()

TC<-fit$time.series[,2]
print(TC)
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2005  73.17568  73.71001  74.24434  74.71300  75.18167  75.65160  76.12153
## 2006  76.90908  77.37035  77.83163  78.64829  79.46496  80.36593  81.26691
## 2007  82.99761  82.89364  82.78968  82.71402  82.63836  82.90637  83.17438
## 2008  88.49187  88.69689  88.90191  88.46930  88.03668  87.09340  86.15012
## 2009  78.41025  77.82956  77.24887  76.98557  76.72227  76.83149  76.94071
## 2010  79.12494  79.81024  80.49553  81.47048  82.44543  83.49899  84.55254
## 2011  92.29228  93.40234  94.51240  94.79154  95.07068  95.09543  95.12017
## 2012  96.53808  96.61795  96.69782  97.10851  97.51919  97.52460  97.53000
## 2013  97.78181  98.41923  99.05664  99.74092 100.42520 101.21646 102.00771
## 2014 104.96435 104.78361 104.60287 103.72153 102.84018 101.68643 100.53269
## 2015  96.49615  97.29253  98.08892  98.80565  99.52238  99.67491  99.82745
## 2016  99.18520  99.35641  99.52762 100.18640 100.84518 101.58172 102.31826
## 2017 104.67832 105.24427 105.81023 106.46253 107.11484 107.93746 108.76009
## 2018 112.91992 113.58477 114.24963 114.77159 115.29355 115.78539 116.27722
## 2019 120.24519 121.25086 122.25652 123.46676 124.67701 125.75672 126.83643
## 2020 116.50813 113.45236 110.39660 108.46030 106.52401 105.72923 104.93445
## 2021 113.90831 115.68602 117.46374 119.20308                              
##            Aug       Sep       Oct       Nov       Dec
## 2005  76.55639  76.99126  76.91526  76.83926  76.87417
## 2006  81.85536  82.44381  82.68469  82.92556  82.96158
## 2007  83.95171  84.72905  85.81006  86.89107  87.69147
## 2008  84.83675  83.52337  82.04210  80.56084  79.48554
## 2009  77.25108  77.56146  77.96109  78.36071  78.74283
## 2010  85.72722  86.90191  88.16214  89.42238  90.85733
## 2011  95.36339  95.60662  95.97586  96.34510  96.44159
## 2012  97.08115  96.63231  96.68072  96.72913  97.25547
## 2013 102.70842 103.40914 103.88081 104.35249 104.65842
## 2014  99.39467  98.25666  97.37778  96.49891  96.49753
## 2015  99.64733  99.46721  99.41710  99.36700  99.27610
## 2016 102.75292 103.18757 103.48135 103.77512 104.22672
## 2017 109.52600 110.29191 110.90154 111.51117 112.21554
## 2018 116.86645 117.45567 118.12356 118.79145 119.51832
## 2019 127.07255 127.30868 125.34138 123.37408 119.94111
## 2020 106.39128 107.84810 109.22321 110.59832 112.25331
## 2021

5. Cálculo de las tasas

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) %>%
          #Aquí se realiza el centrado
          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
## May 2020 106.5240 -1.7852568 -14.560022  -0.260822 -10.355307       NA
## Jun 2020 105.7292 -0.7461029 -15.925583  -2.335517  -6.409640       NA
## Jul 2020 104.9344 -0.7517115 -17.267895  -4.549204  -2.231450       NA
## Aug 2020 106.3913  1.3883207 -16.275173  -6.625226   1.968808       NA
## Sep 2020 107.8481  1.3693102 -15.286133  -8.567931   6.401592       NA
## Oct 2020 109.2232  1.2750417 -12.859416 -10.100291   9.904804       NA
## Nov 2020 110.5983  1.2589891 -10.355307 -11.236427         NA       NA
## Dec 2020 112.2533  1.4964006  -6.409640 -11.778472         NA       NA
## Jan 2021 113.9083  1.4743386  -2.231450 -11.731493         NA       NA
## Feb 2021 115.6860  1.5606540   1.968808 -11.113788         NA       NA
## Mar 2021 117.4637  1.5366719   6.401592  -9.911098         NA       NA
## Apr 2021 119.2031  1.4807510   9.904804  -8.236851         NA       NA

6. Gráfico de las tasas (centradas)

library(dplyr)
library(forecast)
library(ggplot2)
tabla_coyuntura %>% as.data.frame() %>% select(T_1_12C,T_12_12C) %>% ts(start = c(2005,1),frequency = 12)->tabla_coyuntura_graficos
autoplot(tabla_coyuntura_graficos)+theme_bw()

tabla_coyuntura %>% as.data.frame() %>% select(T_1_1) %>% ts(start = c(2005,1),frequency = 12) %>% autoplot()