#Cargar la serie de tiempo en notación científica o formato general #En este caso estamos importando el archivo que necesitamos desde una carpeta.

setwd("C:/Users/L01191825/Documents/CADI Analitica_R")

Miles_de_Turistas<-read.csv("Miles_de_turistas.csv")

#Cargamos la librería de “tseries” para usar funciones de pronósticos en R.

library(tseries)     
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

#Construimos la serie de tiempo de los turistas internacionales (en miles) que arriban a México, la serie se consultó en: https://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?accion=consultarCuadro&idCuadro=CE36&locale=es.

#Contiene datos desde enero de 1980, sin embargo, solo usaremos los datos de enero 2010 a agosto 2021.

ts.Miles_de_Turistas=ts(Miles_de_Turistas, frequency =12, start=c(2010,1), end = c(2021,8))

#Graficamos con la función “plot” de R la serie de turistas internacionales hacia México. Observamos la influencia se la pandemia causada por la COVID19, particularmente en los meses de marzo y abril de 2020.

plot(ts.Miles_de_Turistas)

#Desplegamos en el scrip la serie de tiempo en formato de tabla, con el objetivo de visualizarla y realizar un análisis exploratorio de datos.

ts.Miles_de_Turistas
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2010 1944.306 1817.356 2098.005 1868.964 1814.825 1884.455 2137.583 1984.764
## 2011 2005.567 1842.366 2087.202 1974.037 1853.656 1871.668 2287.727 1862.398
## 2012 1982.372 1907.938 2281.063 1881.522 1771.293 1919.281 2231.649 1812.105
## 2013 2013.825 1937.436 2233.021 1859.874 1771.096 2062.276 2211.082 2129.257
## 2014 2369.212 2263.991 2735.085 2328.907 2386.880 2500.999 2635.206 2374.148
## 2015 2565.843 2471.977 2843.683 2531.268 2543.468 2736.920 2989.506 2547.932
## 2016 2841.480 2731.343 3207.360 2683.783 2702.657 2971.900 3331.388 2706.140
## 2017 2991.827 2936.351 3497.917 3235.508 3084.763 3474.603 3711.391 3021.838
## 2018 3338.908 3228.459 3995.908 3295.425 3285.945 3481.515 3647.841 3420.201
## 2019 3482.523 3377.081 4215.044 3621.716 3463.849 3901.649 4162.016 3571.977
## 2020 3783.900 3759.411 2756.705  775.418  890.174 1003.684 1388.716 1347.863
## 2021 1923.672 1587.130 2284.080 2325.824 2658.911 3121.312 3384.599 2772.425
##           Sep      Oct      Nov      Dec
## 2010 1457.830 1764.811 1950.317 2566.532
## 2011 1472.709 1619.025 1892.000 2634.907
## 2012 1479.487 1612.251 1941.881 2581.704
## 2013 1642.848 1738.112 2033.421 2518.264
## 2014 1790.834 2101.381 2553.679 3305.286
## 2015 2130.081 2403.377 2795.430 3533.839
## 2016 2323.693 2788.608 2920.902 3870.111
## 2017 2675.130 3009.794 3427.796 4224.025
## 2018 2823.913 3090.016 3463.808 4240.781
## 2019 3041.210 3628.423 3844.604 4714.361
## 2020 1821.470 2037.049 2091.084 2628.062
## 2021

#Identificamos la dimensión de la matriz.

dim(as.matrix(ts.Miles_de_Turistas))
## [1] 140   1

#Base de datos para entrenamiento y prueba

Miles_de_Turistas.train=window(ts.Miles_de_Turistas, start=c(2010,1), end=c(2016,12))
plot(Miles_de_Turistas.train)

#desplegamos la tabla de serie de tiempo de entrenamiento.

Miles_de_Turistas.train
##           Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
## 2010 1944.306 1817.356 2098.005 1868.964 1814.825 1884.455 2137.583 1984.764
## 2011 2005.567 1842.366 2087.202 1974.037 1853.656 1871.668 2287.727 1862.398
## 2012 1982.372 1907.938 2281.063 1881.522 1771.293 1919.281 2231.649 1812.105
## 2013 2013.825 1937.436 2233.021 1859.874 1771.096 2062.276 2211.082 2129.257
## 2014 2369.212 2263.991 2735.085 2328.907 2386.880 2500.999 2635.206 2374.148
## 2015 2565.843 2471.977 2843.683 2531.268 2543.468 2736.920 2989.506 2547.932
## 2016 2841.480 2731.343 3207.360 2683.783 2702.657 2971.900 3331.388 2706.140
##           Sep      Oct      Nov      Dec
## 2010 1457.830 1764.811 1950.317 2566.532
## 2011 1472.709 1619.025 1892.000 2634.907
## 2012 1479.487 1612.251 1941.881 2581.704
## 2013 1642.848 1738.112 2033.421 2518.264
## 2014 1790.834 2101.381 2553.679 3305.286
## 2015 2130.081 2403.377 2795.430 3533.839
## 2016 2323.693 2788.608 2920.902 3870.111

#Obtenemos la dimensión de la tabla de entrenamiento.

dim(as.matrix(Miles_de_Turistas.train))
## [1] 84  1

#Construimos una serie de tiempo de prueba para realizar un diagnóstico.

Miles_de_Turistas.test=window(ts.Miles_de_Turistas, start=c(2019,1), end=c(2021,8))
plot(Miles_de_Turistas.test)

#Se realiza una prueba para encontrar el mejor modelo, en este caso, con la serie de llegadas de turistas internacionales a México el modelo que arroja el menor AIC (900.4897) es el modelo ARIMA (1,1,0) (0,1,1), este será el mejor modelo con fines de proyección en el corto y mediano plazo de la serie de llegadas de turistas.

library(forecast)
## Warning: package 'forecast' was built under R version 4.0.5
arima1=auto.arima(Miles_de_Turistas.train, trace=TRUE, test = "kpss",ic="bic" )
## 
##  ARIMA(2,1,2)(1,1,1)[12]                    : 916.3054
##  ARIMA(0,1,0)(0,1,0)[12]                    : 923.1879
##  ARIMA(1,1,0)(1,1,0)[12]                    : 911.2273
##  ARIMA(0,1,1)(0,1,1)[12]                    : 900.4897
##  ARIMA(0,1,1)(0,1,0)[12]                    : 908.6251
##  ARIMA(0,1,1)(1,1,1)[12]                    : 904.0996
##  ARIMA(0,1,1)(0,1,2)[12]                    : 904.036
##  ARIMA(0,1,1)(1,1,0)[12]                    : 904.9645
##  ARIMA(0,1,1)(1,1,2)[12]                    : 908.2984
##  ARIMA(0,1,0)(0,1,1)[12]                    : 916.7018
##  ARIMA(1,1,1)(0,1,1)[12]                    : 904.5557
##  ARIMA(0,1,2)(0,1,1)[12]                    : 904.585
##  ARIMA(1,1,0)(0,1,1)[12]                    : 906.6275
##  ARIMA(1,1,2)(0,1,1)[12]                    : Inf
## 
##  Best model: ARIMA(0,1,1)(0,1,1)[12]

#Se obtiene el nivel de confianza (diagnóstico de residuales) del modelo con fines de proyección con el siguiente código:

summary(arima1)
## Series: Miles_de_Turistas.train 
## ARIMA(0,1,1)(0,1,1)[12] 
## 
## Coefficients:
##           ma1     sma1
##       -0.6252  -0.5431
## s.e.   0.0976   0.1484
## 
## sigma^2 estimated as 15176:  log likelihood=-443.85
## AIC=893.7   AICc=894.06   BIC=900.49
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE     MAPE     MASE       ACF1
## Training set 14.90579 111.6531 81.84089 0.4032864 3.478062 0.435634 0.01175516
confint(arima1)
##           2.5 %     97.5 %
## ma1  -0.8166012 -0.4338373
## sma1 -0.8340863 -0.2522134

#Con el siguiente código se calculan los pronósticos puntuales y los intervalos de proyección (Lo, Hi) con un horizonte (h) de 14 meses, de septiembre 2020 a diciembre 2022. Ese horizonte pudiera ser más amplio, pero recordemos que mientras más largo el horizonte menos probable es la ocurrencia de ese pronóstico.

arima1.forecast=forecast(arima1, h=72)

arima1.forecast
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Jan 2017       3143.607 2985.702 3301.512 2902.113 3385.102
## Feb 2017       3040.537 2871.909 3209.165 2782.642 3298.432
## Mar 2017       3462.957 3284.247 3641.666 3189.644 3736.269
## Apr 2017       3039.693 2851.442 3227.944 2751.788 3327.598
## May 2017       3044.020 2846.688 3241.353 2742.226 3345.814
## Jun 2017       3260.102 3054.088 3466.115 2945.031 3575.172
## Jul 2017       3544.421 3330.078 3758.765 3216.611 3872.231
## Aug 2017       3076.583 2854.222 3298.945 2736.511 3416.656
## Sep 2017       2649.710 2419.610 2879.810 2297.802 3001.618
## Oct 2017       2993.996 2756.408 3231.583 2630.637 3357.354
## Nov 2017       3258.961 3014.116 3503.806 2884.502 3633.420
## Dec 2017       4070.484 3818.589 4322.378 3685.245 4455.723
## Jan 2018       3405.098 3121.008 3689.189 2970.619 3839.578
## Feb 2018       3302.028 3005.145 3598.911 2847.984 3756.072
## Mar 2018       3724.448 3415.301 4033.595 3251.648 4197.247
## Apr 2018       3301.184 2980.242 3622.126 2810.345 3792.023
## May 2018       3305.511 2973.192 3637.830 2797.273 3813.750
## Jun 2018       3521.593 3178.273 3864.912 2996.531 4046.654
## Jul 2018       3805.912 3451.935 4159.890 3264.550 4347.275
## Aug 2018       3338.074 2973.750 3702.399 2780.888 3895.261
## Sep 2018       2911.201 2536.816 3285.587 2338.628 3483.774
## Oct 2018       3255.487 2871.304 3639.670 2667.929 3843.044
## Nov 2018       3520.452 3126.715 3914.189 2918.284 4122.621
## Dec 2018       4331.975 3928.911 4735.039 3715.541 4948.408
## Jan 2019       3666.589 3233.510 4099.669 3004.252 4328.927
## Feb 2019       3563.519 3115.879 4011.159 2878.913 4248.126
## Mar 2019       3985.939 3524.197 4447.681 3279.765 4692.112
## Apr 2019       3562.675 3087.249 4038.101 2835.574 4289.777
## May 2019       3567.002 3078.275 4055.729 2819.559 4314.446
## Jun 2019       3783.084 3281.408 4284.759 3015.837 4550.330
## Jul 2019       4067.403 3553.106 4581.701 3280.853 4853.954
## Aug 2019       3599.565 3072.948 4126.183 2794.173 4404.958
## Sep 2019       3172.692 2634.036 3711.348 2348.889 3996.496
## Oct 2019       3516.978 2966.546 4067.409 2675.166 4358.790
## Nov 2019       3781.943 3219.983 4343.903 2922.500 4641.386
## Dec 2019       4593.466 4020.210 5166.722 3716.746 5470.186
## Jan 2020       3928.081 3325.568 4530.593 3006.617 4849.544
## Feb 2020       3825.010 3206.384 4443.637 2878.903 4771.118
## Mar 2020       4247.430 3613.099 4881.761 3277.304 5217.556
## Apr 2020       3824.166 3174.510 4473.823 2830.602 4817.730
## May 2020       3828.494 3163.865 4493.122 2812.032 4844.955
## Jun 2020       4044.575 3365.304 4723.845 3005.720 5083.430
## Jul 2020       4328.894 3635.291 5022.498 3268.119 5389.670
## Aug 2020       3861.057 3153.410 4568.703 2778.804 4943.309
## Sep 2020       3434.183 2712.767 4155.599 2330.872 4537.494
## Oct 2020       3778.469 3043.541 4513.397 2654.494 4902.444
## Nov 2020       4043.434 3295.239 4791.630 2899.168 5187.700
## Dec 2020       4854.957 4093.725 5616.189 3690.753 6019.161
## Jan 2021       4189.572 3399.233 4979.910 2980.853 5398.290
## Feb 2021       4086.501 3278.648 4894.355 2850.996 5322.007
## Mar 2021       4508.921 3683.924 5333.918 3247.197 5770.645
## Apr 2021       4085.657 3243.866 4927.448 2798.249 5373.066
## May 2021       4089.985 3231.728 4948.241 2777.394 5402.575
## Jun 2021       4306.066 3431.654 5180.478 2968.768 5643.364
## Jul 2021       4590.386 3700.111 5480.660 3228.828 5951.943
## Aug 2021       4122.548 3216.688 5028.407 2737.155 5507.940
## Sep 2021       3695.674 2774.494 4616.855 2286.850 5104.499
## Oct 2021       4039.960 3103.709 4976.211 2608.087 5471.833
## Nov 2021       4304.925 3353.842 5256.008 2850.369 5759.481
## Dec 2021       5116.448 4150.761 6082.135 3639.557 6593.339
## Jan 2022       4451.063 3456.107 5446.018 2929.409 5972.716
## Feb 2022       4347.992 3334.234 5361.750 2797.583 5898.401
## Mar 2022       4770.412 3738.194 5802.630 3191.771 6349.053
## Apr 2022       4347.148 3296.795 5397.502 2740.771 5953.525
## May 2022       4351.476 3283.294 5419.657 2717.833 5985.118
## Jun 2022       4567.557 3481.841 5653.273 2907.097 6228.017
## Jul 2022       4851.877 3748.904 5954.849 3165.026 6538.728
## Aug 2022       4384.039 3264.076 5504.002 2671.203 6096.874
## Sep 2022       3957.165 2820.466 5093.865 2218.734 5695.597
## Oct 2022       4301.451 3148.258 5454.644 2537.794 6065.108
## Nov 2022       4566.416 3396.962 5735.871 2777.891 6354.942
## Dec 2022       5377.939 4192.447 6563.431 3564.885 7190.993
plot(arima1.forecast, xlab="Year", ylab="Llegada de turistas internales (miles))")

library(TSPred)
## 
## Attaching package: 'TSPred'
## The following object is masked from 'package:base':
## 
##     subset
plotarimapred(Miles_de_Turistas.test,arima1,xlim=c(2019,2022), range.percent = 0.05, ylab = "Llegada de turistas",
xlab = "---- real  ____ proyección")

#accuracy(arima1.forecast,Miles_de_Turistas.test)
arima1.forecast=forecast(arima1, h=72)

arima1.forecast
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Jan 2017       3143.607 2985.702 3301.512 2902.113 3385.102
## Feb 2017       3040.537 2871.909 3209.165 2782.642 3298.432
## Mar 2017       3462.957 3284.247 3641.666 3189.644 3736.269
## Apr 2017       3039.693 2851.442 3227.944 2751.788 3327.598
## May 2017       3044.020 2846.688 3241.353 2742.226 3345.814
## Jun 2017       3260.102 3054.088 3466.115 2945.031 3575.172
## Jul 2017       3544.421 3330.078 3758.765 3216.611 3872.231
## Aug 2017       3076.583 2854.222 3298.945 2736.511 3416.656
## Sep 2017       2649.710 2419.610 2879.810 2297.802 3001.618
## Oct 2017       2993.996 2756.408 3231.583 2630.637 3357.354
## Nov 2017       3258.961 3014.116 3503.806 2884.502 3633.420
## Dec 2017       4070.484 3818.589 4322.378 3685.245 4455.723
## Jan 2018       3405.098 3121.008 3689.189 2970.619 3839.578
## Feb 2018       3302.028 3005.145 3598.911 2847.984 3756.072
## Mar 2018       3724.448 3415.301 4033.595 3251.648 4197.247
## Apr 2018       3301.184 2980.242 3622.126 2810.345 3792.023
## May 2018       3305.511 2973.192 3637.830 2797.273 3813.750
## Jun 2018       3521.593 3178.273 3864.912 2996.531 4046.654
## Jul 2018       3805.912 3451.935 4159.890 3264.550 4347.275
## Aug 2018       3338.074 2973.750 3702.399 2780.888 3895.261
## Sep 2018       2911.201 2536.816 3285.587 2338.628 3483.774
## Oct 2018       3255.487 2871.304 3639.670 2667.929 3843.044
## Nov 2018       3520.452 3126.715 3914.189 2918.284 4122.621
## Dec 2018       4331.975 3928.911 4735.039 3715.541 4948.408
## Jan 2019       3666.589 3233.510 4099.669 3004.252 4328.927
## Feb 2019       3563.519 3115.879 4011.159 2878.913 4248.126
## Mar 2019       3985.939 3524.197 4447.681 3279.765 4692.112
## Apr 2019       3562.675 3087.249 4038.101 2835.574 4289.777
## May 2019       3567.002 3078.275 4055.729 2819.559 4314.446
## Jun 2019       3783.084 3281.408 4284.759 3015.837 4550.330
## Jul 2019       4067.403 3553.106 4581.701 3280.853 4853.954
## Aug 2019       3599.565 3072.948 4126.183 2794.173 4404.958
## Sep 2019       3172.692 2634.036 3711.348 2348.889 3996.496
## Oct 2019       3516.978 2966.546 4067.409 2675.166 4358.790
## Nov 2019       3781.943 3219.983 4343.903 2922.500 4641.386
## Dec 2019       4593.466 4020.210 5166.722 3716.746 5470.186
## Jan 2020       3928.081 3325.568 4530.593 3006.617 4849.544
## Feb 2020       3825.010 3206.384 4443.637 2878.903 4771.118
## Mar 2020       4247.430 3613.099 4881.761 3277.304 5217.556
## Apr 2020       3824.166 3174.510 4473.823 2830.602 4817.730
## May 2020       3828.494 3163.865 4493.122 2812.032 4844.955
## Jun 2020       4044.575 3365.304 4723.845 3005.720 5083.430
## Jul 2020       4328.894 3635.291 5022.498 3268.119 5389.670
## Aug 2020       3861.057 3153.410 4568.703 2778.804 4943.309
## Sep 2020       3434.183 2712.767 4155.599 2330.872 4537.494
## Oct 2020       3778.469 3043.541 4513.397 2654.494 4902.444
## Nov 2020       4043.434 3295.239 4791.630 2899.168 5187.700
## Dec 2020       4854.957 4093.725 5616.189 3690.753 6019.161
## Jan 2021       4189.572 3399.233 4979.910 2980.853 5398.290
## Feb 2021       4086.501 3278.648 4894.355 2850.996 5322.007
## Mar 2021       4508.921 3683.924 5333.918 3247.197 5770.645
## Apr 2021       4085.657 3243.866 4927.448 2798.249 5373.066
## May 2021       4089.985 3231.728 4948.241 2777.394 5402.575
## Jun 2021       4306.066 3431.654 5180.478 2968.768 5643.364
## Jul 2021       4590.386 3700.111 5480.660 3228.828 5951.943
## Aug 2021       4122.548 3216.688 5028.407 2737.155 5507.940
## Sep 2021       3695.674 2774.494 4616.855 2286.850 5104.499
## Oct 2021       4039.960 3103.709 4976.211 2608.087 5471.833
## Nov 2021       4304.925 3353.842 5256.008 2850.369 5759.481
## Dec 2021       5116.448 4150.761 6082.135 3639.557 6593.339
## Jan 2022       4451.063 3456.107 5446.018 2929.409 5972.716
## Feb 2022       4347.992 3334.234 5361.750 2797.583 5898.401
## Mar 2022       4770.412 3738.194 5802.630 3191.771 6349.053
## Apr 2022       4347.148 3296.795 5397.502 2740.771 5953.525
## May 2022       4351.476 3283.294 5419.657 2717.833 5985.118
## Jun 2022       4567.557 3481.841 5653.273 2907.097 6228.017
## Jul 2022       4851.877 3748.904 5954.849 3165.026 6538.728
## Aug 2022       4384.039 3264.076 5504.002 2671.203 6096.874
## Sep 2022       3957.165 2820.466 5093.865 2218.734 5695.597
## Oct 2022       4301.451 3148.258 5454.644 2537.794 6065.108
## Nov 2022       4566.416 3396.962 5735.871 2777.891 6354.942
## Dec 2022       5377.939 4192.447 6563.431 3564.885 7190.993

#Con el siguiente código se plasman visualmente en un gráfico los datos históricos y la proyección con un pronóstico puntual (Point Forecast y los intervalos de pronóstico en gris). Se observa que aun en el corto mediano plazo (Q1 2021 y 2022) se observará una pausa en el flujo de turistas internacionales hacia México, será una recuperación paulatina, y más considerando los intervalos de predicción, el intervalo se hace más amplio.

plot(arima1.forecast)

#Elaboración propia con datos de BANXICO.