Alberto Dorantes, Ph.D. Sep 7, 2021
In this workshop we will continue practicing with calibration of seasonal ARIMA model (SARIMA) for time series.
You have to calibrate an ARIMA/SARIMA model for the IGAE Index, and do a forecast for the next 2 years of the Mexican Economy.
IGAE stands for “Índice General de Actividad Económica”. Since 1993 INEGI calculates this index based on the Mexican general economy and different industry sectors.
Go to INEGI and download the IGAE series. Go to the following link:
https://www.inegi.org.mx/temas/igae/#Herramientas
Click in “Bando de Información Económica (BIE)” and then select:
Indicador glogal de la actividad económica, base 2013 Expand the option: “Series originales” and, then expand the option “Índice de volumen físico”.
Check-mark the option “Total (Índice base 2013=100)”
Click the button “Consulta”. You will see tabulated data for the IGAE.
Select oldest year (1993 in “Periodo desde”). Finally click the download button and select the Excel format. The file be downloaded to your computer.
Open the Excel file and drop the first columns and last rows so that you only leave the period column and the IGAE Total index. RENAME the first data column as IGAE. Review the Period column, and edit if there are some dates with notes.
Save the Excel file as igae.xls in the same folder of your Workshop 5.
library(readxl)
library(xts)
library(zoo)
library(tseries)
library(forecast)
library(astsa)
library(lmtest)
library(readxl)
igae <- read_excel("igae.xls",
col_types = c("text", "numeric"))
igae.ts = ts (data= igae$igae, start=c(1993,1), frequency=(12))
igae.ts
Jan Feb Mar Apr May
1993 60.40769 61.02252 63.94325 61.86598 63.61290
1994 63.02927 62.73316 65.79027 65.89172 66.85880
1995 65.10234 60.29419 62.92987 59.23909 61.17677
1996 64.59736 63.25033 65.00435 63.82202 66.56896
1997 67.92226 66.01572 67.08871 70.18939 71.25363
1998 72.28125 71.26764 75.30751 72.95238 75.13802
1999 74.28381 72.70940 76.99211 74.32923 76.92304
2000 77.93003 77.36732 80.35795 77.00756 82.34331
2001 79.42346 76.41926 80.76787 77.53115 81.78409
2002 77.38629 75.10932 77.12227 80.83024 82.06994
2003 79.27239 77.17550 80.33976 79.95093 82.28842
2004 80.93007 79.19382 84.92785 82.93623 85.23905
2005 82.25837 80.89942 83.62640 86.59373 87.88889
2006 87.04556 84.08297 89.54008 87.10250 93.13935
2007 88.77729 85.76828 91.42205 89.32063 94.32237
2008 90.95435 88.98933 89.05326 94.71533 94.86436
2009 84.89588 81.84098 86.87355 84.31067 86.08159
2010 86.86702 85.22716 92.29228 90.58182 92.30005
2011 90.20546 88.56874 95.82899 91.60005 95.94631
2012 94.67462 94.07903 99.09222 95.47931 100.31525
2013 97.96859 94.67102 97.06080 99.91624 102.27530
2014 98.75510 96.95650 101.49479 100.31850 104.86078
2015 102.31985 99.87068 104.96629 103.68808 106.19812
2016 104.41862 104.57957 105.90781 107.29170 109.06134
2017 108.42131 105.28634 111.90757 106.20653 112.30782
2018 111.00626 107.80050 111.18167 111.58334 115.80867
2019 112.55599 108.89011 112.35810 109.89227 115.32796
2020 111.89993 108.31734 109.83424 87.88903 89.30962
2021 105.70444 102.80345 110.74997 107.51926 111.75380
Jun Jul Aug Sep Oct
1993 62.88259 62.79795 62.02789 62.01834 62.83480
1994 66.63579 64.70206 65.79634 65.76477 66.73068
1995 61.08234 59.77917 61.06820 60.84772 60.21824
1996 65.57817 65.91223 65.36457 65.03774 67.82464
1997 70.71757 70.48390 70.02845 70.75158 73.23728
1998 74.64519 74.61446 73.47925 73.76732 74.46418
1999 76.55675 76.31262 75.67001 76.24775 76.45465
2000 81.54154 79.62973 81.19074 80.16487 80.80958
2001 80.60701 79.32531 80.58703 78.26957 79.97355
2002 79.72127 79.92718 80.30576 78.38018 81.60774
2003 81.44337 80.93570 79.41995 79.18878 81.87911
2004 85.62087 82.94023 83.13244 82.19751 84.36268
2005 86.35209 83.78420 86.43120 84.64256 86.85310
2006 91.36864 88.35889 90.24619 87.86910 91.59749
2007 93.53460 91.41102 92.21733 89.47518 95.27999
2008 94.45588 94.15931 91.49309 90.57651 95.50683
2009 88.18426 88.73169 86.55360 86.50378 91.12057
2010 93.23105 92.32869 91.56219 90.55653 93.84530
2011 96.48831 95.21792 96.53903 94.10211 97.43771
2012 99.68684 99.31091 99.09917 95.18925 101.85991
2013 99.51755 100.80983 100.27357 96.80674 103.66718
2014 102.89399 104.13867 101.73624 100.01551 106.81112
2015 107.31724 107.46014 105.48272 105.02279 109.29448
2016 109.96061 107.52430 108.94816 106.06104 110.56514
2017 112.80077 108.95686 111.77075 106.32055 112.84477
2018 114.42889 112.79411 114.32351 108.77451 115.98004
2019 112.90360 113.43670 113.28344 108.87545 115.38661
2020 97.81722 101.95972 102.65073 102.91647 109.17307
2021 110.84770
Nov Dec
1993 63.62177 66.12119
1994 67.84687 68.06744
1995 63.06020 65.41346
1996 68.55904 69.26845
1997 72.75789 73.78044
1998 74.44344 75.67735
1999 77.67013 78.05347
2000 80.91619 79.49830
2001 80.09390 79.09247
2002 80.09518 80.49051
2003 80.63451 83.33037
2004 85.94154 86.23057
2005 88.65732 89.15110
2006 91.14520 90.86138
2007 93.80926 92.45720
2008 92.04270 91.89505
2009 91.24910 91.85630
2010 95.96933 95.59593
2011 101.08275 98.81574
2012 104.38649 100.52818
2013 104.23165 102.80154
2014 106.47993 106.88153
2015 109.09888 109.26239
2016 114.14719 112.51271
2017 116.17160 113.98775
2018 117.75914 113.14577
2019 116.24633 113.33105
2020 111.15608 110.06413
2021
Plot the IGAE index to see how it has grew over time
plot(igae.ts)
Generate a column for the simple annual growth of the index month by month and plot it.
lnigae.ts <- log(igae.ts)
plot(diff(log(igae.ts), lag =12))
What do you observe? Compared to previous crisis in Mexico during 1994-1995 and 2009-2009, how does this crisis look like?
MEXICO DEFINITLEY HAS SEEN CONTRACTIONS IN THEIR ECONOMY THROUGHOUT THE YEARS, BUT WHAT WE EXPERIENCED WAS WITHOUT PRESCEDENTS. NOW, SOMETHING WORTH STATING IS THAT THIS CONTRACTION WAS SHORT LIVED IN COMPARISON TO THE PAST EXPERIENCES.
adf.test(diff(log(igae.ts), lag=12), k=0)
Warning in adf.test(diff(log(igae.ts), lag = 12), k = 0) :
p-value smaller than printed p-value
Augmented Dickey-Fuller Test
data: diff(log(igae.ts), lag = 12)
Dickey-Fuller = -5.9009, Lag order = 0, p-value = 0.01
alternative hypothesis: stationary
sarima.for(igae.ts, n.ahead=24, p=1, d=0, q=0)
$pred
Jan Feb Mar Apr
2021
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
May Jun Jul Aug
2021 2.356091e-04 5.753200e-05
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023 5.805228e-05 5.805228e-05
Sep Oct Nov Dec
2021 5.805380e-05 5.805228e-05 5.805228e-05 5.805228e-05
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023
$se
Jan Feb Mar Apr May
2021
2022 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2023 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
Jun Jul Aug Sep Oct
2021 0.02740504 0.02740515 0.02740515 0.02740515
2022 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2023 0.02740515
Nov Dec
2021 0.02740515 0.02740515
2022 0.02740515 0.02740515
2023
Your challenge is to design/calibrate an ARIMA/SARIMA model for the IGAE series. You have to follow the calibration method we learned last workshop, and also the Dr. Nau recommendations.
If you come up with more than 1 competing model, select the best with the AIC criteria. You have to DOCUMENT your process while calibrating your model.
You also have to INTERPRET your final model, and finally, you have to do a forecast for the next 4 years. When the Mexican Economy will recover to the highest levels before the crisis?
acf2(diff(log(igae.ts), lag = 12), max.lag = 24)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
ACF 0.79 0.64 0.53 0.42 0.37 0.30 0.19 0.13 0.06 -0.04
PACF 0.79 0.04 0.04 -0.05 0.09 -0.05 -0.13 0.02 -0.07 -0.15
[,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19]
ACF -0.12 -0.22 -0.17 -0.1 -0.08 -0.06 -0.05 -0.07 -0.07
PACF -0.08 -0.12 0.30 0.1 0.00 -0.03 0.05 -0.10 -0.08
[,20] [,21] [,22] [,23] [,24]
ACF -0.03 -0.05 -0.05 -0.03 -0.09
PACF 0.07 -0.10 -0.11 0.04 -0.20
m1 <- Arima(igae.ts, order = c(2,0,0),
seasonal = list(order=c(0,1,0),period=12),
include.constant = TRUE,
lambda = 0)
coeftest(m1)
z test of coefficients:
Estimate Std. Error z value Pr(>|z|)
ar1 0.72909305 0.05509981 13.2322 < 2e-16 ***
ar2 0.09057559 0.05681823 1.5941 0.11091
drift 0.00179275 0.00070255 2.5518 0.01072 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
igae.ts <- m1$residuals
I get the ACF and PACF plots of these residuals to check for white noise or if the residuals still have significant autocorrelations with certain lags:
acf2(igae.ts,max.lag = 12)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
ACF 0 -0.04 0.1 -0.06 0.07 0.09 -0.08 0.04 0.07 -0.04
PACF 0 -0.04 0.1 -0.06 0.08 0.08 -0.06 0.03 0.06 -0.02
[,11] [,12]
ACF -0.02 -0.36
PACF -0.04 -0.38
sarima(igae.ts, p=1, d=0, q=0)
initial value -3.595592
iter 2 value -3.595596
iter 2 value -3.595596
iter 2 value -3.595596
final value -3.595596
converged
initial value -3.597028
iter 1 value -3.597028
final value -3.597028
converged
$fit
Call:
arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
xreg = xmean, include.mean = FALSE, transform.pars = trans, fixed = fixed,
optim.control = list(trace = trc, REPORT = 1, reltol = tol))
Coefficients:
ar1 xmean
-0.0029 0.0001
s.e. 0.0544 0.0015
sigma^2 estimated as 0.000751: log likelihood = 744.91, aic = -1483.81
$degrees_of_freedom
[1] 340
$ttable
Estimate SE t.value p.value
ar1 -0.0029 0.0544 -0.0539 0.9571
xmean 0.0001 0.0015 0.0393 0.9687
$AIC
[1] -4.338636
$AICc
[1] -4.338532
$BIC
[1] -4.304997
sarima(igae.ts, p=0, d=0, q=2)
initial value -3.597024
iter 2 value -3.597722
iter 3 value -3.597778
iter 4 value -3.597779
iter 4 value -3.597779
iter 4 value -3.597779
final value -3.597779
converged
initial value -3.597773
iter 1 value -3.597773
final value -3.597773
converged
$fit
Call:
arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
xreg = xmean, include.mean = FALSE, transform.pars = trans, fixed = fixed,
optim.control = list(trace = trc, REPORT = 1, reltol = tol))
Coefficients:
ma1 ma2 xmean
0.0071 -0.0427 0.0001
s.e. 0.0560 0.0593 0.0014
sigma^2 estimated as 0.0007499: log likelihood = 745.16, aic = -1482.32
$degrees_of_freedom
[1] 339
$ttable
Estimate SE t.value p.value
ma1 0.0071 0.0560 0.1261 0.8997
ma2 -0.0427 0.0593 -0.7201 0.4720
xmean 0.0001 0.0014 0.0417 0.9667
$AIC
[1] -4.334278
$AICc
[1] -4.33407
$BIC
[1] -4.289426
AFTER ANALYSING THE RESIDUALS, WE CAN TELL THAT BIC PREFFERS THE MODEL AR(1).
The basic goal of residual analysis is the same as in regression, that is we want to make sure the residuals are white Gaussian noise. If not, we haven’t found the best model yet.
“There are 4 plots. 1. The plot of the standardized residuals should be inspected for patterns. It’s difficult to tell if the noise is white from this plot, but it’s easy to tell if it’s not white noise, for example, are there obvious patterns in the residuals. 2. The ACF of the residuals can be used to assess whiteness. 95% of the ACF values should be between the blue dashed lines. 3. The Q-Q plot assesses normality. If the residuals are normal, the points will line up with the line. There are often extreme values on the ends as there are here. As long as there are no huge departures from the line, then the normal assumption is reasonable. 4. Finally there is a Q-statistic that tests for whiteness in the residuals. As long as most points are above the blue dashed line, then you can safely assume the noise is white.”
“If, however, many of the points are below the line, then there is still some correlation left in the residuals and you should try to fit another model or add a parameter.”
sarima(igae.ts, p=1, d=0, q=0)
initial value -3.595592
iter 2 value -3.595596
iter 2 value -3.595596
iter 2 value -3.595596
final value -3.595596
converged
initial value -3.597028
iter 1 value -3.597028
final value -3.597028
converged
$fit
Call:
arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
xreg = xmean, include.mean = FALSE, transform.pars = trans, fixed = fixed,
optim.control = list(trace = trc, REPORT = 1, reltol = tol))
Coefficients:
ar1 xmean
-0.0029 0.0001
s.e. 0.0544 0.0015
sigma^2 estimated as 0.000751: log likelihood = 744.91, aic = -1483.81
$degrees_of_freedom
[1] 340
$ttable
Estimate SE t.value p.value
ar1 -0.0029 0.0544 -0.0539 0.9571
xmean 0.0001 0.0015 0.0393 0.9687
$AIC
[1] -4.338636
$AICc
[1] -4.338532
$BIC
[1] -4.304997
MOST P VALUES ARE ABOVE THE BLUE LINE. CAN’T SEEM TO CORRECT THE AMOUNT OF CORRELATION PRESENT IN THE GRAPH.
sarima(igae.ts, p=1, d=0, q=0)
initial value -3.595592
iter 2 value -3.595596
iter 2 value -3.595596
iter 2 value -3.595596
final value -3.595596
converged
initial value -3.597028
iter 1 value -3.597028
final value -3.597028
converged
$fit
Call:
arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
xreg = xmean, include.mean = FALSE, transform.pars = trans, fixed = fixed,
optim.control = list(trace = trc, REPORT = 1, reltol = tol))
Coefficients:
ar1 xmean
-0.0029 0.0001
s.e. 0.0544 0.0015
sigma^2 estimated as 0.000751: log likelihood = 744.91, aic = -1483.81
$degrees_of_freedom
[1] 340
$ttable
Estimate SE t.value p.value
ar1 -0.0029 0.0544 -0.0539 0.9571
xmean 0.0001 0.0015 0.0393 0.9687
$AIC
[1] -4.338636
$AICc
[1] -4.338532
$BIC
[1] -4.304997
WE WILL IDENTIFY THE DEPENDENT VARIABLE WHICH IN THIS CASE IS THE IGAE OR GLOBAL ECONOMIC ACTIVITY INDEX. MORE SPECIFICALLY, WE ARE MODELING THE MONTHLY DIFFERENCES THROUGHOUT THE YEARS OF THE GROWTH OF ECONOMIC ACTIVITY.
THE AR(1) TERM HAS A COEFFICIENT (PHI1) EQUAL TO 0.72909305, AND IT IS SIGNIFICANTLY GREATER THAN 0. IT’S P-VALUE<0.05. THEN I CAN SAY THAT THE ANNUAL % GROWTH OF PRODUCT 1 SALES IS POSITIVELY AND SIGNIFICANTLY RELATED WITH ITS OWN ANNUAL % GROWTH OF THE PREVIOUS MONTH. IN OTHER WORDS, FOR EACH 1% INCREASE IN ANNUAL % GROWTH OF THE PREVIOUS MONTH, THE CURRENT ANNUAL % GROWTH OF ECONOMIC ACTIVITY IS EXPECTED TO GROW IN ABOUT 0.72909305%.
THE AR(2) TERM HAS A COEFFICIENT (PHI2) EQUAL TO 0.09057559, AND IT IS SOMEWHAT SIGNIFICANTLY GREATER THAN ZERO SINCE ITS P-VALUE<0.05. THEN I CAN SAY THA THE ANNUAL % GROWTH OF PRODUCT 1 SALES IS POSITIVELY AND SIGNIFICANTLY RELATED WITH ITS OWN ANNUAL % GROWTH OF 2 MONTHS AGO AFTER CONSIDERING THE AUTOCORRELATION OF LAG1 WITH THE CURRENT ANNUAL % GROWTH. FOR 1% INCREASE IN ANNUAL % GROWTH OF 2 MONTHS AGO, THE CURRENT ANNUAL % GROWTH OF ECONOMIC ACTIVITY WILL GROW IN ABOUT 0.09057559% AFTER CONSIDERING THE ANNUAL % GROWTH OF THE PREVIOUS MONTH (LAG1).
THE CONSTANT PHI0 (OF DRIFT) IS POSITIVE AND SIGNIFICANT. THIS MEANS THAT THE ANNUAL % GROWTH OF ECONOMIC ACTIVITY IS SYSTEMATICALLY GROWING OVER TIME WITH AN AVERAGE ANNUAL GROWTH OF 0.00179275% (IT HAS A GROWING TENDENCY). INTERPRETATION OF THE SEASONAL MA TERM:
THE ANNUAL % GROWTH OF ECONOMIC ACTIVITY IS NEGATIVELY RELATED TO THE SHOCK (ERROR) OF 12 MONTHS AGO. WHEN THE SHOCK IS NEGATIVE 12 MONTHS AGO, IT IS EXPECTED THAT THE ANNUAL % GROWTH OF THE CURRENT MONTH WILL BE POSITIVE.
acf2(diff(igae.ts))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
ACF -0.47 -0.07 0.13 -0.15 0.05 0.10 -0.14 0.04 0.08
PACF -0.47 -0.38 -0.14 -0.24 -0.20 -0.03 -0.13 -0.14 -0.03
[,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18]
ACF -0.07 0.18 -0.32 0.08 0.10 -0.05 -0.03 0.11 -0.06
PACF -0.02 0.26 -0.15 -0.17 -0.13 -0.07 -0.19 -0.06 0.06
[,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27]
ACF -0.08 0.14 -0.05 -0.11 0.26 -0.23 0.01 0.14 -0.08
PACF -0.14 -0.08 0.06 -0.12 0.29 -0.07 -0.14 -0.06 0.04
[,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36]
ACF -0.03 0.06 -0.06 0.02 0.04 -0.06 0.08 -0.14 0.14
PACF -0.11 -0.04 0.08 -0.10 -0.07 0.10 0.02 0.05 0.06
[,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45]
ACF -0.02 -0.02 -0.06 0.11 -0.05 -0.08 0.13 -0.06 -0.09
PACF -0.09 0.01 -0.03 -0.03 0.03 0.00 -0.07 0.00 0.02
[,46] [,47] [,48]
ACF 0.12 0.08 -0.30
PACF -0.05 0.28 -0.17
sarima(igae.ts, p=1, d=0, q=0)
initial value -3.595592
iter 2 value -3.595596
iter 2 value -3.595596
iter 2 value -3.595596
final value -3.595596
converged
initial value -3.597028
iter 1 value -3.597028
final value -3.597028
converged
$fit
Call:
arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
xreg = xmean, include.mean = FALSE, transform.pars = trans, fixed = fixed,
optim.control = list(trace = trc, REPORT = 1, reltol = tol))
Coefficients:
ar1 xmean
-0.0029 0.0001
s.e. 0.0544 0.0015
sigma^2 estimated as 0.000751: log likelihood = 744.91, aic = -1483.81
$degrees_of_freedom
[1] 340
$ttable
Estimate SE t.value p.value
ar1 -0.0029 0.0544 -0.0539 0.9571
xmean 0.0001 0.0015 0.0393 0.9687
$AIC
[1] -4.338636
$AICc
[1] -4.338532
$BIC
[1] -4.304997
sarima.for(igae.ts, n.ahead=48, p=1, d=0, q=0)
$pred
Jan Feb Mar Apr
2021
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2024 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2025 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
May Jun Jul Aug
2021 2.356091e-04 5.753200e-05
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2024 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2025 5.805228e-05 5.805228e-05
Sep Oct Nov Dec
2021 5.805380e-05 5.805228e-05 5.805228e-05 5.805228e-05
2022 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2023 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2024 5.805228e-05 5.805228e-05 5.805228e-05 5.805228e-05
2025
$se
Jan Feb Mar Apr May
2021
2022 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2023 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2024 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2025 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
Jun Jul Aug Sep Oct
2021 0.02740504 0.02740515 0.02740515 0.02740515
2022 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2023 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2024 0.02740515 0.02740515 0.02740515 0.02740515 0.02740515
2025 0.02740515
Nov Dec
2021 0.02740515 0.02740515
2022 0.02740515 0.02740515
2023 0.02740515 0.02740515
2024 0.02740515 0.02740515
2025
AFTER MANY HOURS OF SELF STUDY AND FINISHING THE DATACAMP COURSE I STILL FEEL LIKE I MISSED SOMETHING IN THIS MODEL. I DON’T KNOW IF THE MODEL WASN’T PROPPERLY ADJUSTED OR I MADE A MISTAKE (SOMEWHERE ALONG THE WORKSHOP EVERYTHING CRASHED). BASED OFF THIS PREDICTION MODEL I CAN SAY THAT THE MEXICAN ECONOMY IS EXPECTED TO STAY SLIGHTLY ABOVE THE 0 MARK, WHICH ISN’T REALLY SHY FROM THE TRUTH CONSIDERING NULL GROWTH SEEN THESE LAST YEARS.