This article aims to find the effect the of exports supported by procolombia on the economic growth of Colombia. To achieve this, we will use two sources of information , 1. monthly information of the exports supported by procolombia and 2.monthly information about colombia’s GDP. In order to achieve this, We will use methods such as additive and multiplicative decomposition, moving averages, among others, that will help us make our series stationary. Then, we will identify the best-fitting vector autoregressive (VAR) model to later perform impulse response and forecasting exercises.
The first source of information we use are the exports supported by ProColombia. But first, what is Procolombia?
Procolombia is an entity of the Colombian state that seeks to support exports of non-traditional goods or services, promote the image of the country and attract foreign investment. This company receives a budget from the state, which must be managed efficiently in order to promote the Colombian economy from the areas mentioned above. Specifically, Procolombia supports (1) exports in the sectors of agribusiness, industries 4.0, metalworking, fashion and chemical systems, and life sciences, (2) foreign investment according to the country of origin and the economic sector, and (3) tourism. from the areas of vacation tourism and corporate tourism. The company has commercial offices in more than 20 countries around the world, which support the objectives of exports, investment and tourism from abroad.
The data that we will use, give us information about monthly exports measured in us dollars. We have information from january 2009 to february 2022.
t=seq(2009.1,2022.2, length.out=length(Exportaciones_Mensuales_Procolombia$DATE))
Lets get a graph of the exports
export<-ts(Exportaciones_Mensuales_Procolombia$Monto,frequency=12,start=c(2009,1))
plot(export)
As expected, we see that exports tend to grow over time. We also see some peaks that show us seasonality. Following this idea we will start with a regression only controlling for this two variables.
dummys_month <- dummy_cols(Exportaciones_Mensuales_Procolombia$E_Mes)
Exportaciones_Mensuales_Procolombia <- cbind(Exportaciones_Mensuales_Procolombia, dummys_month)
Exportaciones_Mensuales_Procolombia <- Exportaciones_Mensuales_Procolombia %>%
rename(
Month1 = .data_1 ,
Month2 = .data_2 ,
Month3 = .data_3 ,
Month4 = .data_4 ,
Month5 = .data_5 ,
Month6 = .data_6 ,
Month7 = .data_7 ,
Month8 = .data_8 ,
Month9 = .data_9 ,
Month10 = .data_10 ,
Month11 = .data_11 ,
Month12 = .data_12 ,
)
Exportaciones_Mensuales_Procolombia$trend = seq_along(Exportaciones_Mensuales_Procolombia$Monto)
model <- lm(Monto ~ trend + Month1 + Month2 + Month3 + Month4 + Month5 + Month6 + Month7 + Month9 + Month10 + Month11 + Month12, data= Exportaciones_Mensuales_Procolombia[1:146,])
summary(model)
##
## Call:
## lm(formula = Monto ~ trend + Month1 + Month2 + Month3 + Month4 +
## Month5 + Month6 + Month7 + Month9 + Month10 + Month11 + Month12,
## data = Exportaciones_Mensuales_Procolombia[1:146, ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -399709363 -119350583 -19857348 89403462 726510174
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -152653758 59643758 -2.559 0.011603 *
## trend 2705314 375287 7.209 3.82e-11 ***
## Month1 155183750 82443620 1.882 0.061980 .
## Month2 443785955 80064678 5.543 1.54e-07 ***
## Month3 504407401 74584416 6.763 3.89e-10 ***
## Month4 4544654 74576063 0.061 0.951499
## Month5 26778794 76154235 0.352 0.725666
## Month6 545611429 74565306 7.317 2.15e-11 ***
## Month7 -12933686 74562473 -0.173 0.862553
## Month9 270583609 74562473 3.629 0.000405 ***
## Month10 8278305 76102838 0.109 0.913543
## Month11 28178342 74569598 0.378 0.706122
## Month12 434021344 76102065 5.703 7.27e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 190100000 on 133 degrees of freedom
## Multiple R-squared: 0.6481, Adjusted R-squared: 0.6163
## F-statistic: 20.41 on 12 and 133 DF, p-value: < 2.2e-16
In order to make a prediction for the last 3 months we will use the 98% of the sample for train and 2% for test
pred.train <- predict(model, Exportaciones_Mensuales_Procolombia[1:146,], interval = 'prediction')
pred.test <- predict(model, Exportaciones_Mensuales_Procolombia[147:149,], level = 0.95, interval = 'prediction')
pred <- as.data.frame(pred.test)
pred$Actual <- Exportaciones_Mensuales_Procolombia$Monto[147:149]
pred2 <- as.data.frame(pred.train)
pred2$Actual <- Exportaciones_Mensuales_Procolombia$Monto[1:146]
final.pred <- rbind(pred2, pred)
Exportaciones_Mensuales_Procolombia$date <- ym(Exportaciones_Mensuales_Procolombia$DATE)
p1 <- cbind(Exportaciones_Mensuales_Procolombia, final.pred)
plot(p1$date, p1$Actual, col= 'red', type = 'l', xlab= "Year", ylab= 'Exports', main= "Forecast vs. Actual") + lines(p1$date , p1$fit , col= 'green', lty=2) +
lines(p1$date ,p1$lwr, lty=2, col= 'gray')+
lines(p1$date ,p1$upr, lty=2, col='gray')
## integer(0)
Since our series is not stationary, we are going to use tools to obtain the trend component and the seasonal component.
Lets try to get the components of the series. First we will use the additive decomposition model:
dec1<-decompose(export,type="additive")
dec2<-decompose(export,type="multiplicative")
plot(dec1, xlab = "Year")
Now lets use the multiplicative decomposition model:
plot(dec2, xlab = "Year")
We are likely to choose multiplicative model since the seasonal component tends to increase over time. I also think that we have to add more regresors in order to get a better forecast. Variables like exchange rate may have an impact on the exports.