1. importar los datos

library(ggplot2)
library(forecast)
library(readxl)
ivae_ts <- read_excel("C:/Users/carlo/Desktop/ivae_ts2.xlsx",)
data=ivae_ts$IVAE %>% ts(start = c(2005,1),frequency = 12)->ivae
print(ivae)
##         Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep    Oct
## 2005  75.92  75.76  81.87  80.58  88.91  88.37  83.28  84.43  86.20  84.28
## 2006  81.72  80.03  87.53  80.37  90.05  90.58  83.50  86.67  91.30  92.21
## 2007  83.31  77.77  86.95  78.74  93.62  92.29  87.98  91.63  88.35  92.64
## 2008  85.76  85.50  87.67  89.96  93.86  92.26  86.03  91.05  92.21  93.62
## 2009  86.73  80.85  87.19  83.92  91.42  93.46  86.39  86.72  87.57  85.27
## 2010  85.56  84.69  90.90  85.94  94.33  92.23  87.19  90.25  88.99  88.73
## 2011  90.26  86.73  94.33  90.80  98.49  97.59  92.16  94.22  92.34  89.07
## 2012  92.66  91.20  98.45  91.22 102.83 102.84  93.61  98.21  93.94  93.49
## 2013  95.67  90.77  96.12  96.34 103.08 101.58  96.42  98.96  97.74  96.22
## 2014  98.70  94.70 101.29  97.12 103.86 104.73  98.48  98.60  98.25  96.43
## 2015  98.88  94.83 103.16  98.76 105.66 105.46 101.68 101.06 100.63 100.43
## 2016  99.21  97.71 102.52 103.37 107.71 110.69 103.99 106.24 104.85 102.09
## 2017 101.62  99.20 108.68 101.61 111.02 113.76 105.64 107.88 106.01 102.76
## 2018 105.30 103.75 109.16 107.74 112.62 114.34 108.16 111.08 106.38 105.39
## 2019 107.37 106.47 112.71 109.23 115.45 115.61 110.99 113.05 110.86 108.32
## 2020 110.53 111.38 106.03  87.69  89.85  97.23  95.87 101.65 105.08 104.28
##         Nov    Dec
## 2005  90.61  94.25
## 2006  96.98  94.23
## 2007  97.99 101.28
## 2008  95.41  94.03
## 2009  91.86  99.64
## 2010  93.12 100.76
## 2011  96.87 103.90
## 2012  99.61 105.05
## 2013 101.24 108.36
## 2014 100.65 107.20
## 2015 104.88 109.82
## 2016 106.57 115.13
## 2017 109.94 117.41
## 2018 111.65 119.85
## 2019 116.24 123.44
## 2020
autoplot(ivae,xlab = "años",ylab = "Indice",main = "IVAE total, periodo 2005-2020 (octubre)")+theme_bw()

2. proyección a Seis meses

library(forecast)
modelo<-auto.arima(y = ivae)
summary(modelo)
## Series: ivae 
## ARIMA(1,0,2)(0,1,1)[12] with drift 
## 
## Coefficients:
##          ar1     ma1     ma2     sma1   drift
##       0.6723  0.0795  0.1863  -0.7499  0.1400
## s.e.  0.0879  0.1045  0.0968   0.0772  0.0205
## 
## sigma^2 estimated as 7.362:  log likelihood=-433.12
## AIC=878.25   AICc=878.74   BIC=897.34
## 
## Training set error measures:
##                         ME     RMSE      MAE         MPE     MAPE      MASE
## Training set -0.0005216099 2.589122 1.768711 -0.06752556 1.847341 0.5402127
##                     ACF1
## Training set 0.009341845
pronosticos<-forecast(modelo,h = 6)
autoplot(pronosticos)+xlab("Años")+ylab("indice")+theme_bw()

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

3. Serie ampliada

ivae_h<-ts(as.numeric(rbind(as.matrix(pronosticos$x),as.matrix(pronosticos$mean))),start = c(2005,1),frequency = 12)
print(ivae_h)
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2005  75.9200  75.7600  81.8700  80.5800  88.9100  88.3700  83.2800  84.4300
## 2006  81.7200  80.0300  87.5300  80.3700  90.0500  90.5800  83.5000  86.6700
## 2007  83.3100  77.7700  86.9500  78.7400  93.6200  92.2900  87.9800  91.6300
## 2008  85.7600  85.5000  87.6700  89.9600  93.8600  92.2600  86.0300  91.0500
## 2009  86.7300  80.8500  87.1900  83.9200  91.4200  93.4600  86.3900  86.7200
## 2010  85.5600  84.6900  90.9000  85.9400  94.3300  92.2300  87.1900  90.2500
## 2011  90.2600  86.7300  94.3300  90.8000  98.4900  97.5900  92.1600  94.2200
## 2012  92.6600  91.2000  98.4500  91.2200 102.8300 102.8400  93.6100  98.2100
## 2013  95.6700  90.7700  96.1200  96.3400 103.0800 101.5800  96.4200  98.9600
## 2014  98.7000  94.7000 101.2900  97.1200 103.8600 104.7300  98.4800  98.6000
## 2015  98.8800  94.8300 103.1600  98.7600 105.6600 105.4600 101.6800 101.0600
## 2016  99.2100  97.7100 102.5200 103.3700 107.7100 110.6900 103.9900 106.2400
## 2017 101.6200  99.2000 108.6800 101.6100 111.0200 113.7600 105.6400 107.8800
## 2018 105.3000 103.7500 109.1600 107.7400 112.6200 114.3400 108.1600 111.0800
## 2019 107.3700 106.4700 112.7100 109.2300 115.4500 115.6100 110.9900 113.0500
## 2020 110.5300 111.3800 106.0300  87.6900  89.8500  97.2300  95.8700 101.6500
## 2021 108.7177 107.7527 111.6328 104.8025                                    
##           Sep      Oct      Nov      Dec
## 2005  86.2000  84.2800  90.6100  94.2500
## 2006  91.3000  92.2100  96.9800  94.2300
## 2007  88.3500  92.6400  97.9900 101.2800
## 2008  92.2100  93.6200  95.4100  94.0300
## 2009  87.5700  85.2700  91.8600  99.6400
## 2010  88.9900  88.7300  93.1200 100.7600
## 2011  92.3400  89.0700  96.8700 103.9000
## 2012  93.9400  93.4900  99.6100 105.0500
## 2013  97.7400  96.2200 101.2400 108.3600
## 2014  98.2500  96.4300 100.6500 107.2000
## 2015 100.6300 100.4300 104.8800 109.8200
## 2016 104.8500 102.0900 106.5700 115.1300
## 2017 106.0100 102.7600 109.9400 117.4100
## 2018 106.3800 105.3900 111.6500 119.8500
## 2019 110.8600 108.3200 116.2400 123.4400
## 2020 105.0800 104.2800 112.2728 120.0459
## 2021

4. Descomposición de la serie temporal

library(stats)
fit<-stl(ivae_h,"periodic")
autoplot(fit)+theme_bw()

TC<-fit$time.series[,2]
print(TC)
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2005  81.68300  82.20308  82.72317  83.20293  83.68268  84.14033  84.59797
## 2006  86.10761  86.32076  86.53391  86.94375  87.35358  87.68576  88.01794
## 2007  88.22274  88.28052  88.33829  88.51946  88.70062  89.14859  89.59656
## 2008  91.22212  91.16829  91.11446  91.07529  91.03612  90.92730  90.81849
## 2009  89.47014  89.17449  88.87884  88.60650  88.33417  88.35138  88.36858
## 2010  89.40749  89.58019  89.75288  89.91342  90.07397  90.23566  90.39734
## 2011  92.45009  92.82840  93.20672  93.44539  93.68406  93.86563  94.04721
## 2012  95.63108  95.98330  96.33553  96.59006  96.84458  96.95572  97.06686
## 2013  97.37757  97.60117  97.82478  98.05542  98.28607  98.51201  98.73795
## 2014  99.98197 100.11160 100.24124 100.23659 100.23193 100.14478 100.05762
## 2015 100.63081 100.93423 101.23764 101.53399 101.83034 102.00267 102.17500
## 2016 103.28678 103.67162 104.05646 104.38950 104.72255 104.96757 105.21259
## 2017 106.12693 106.35014 106.57335 106.78253 106.99170 107.19257 107.39344
## 2018 108.63464 108.88610 109.13756 109.32673 109.51590 109.63467 109.75344
## 2019 110.87674 111.19037 111.50400 111.81467 112.12535 112.36168 112.59802
## 2020 107.20467 105.90932 104.61397 103.84401 103.07405 102.82086 102.56766
## 2021 109.29216 110.61179 111.93143 113.27528                              
##            Aug       Sep       Oct       Nov       Dec
## 2005  85.03256  85.46716  85.69144  85.91572  86.01166
## 2006  88.08771  88.15748  88.13550  88.11353  88.16813
## 2007  90.07807  90.55959  90.85473  91.14986  91.18599
## 2008  90.61055  90.40262  90.15151  89.90040  89.68527
## 2009  88.54895  88.72932  88.91527  89.10122  89.25436
## 2010  90.63009  90.86283  91.21965  91.57647  92.01328
## 2011  94.24041  94.43362  94.68985  94.94609  95.28858
## 2012  97.06734  97.06782  97.10220  97.13658  97.25707
## 2013  98.96724  99.19654  99.40497  99.61340  99.79769
## 2014 100.02140  99.98518 100.08626 100.18735 100.40908
## 2015 102.25013 102.32527 102.48845 102.65163 102.96920
## 2016 105.37021 105.52783 105.64707 105.76632 105.94663
## 2017 107.59065 107.78787 107.98363 108.17940 108.40702
## 2018 109.88719 110.02094 110.20055 110.38015 110.62845
## 2019 112.48856 112.37909 111.35176 110.32442 108.76455
## 2020 103.60683 104.64599 105.73800 106.83000 108.06108
## 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 103.0741 -0.7414566 -8.0724759 -1.739619 -3.1674078       NA
## Jun 2020 102.8209 -0.2456459 -8.4911746 -2.657933 -0.6467786       NA
## Jul 2020 102.5677 -0.2462508 -8.9081157 -3.617699  1.9472032       NA
## Aug 2020 103.6068  1.0131524 -7.8956743 -4.470047  4.4400947       NA
## Sep 2020 104.6460  1.0029906 -6.8812605 -5.216068  6.9947210       NA
## Oct 2020 105.7380  1.0435212 -5.0414662 -5.716548  9.0821471       NA
## Nov 2020 106.8300  1.0327443 -3.1674078 -5.973473         NA       NA
## Dec 2020 108.0611  1.1523747 -0.6467786 -5.895052         NA       NA
## Jan 2021 109.2922  1.1392463  1.9472032 -5.479561         NA       NA
## Feb 2021 110.6118  1.2074347  4.4400947 -4.750034         NA       NA
## Mar 2021 111.9314  1.1930296  6.9947210 -3.700043         NA       NA
## Apr 2021 113.2753  1.2006032  9.0821471 -2.398105         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()