Factores que Intervienen en el comportamiento de la Balanza Comercial en El Salvador (1990-2019)

Grupo 2-3

6/7/2021

Introducción

En el comercio exterior de El Salvador, se dejaron atrás las políticas previas de proteccionismo comercial y promovieron la reducción de la participación del Estado. Tales acciones fueron tomadas como respuesta a la crisis vivida en la época, dentro de la cual se pueden destacar las siguientes problemáticas: un creciente déficit de balanza comercial y producción estancada, entre otras.

Objetivos

General:

Determinar el aporte que tienen las principales variables macroeconómicas en el saldo de la balanza comercial

Específicos:

Comprender la importancia del estudio del saldo de la balanza comercial.

Determinar la influencia de los distintos socios comerciales en la economía de nuestro país.

Identificar cuales son las principales causas y consecuencias del saldo de la balanza comercial respecto la situación económica de nuestro país.

Formulación del problema

Factores que intervienen en el comportamiento de la balanza comercial en El Salvador para el período 1990-2019.

Planteamiento del problema

El saldo de balanza comercial en El Salvador es el registro de las bienes que se comercializan con el resto del mundo, y depende de las exportaciones e importaciones de mercancías.
A lo largo de la historia comercial este saldo de la balanza comercial ha tenido cambios relevantes para la economía salvadoreña por años ha tenido un déficit muy elevado comparado con el del resto de los países latinoamericanos, partiendo de esta situación se pretende analizar los factores que determinan el saldo negativo de la balanza comercial y si poseen una relación con la tasa arancelaria, términos de intercambio y el PIB.

Delimitación

La investigación se llevará a cabo en El Salvador, tomando en cuenta los aspectos relevantes que inciden en el saldo de la balanza comercial atinentes a los principales socios comerciales. El periodo de estudio es de 1990-2019, recopilando información del Banco Central de Reserva, Banco Mundial y CEPAL.

Justificación

El presente trabajo que está orientado a la Balanza Comercial en El Salvador permite conocer los aspectos generales de la incidencia de las variables macroeconómicas propuestas. Para ello se considera que la investigación es viable y factible, además se reconoce la importancia de analizar su estructura y las implicaciones que representa para nuestra sociedad.

Especificación

Planteamiento Teórico del Fenómeno Económico

Variable Endógena y Variables Exógenas

Para analizar el análisis del comportamiento de la balanza comercial en El Salvador consideramos:

Como Variable Endógena:

El Saldo de la Balanza Comercial Como Variables Exógenas.

Producto Interno Bruto.

Tasa Arancelaria.

Términos de Intercambio.

Especificación del modelo matemático y estadístico

Una vez definida nuestra variable endógena y las variables exógenas es necesario la construcción del modelo matemático para lo cual es necesaria representarlo de la siguiente forma:

           SBC = β0-β1(PIB)-β2(TasaAran)-β3(TermInter)-β4(TipoCam)+ε

Donde:

Ε: Error

Hipótesis:

Hipótesis
Ho: β1=0 Las variables macroeconómicas: el PIB, el valor de tipo de cambio real bilateral, la tasa arancelaria y los términos de intercambio son factores que inciden de forma directa en el saldo de balanza comercial.
Ha: β1≠0 Las variables macroeconómicas: el PIB, el valor de tipo de cambio real bilateral, la tasa arancelaria y los términos de intercambio no  son factores que inciden de forma directa en el saldo de la balanza comercial.

Estimación

Estimación de Modelo

options(scipen = 9999)
load("E:/Econometria/data/datos_balanza_com.RData")
Modelo_Balanza_Comercial <- data.frame(datos_balanza_comercial)
library(stargazer)
modelo_balanza_comercial <- lm(formula = BalanzaCom ~ PIB+TasaAran+TermInter+TipoCam,data = datos_balanza_comercial)
stargazer(modelo_balanza_comercial,title = "Modelo Balanza Comercial", type = "html")
Modelo Balanza Comercial
Dependent variable:
BalanzaCom
PIB -0.0001
(0.0002)
TasaAran -0.354
(0.594)
TermInter 0.151**
(0.073)
TipoCam 0.045
(0.077)
Constant -36.411**
(16.665)
Observations 30
R2 0.400
Adjusted R2 0.304
Residual Std. Error 3.217 (df = 25)
F Statistic 4.173** (df = 4; 25)
Note: p<0.1; p<0.05; p<0.01

\[ \begin{aligned} \operatorname{\widehat{BalanzaCom}} &= -36.41 + 0(\operatorname{PIB}) - 0.35(\operatorname{TasaAran}) + 0.15(\operatorname{TermInter})\ + \\ &\quad 0.05(\operatorname{TipoCam}) \end{aligned} \]

Verificación de supuestos del MCRLM. Estimación del modelo propuesto y la revisión de los supuestos del MCRLM, por medio de:

• Pruebas de normalidad Jarque Bera, KS y Shapiro Wilk

• Pruebas de Multicolinealidad

• Prueba de Heterocedasticidad de White

• Pruebas de Durbin Watson y Multiplicador de Lagrange para verificar la presencia de estructuras de autocorrelación de 1 y segundo orden.

Pruebas de normalidad

Hipótesis de las pruebas de normalidad:

Ho: εi ~ N(0,σ^2) “Los residuos siguen una distribución normal”

Hi: εi ≁ N(0,σ^2) “Los residuos no siguen una distribución normal”

Prueba de Jarque Bera JB

library(normtest)
jb.norm.test(modelo_balanza_comercial$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_balanza_comercial$residuals
## JB = 17.031, p-value = 0.0065

Prueba de Kolmogorov Smirnov KS

library(nortest)
lillie.test(modelo_balanza_comercial$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_balanza_comercial$residuals
## D = 0.15979, p-value = 0.04895

Prueba de Saphiro Wilk SW

shapiro.test(modelo_balanza_comercial$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_balanza_comercial$residuals
## W = 0.85642, p-value = 0.0008473

Pruebas de Multicolinealidad

Indice de Condición

El Indice de Condición es sensible a la solución del sistema de ecuaciones ante cambios pequeños en los parámetros

  • Sí κ(x) es inferior a 20, la multicolinealidad es leve, no se considera un problema.

  • Para 20<κ(x)<30, la multicolinealidad se considera moderada.

  • En el caso de que κ(x)≥30 la multicolinealidad es severa.

La matriz |X’X| debe ser normalizada, para evitar sesgo de la escala de las variables.

Forma Manual

options(scipen = 9999)
#Calculo Manual
#Matriz X
xmat<-model.matrix(modelo_balanza_comercial)
#Sigma Matriz
xxmat<-t(xmat)%*%xmat
print(xxmat)
##             (Intercept)          PIB     TasaAran   TermInter     TipoCam
## (Intercept)       30.00     458420.9     143.1300     3408.70     3175.20
## PIB           458420.95 8282030628.3 1839577.4944 49675533.24 47226514.01
## TasaAran         143.13    1839577.5     824.8287    17140.36    15316.95
## TermInter       3408.70   49675533.2   17140.3550   395107.63   361641.11
## TipoCam         3175.20   47226514.0   15316.9522   361641.11   340069.79
#Construccion de Sn
Sn<-solve(diag(sqrt(diag(xxmat))))
print(Sn)
##           [,1]          [,2]       [,3]        [,4]       [,5]
## [1,] 0.1825742 0.00000000000 0.00000000 0.000000000 0.00000000
## [2,] 0.0000000 0.00001098833 0.00000000 0.000000000 0.00000000
## [3,] 0.0000000 0.00000000000 0.03481915 0.000000000 0.00000000
## [4,] 0.0000000 0.00000000000 0.00000000 0.001590898 0.00000000
## [5,] 0.0000000 0.00000000000 0.00000000 0.000000000 0.00171481
#Sn normalizada
xxmat_norm<-(Sn%*%xxmat)%*%Sn
print(xxmat_norm)
##           [,1]      [,2]      [,3]      [,4]      [,5]
## [1,] 1.0000000 0.9196772 0.9098885 0.9900804 0.9940917
## [2,] 0.9196772 1.0000000 0.7038300 0.8683932 0.8898841
## [3,] 0.9098885 0.7038300 1.0000000 0.9494678 0.9145479
## [4,] 0.9900804 0.8683932 0.9494678 1.0000000 0.9865885
## [5,] 0.9940917 0.8898841 0.9145479 0.9865885 1.0000000
#Atovalores
lambdas<-eigen(xxmat_norm,symmetric = TRUE)$values
print(lambdas)
## [1] 4.6578508439 0.3051497553 0.0294482715 0.0066308206 0.0009203087
#Indice de Condicion
k<-sqrt(max(lambdas)/min(lambdas))
print(k)
## [1] 71.14199

Usando Libreria mctest

library(mctest)
eigprop(mod = modelo_balanza_comercial)
## 
## Call:
## eigprop(mod = modelo_balanza_comercial)
## 
##   Eigenvalues      CI (Intercept)    PIB TasaAran TermInter TipoCam
## 1      4.6579  1.0000      0.0001 0.0008   0.0014    0.0002  0.0002
## 2      0.3051  3.9069      0.0000 0.0404   0.0485    0.0003  0.0000
## 3      0.0294 12.5766      0.0016 0.1631   0.3529    0.0007  0.0782
## 4      0.0066 26.5039      0.0006 0.0599   0.5580    0.4992  0.1590
## 5      0.0009 71.1420      0.9977 0.7357   0.0392    0.4995  0.7625
## 
## ===============================
## Row 5==> PIB, proportion 0.735691 >= 0.50 
## Row 4==> TasaAran, proportion 0.557961 >= 0.50 
## Row 5==> TipoCam, proportion 0.762530 >= 0.50

Prueba Farrar Glauber

Esta prueba identifica si los regresores presentan independencia estadistica, a tráves de la matriz de correlación muestral R, se verifica a nivel poblacional si esa matriz corresponde a una matriz identidad.

Hipótesis de la prueba

H0: R∼I No hay evidencia de multicolinealidad en los residuos del modelo

H1: R≁I Hay evidencia de multicolinealidad en los residuos del modelo

Criterio de decisión:

Rechazar H0 si χ2FG≥V.C., o si p≤α

Manual

library(psych)
library(fastGraph)
FGtest<-cortest.bartlett(xmat[,-1])
print(FGtest)
## $chisq
## [1] 85.46077
## 
## $p.value
## [1] 0.000000000000000264968
## 
## $df
## [1] 6
vc1<-qchisq(0.05,FGtest$df,lower.tail = FALSE)
shadeDist(xshade = FGtest$chisq,
          ddist = "dchisq",
          parm1 = FGtest$df,
          lower.tail = FALSE,
          sub=paste("VC:",vc1,"FG:",FGtest$chisq))

Factores Inflacionarios de la Varianza

Los VIF’s determinan el tamaño relativo de la varianza del j-esimo parámetro estimado, respecto a la varianza esperada del estimador en ausencia de colinealidad.

Factores Inflacionarios de la Varianza

VIF<-diag(solve(cor(xmat[,-1])))
print(VIF)
##       PIB  TasaAran TermInter   TipoCam 
##  6.972270  4.846033  3.995109  2.287970

Usando libreria mctest

library(mctest)
mc.plot(modelo_balanza_comercial,vif = 2)

Prueba de Heterocedasticidad

Heterocedasticidad: La varianza del término del error de la ecuación estimada, no es constante. Depende del nivel de las variables explicativas.

Homocedasticidad: La varianza del término del error de la ecuación estimada, es constante.

Hipótesis de la prueba:

Ho: δ1=δ2=⋯=δk=α1=α2=⋯=αk=θ1=θ2=⋯=θkC2=0 “Hay evidencia de que la varianza de los residuos es Homocedastica.”

Hi: δ1=δ2=⋯=δk=α1=α2=⋯=αk=θ1=θ2=⋯=θkC2≠0 “Hay evidencia de que la varianza de los residuos es Heterocedastica.”

Criterio de decisión: - Rechazar H0 sí LMW≥VC - Rechazar H0 sí Pvalue≤α

Prueba de Heterocedasticidad de White

library(stargazer)
residuos<-modelo_balanza_comercial$residuals
data_auxiliar<-as.data.frame(cbind(residuos,datos_balanza_comercial))
regresion_auxiliar<-lm(I(residuos^2)~PIB+TasaAran+TermInter+TipoCam+I(PIB^2)+I(TasaAran^2)+I(TermInter^2)+I(TipoCam^2),data = data_auxiliar)
resumen<-summary(regresion_auxiliar)
R_2<-resumen$r.squared
n<-nrow(data_auxiliar)
LM_W<-n*R_2
gl<-4+4
vc<-qchisq(p=0.95,df=gl)
pvalue<-1-pchisq(q=LM_W,df=gl)
salida_white<-c(LM_W,vc,pvalue)
names(salida_white)<-c("LMW","Valor Critico","P value")
stargazer(salida_white,title = "Prueba de White",type = "html",digits = 6)
Prueba de White
LMW Valor Critico P value
7.727861 15.507310 0.460495

Pruebas de Durbin Watson y Multiplicador de Lagrange para verificar la presencia de estructuras de autocorrelación de 1 y segundo orden

La autocorrelación corresponde a la situación en la que hay asociación entre los valores presentes y precedentes de las observaciones de una variable o serie temporal.

Dicho de manera formal, se presenta a través de la situación en la cual, la covarianza entre el i-ésimo y j-ésimo, separados “m” lugares ó períodos es distinta de cero:

Cov(ϵi,ϵj)≠0

Busca obtener que tan asociados se encuentran los valores presentes de los presedentes.

Existiran dos tipos de autocorrelación:

  • Autocorrelación positiva
  • Autocorrelación negativa

Prueba de Durbin Watson

La prueba de Durbin Watson resuelve la autocorrelación de 1° orden. Supone una estructura del residuo de la forma:

ui=ρui−1+υi

Hipótesis de la prueba:

H0:ρ=0 “No hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

H1:ρ≠0

“Hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

Usando libreria lmtest

library(lmtest)
dwtest(modelo_balanza_comercial,alternative="two.sided",iterations=1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_balanza_comercial
## DW = 0.71368, p-value = 0.000002799
## alternative hypothesis: true autocorrelation is not 0

Multiplicador de Lagrange

El Multiplicador de Lagranje (Breusch-Godfrey) pretende obtener autocorrelación de orden superior (m). Supone una estructura del residuo de la forma: uj=ρ1uj−1+ρ2uj−2+⋯+ρmuj−m+vj

Hipótesis de la prueba:

H0:ρ1=ρ2=ρ3=⋯=ρm=0

“No hay evidencia de autocorrelación de orden”m“, en los residuos del modelo”

H1:ρ1=ρ2=ρ3=⋯=ρm≠0

“Hay evidencia de autocorrelación de orden”m“, en los residuos del modelo”

Criterio de decisión:

Rechazar H0 si LMBG>V.C

Alternativamente:

Rechazar H0 si pvalue≤α

Multiplicador de Lagrange de primer orden

Usando libreria lmtest
library(lmtest)
bgtest(modelo_balanza_comercial,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_balanza_comercial
## LM test = 12.707, df = 1, p-value = 0.0003642

Multiplicador de Lagrange de segundo orden

Usando libreria lmtest
library(lmtest)
bgtest(modelo_balanza_comercial,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_balanza_comercial
## LM test = 13.4, df = 2, p-value = 0.001231

Correcciones al modelo estimado

Para corregir el modelo fue necesario la eliminación de una variable para reducir Multicolinalidad , en este caso la variable que representaba una mayor colinealidad fue los “los terminos de intercambio”.

Estimación del Modelo Corregido eliminando colinealidad

(variable eliminada TermInter)

options(scipen = 9999)
library(stargazer)
modelo_balanza_comercial_corregido <- lm(formula = BalanzaCom ~ PIB+TasaAran+TermInter,data = datos_balanza_comercial)
stargazer(modelo_balanza_comercial_corregido,title = "Modelo Balanza Comercial Corregido", type = "html")
Modelo Balanza Comercial Corregido
Dependent variable:
BalanzaCom
PIB -0.0002
(0.0002)
TasaAran -0.460
(0.559)
TermInter 0.137*
(0.068)
Constant -27.872***
(8.093)
Observations 30
R2 0.392
Adjusted R2 0.322
Residual Std. Error 3.177 (df = 26)
F Statistic 5.589*** (df = 3; 26)
Note: p<0.1; p<0.05; p<0.01

\[ \begin{aligned} \operatorname{\widehat{BalanzaCom}} &= -27.87 + 0(\operatorname{PIB}) - 0.46(\operatorname{TasaAran}) + 0.14(\operatorname{TermInter}) \end{aligned} \] ### Verificación de supuestos del MCRLM. Estimación del modelo propuesto y la revisión de los supuestos del MCRLM, por medio de:

• Pruebas de normalidad Jarque Bera, KS y Shapiro Wilk

• Pruebas de Multicolinealidad

• Prueba de Heterocedasticidad de White

• Pruebas de Durbin Watson y Multiplicador de Lagrange para verificar la presencia de estructuras de autocorrelación de 1 y segundo orden.

Pruebas de normalidad

Jarque Bera

Hipótesis de las pruebas de normalidad:

Ho: εi ~ N(0,σ^2) “Los residuos siguen una distribución normal”

Hi: εi ≁ N(0,σ^2) “Los residuos no siguen una distribución normal”

library(normtest)
jb.norm.test(modelo_balanza_comercial_corregido$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_balanza_comercial_corregido$residuals
## JB = 19.046, p-value = 0.002

Prueba Kolmogorov Smirnov

Rechazr Ho: si ~ D≥VC “Los residuos siguen una distribución normal”

Rechazar Ho: si ≁ p≤α “Los residuos no siguen una distribución normal”

library(nortest)
lillie.test(modelo_balanza_comercial_corregido$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_balanza_comercial_corregido$residuals
## D = 0.17485, p-value = 0.01991

Prueba Shapiro Wilk

Rechazr Ho: si ~ WN≥VC “Los residuos siguen una distribución normal”

Rechazar Ho: si ≁ p≤α “Los residuos no siguen una distribución normal”

library(stargazer)
shapiro.test(modelo_balanza_comercial_corregido$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_balanza_comercial_corregido$residuals
## W = 0.85012, p-value = 0.0006237

Pruebas de Multicolinealidad

El Indice de Condición es sensible a la solución del sistema de ecuaciones ante cambios pequeños en los parámetros

  • Sí κ(x) es inferior a 20, la multicolinealidad es leve, no se considera un problema.

  • Para 20<κ(x)<30, la multicolinealidad se considera moderada.

  • En el caso de que κ(x)≥30 la multicolinealidad es severa.

Usando libreria mctest

library(mctest)
eigprop(mod = modelo_balanza_comercial_corregido)
## 
## Call:
## eigprop(mod = modelo_balanza_comercial_corregido)
## 
##   Eigenvalues      CI (Intercept)    PIB TasaAran TermInter
## 1      3.6765  1.0000      0.0004 0.0029   0.0025    0.0004
## 2      0.3051  3.4712      0.0001 0.0869   0.0540    0.0004
## 3      0.0156 15.3728      0.0692 0.6307   0.8486    0.0895
## 4      0.0028 35.9651      0.9303 0.2794   0.0950    0.9097
## 
## ===============================
## Row 3==> PIB, proportion 0.630747 >= 0.50 
## Row 3==> TasaAran, proportion 0.848554 >= 0.50 
## Row 4==> TermInter, proportion 0.909736 >= 0.50

Factores Inflacionarios de la Varianza

Los VIF’s determinan el tamaño relativo de la varianza del j-esimo parámetro estimado, respecto a la varianza esperada del estimador en ausencia de colinealidad.

Presentación de los VIF con libreria mctest

library(mctest)
mc.plot(modelo_balanza_comercial_corregido,vif = 2)

### Prueba de Heterocedasticidad

Hipótesis de la prueba:

Ho: “Hay evidencia de que la varianza de los residuos es Homocedastica.”

Hi: “Hay evidencia de que la varianza de los residuos es Heterocedastica.”

Criterio de decisión: - Rechazar H0 sí LMW≥VC - Rechazar H0 sí Pvalue≤α

library(stargazer)
residuos <- modelo_balanza_comercial_corregido$residuals
data_auxiliar<-as.data.frame(cbind(residuos,datos_balanza_comercial))
regresion_auxiliar<-lm(I(residuos^2)~PIB+TasaAran+TermInter+I(PIB^2)+I(TasaAran^2)+I(TermInter^2),data = data_auxiliar)
resumen<-summary(regresion_auxiliar)
R_2<-resumen$r.squared
n<-nrow(data_auxiliar)
LM_W<-n*R_2
gl<-4+4
vc<-qchisq(p=0.95,df=gl)
pvalue<-1-pchisq(q=LM_W,df=gl)
salida_white<-c(LM_W,vc,pvalue)
names(salida_white)<-c("LMW","Valor Critico","P value")
stargazer(salida_white,title = "Prueba de White",type = "html",digits = 6)
Prueba de White
LMW Valor Critico P value
3.577826 15.507310 0.893066

Pruebas de Autocorrelación

Prueba de Durbin Watson

La prueba de Durbin Watson resuelve la autocorrelación de 1° orden. Supone una estructura del residuo de la forma:

ui=ρui−1+υi

Hipótesis de la prueba:

H0:ρ=0 “No hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

H1:ρ≠0

“Hay evidencia de autocorrelación de primer orden, en los residuos del modelo”

Prueba de Durbin Watson con libreria lmtest

library(lmtest)
dwtest(modelo_balanza_comercial_corregido,alternative="two.sided",iterations=1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_balanza_comercial_corregido
## DW = 0.66735, p-value = 0.000002432
## alternative hypothesis: true autocorrelation is not 0

Prueba de Durbin Watson con librería CAR

library(car)
durbinWatsonTest(modelo_balanza_comercial_corregido,simulate=TRUE,reps=1000)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.6404392     0.6673534   0.002
##  Alternative hypothesis: rho != 0

Autocorrelación de Orden Superior con Multiplicador de Lagrange

Hipótesis de la prueba:

H0:

“No hay evidencia de autocorrelación de orden “m”, en los residuos del modelo”

H1:

“Hay evidencia de autocorrelación de orden “m”, en los residuos del modelo”

Criterio de decisión:

Rechazar H0 si LMBG>V.C

Alternativamente:

Rechazar H0 si pvalue≤α

Usando ibreria lmtest (de orden 1)

library(lmtest)
bgtest(modelo_balanza_comercial_corregido,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_balanza_comercial_corregido
## LM test = 13.079, df = 1, p-value = 0.0002986

Usando ibreria lmtest (de orden 2)

library(lmtest)
bgtest(modelo_balanza_comercial_corregido,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_balanza_comercial_corregido
## LM test = 13.74, df = 2, p-value = 0.001038

Estimadores HAC para corregir presencia de Heterocedasticidad y Autocorrelación

Estimación Robusta

Sin corregir
options(scipen = 99999)
library(lmtest)
coeftest(modelo_balanza_comercial_corregido)
## 
## t test of coefficients:
## 
##                 Estimate   Std. Error t value Pr(>|t|)   
## (Intercept) -27.87150568   8.09335305 -3.4438 0.001956 **
## PIB          -0.00018157   0.00015945 -1.1387 0.265197   
## TasaAran     -0.46039510   0.55887653 -0.8238 0.417554   
## TermInter     0.13674185   0.06752442  2.0251 0.053242 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Corregido (Con estimador HAC)

Corrigiendo la autcorrelación de orden 1

options(scipen = 99999)
library(lmtest)
library(sandwich)
estimacion_corregida <- vcovHC(modelo_balanza_comercial_corregido,type="HC1")
robust.se <- sqrt(diag(estimacion_corregida))

coeftest(modelo_balanza_comercial_corregido,vcov. = estimacion_corregida)
## 
## t test of coefficients:
## 
##                 Estimate   Std. Error t value   Pr(>|t|)    
## (Intercept) -27.87150568   5.27493717 -5.2838 0.00001592 ***
## PIB          -0.00018157   0.00011596 -1.5658  0.1294960    
## TasaAran     -0.46039510   0.37309753 -1.2340  0.2282485    
## TermInter     0.13674185   0.03606246  3.7918  0.0008027 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Corrigiendo la Autocorrelación de segundo orden con NeweyWest

## 
## t test of coefficients:
## 
##                 Estimate   Std. Error t value    Pr(>|t|)    
## (Intercept) -27.87150568   4.84886625 -5.7480 0.000004727 ***
## PIB          -0.00018157   0.00012466 -1.4566    0.157204    
## TasaAran     -0.46039510   0.34825729 -1.3220    0.197683    
## TermInter     0.13674185   0.03797786  3.6006    0.001313 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Comparativa del modelo de la estimación Robusta

## 
## Comparativa
## ==============================================================
##                                     Dependent variable:       
##                               --------------------------------
##                                          BalanzaCom           
##                               Modelo Original Modelo Corregido
##                                     (1)             (2)       
## --------------------------------------------------------------
## PIB                               -0.0002         -0.0002     
##                                  (0.0002)         (0.0001)    
##                                                               
## TasaAran                          -0.460           -0.460     
##                                   (0.559)         (0.373)     
##                                                               
## TermInter                         0.137*          0.137***    
##                                   (0.068)         (0.036)     
##                                                               
## Constant                        -27.872***       -27.872***   
##                                   (8.093)         (5.275)     
##                                                               
## --------------------------------------------------------------
## Observations                        30               30       
## R2                                 0.392           0.392      
## Adjusted R2                        0.322           0.322      
## Residual Std. Error (df = 26)      3.177           3.177      
## F Statistic (df = 3; 26)         5.589***         5.589***    
## ==============================================================
## Note:                              *p<0.1; **p<0.05; ***p<0.01

Estimacion robusta con Robustbase

## 
## Comparativa
## ==============================================================
##                                     Dependent variable:       
##                               --------------------------------
##                                          BalanzaCom           
##                                        OLS           MM-type  
##                                                       linear  
##                                        (1)             (2)    
## --------------------------------------------------------------
## PIB                                  -0.0002         -0.0002* 
##                                     (0.0002)         (0.0001) 
##                                                               
## TasaAran                             -0.460          -0.559*  
##                                      (0.559)         (0.275)  
##                                                               
## TermInter                            0.137*          0.134*** 
##                                      (0.068)         (0.031)  
##                                                               
## Constant                           -27.872***       -26.446***
##                                      (8.093)         (4.378)  
##                                                               
## --------------------------------------------------------------
## Observations                           30               30    
## R2                                    0.392           0.527   
## Adjusted R2                           0.322           0.472   
## Residual Std. Error (df = 26)         3.177           2.421   
## F Statistic                   5.589*** (df = 3; 26)           
## ==============================================================
## Note:                              *p<0.1; **p<0.05; ***p<0.01

Pruebas de hipótesis del modelo

dadas las hipotesisis planteadas en la teoria donde;

Ho: β1=0 | Las variables macroeconómicas: el PIB, el valor de tipo de cambio real bilateral, la tasa arancelaria y los términos de intercambio son factores que inciden de forma directa en el saldo de balanza comercial.

Ha: β1≠0 | Las variables macroeconómicas: el PIB, el valor de tipo de cambio real bilateral, la tasa arancelaria y los términos de intercambio no  son factores que inciden de forma directa en el saldo de la balanza comercial.

Distribución T

##            2.5 %       97.5 %
## PIB -0.000509324 0.0001461821
##              2.5 %    97.5 %
## TasaAran -1.609182 0.6883921

## 
## Call:
## lm(formula = BalanzaCom ~ PIB + TasaAran + TermInter, data = datos_balanza_comercial)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.8782 -1.0397  0.7379  1.6390  3.8510 
## 
## Coefficients:
##                Estimate  Std. Error t value Pr(>|t|)   
## (Intercept) -27.8715057   8.0933530  -3.444  0.00196 **
## PIB          -0.0001816   0.0001594  -1.139  0.26520   
## TasaAran     -0.4603951   0.5588765  -0.824  0.41755   
## TermInter     0.1367418   0.0675244   2.025  0.05324 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.177 on 26 degrees of freedom
## Multiple R-squared:  0.3921, Adjusted R-squared:  0.3219 
## F-statistic: 5.589 on 3 and 26 DF,  p-value: 0.004273

Dado que p=0.004273 es decir que p< nivel de significancia la Ho de la investigación se rechaza.

Proyecciones y análisis de resultados

Análisis de Simulación

Utilizando comando Predict, determinamos el pronostico y los intervalos de confianza

## 
## Pronósticos e intervalos de confianza
## ==============================
##       Ym        Li       Ls   
## ------------------------------
## 95 -451.680 -1,001.141 97.781 
## 99 -451.680 -1,194.455 291.095
## 90 -451.680  -907.607   4.247 
## ------------------------------

Programación de Funciones

#Bias Proportion
Um<-function(pronosticado,observado){library(DescTools)
  ((mean(pronosticado)-mean(observado))*2)/MSE(pronosticado,observado)
}

#Variance Proportion
Us<-function(pronosticado,observado){
  library(DescTools)
  ((sd(pronosticado)-sd(observado))*2)/MSE(pronosticado,observado)
}

#Covariance Proportion
Uc<-function(pronosticado,observado){
  library(DescTools)
  (2*(1-cor(pronosticado,observado))*sd(pronosticado)*sd(observado))/MSE(pronosticado,observado)
}

#Coeficiente U de Theil (también aparece en la Liberria "DescTools")
Theil_U<-function(pronosticado,observado){library(DescTools)
  RMSE(pronosticado,observado)/(sqrt(mean(pronosticado^2))*sqrt(mean(observado^2)))
  }

Script de Simulación

options(scipen = 999999)
library(dplyr)
library(caret)
library(DescTools)
library(stargazer)
set.seed(50)
numero_de_muestras<-1000
muestras<-datos_balanza_comercial$BalanzaCom %>%
  createDataPartition(p = 0.8,
                      times = numero_de_muestras,
                      list = TRUE)
#Lista vacias que contendran los datos de entrenamiento, los pronosticos para los datos de prueba y para los estadisticos de cada muestra
Modelos_Entrenamiento<-vector(mode = "list",
                              length = numero_de_muestras)
Pronostico_Prueba<-vector(mode = "list",
                           length = numero_de_muestras)
Resultados_Performance_data_entrenamiento<-vector(mode = "list",
                                                  length = numero_de_muestras)
Resultados_Performance<-vector(mode = "list",
                               length = numero_de_muestras)
#Estimación de los modelos lineales para cada muestra, los pronósticos y cálculo de los estaditicos de performance.
for(j in 1:numero_de_muestras){
Datos_Entrenamiento<- datos_balanza_comercial[muestras[[j]], ]
Datos_Prueba<- datos_balanza_comercial[-muestras[[j]], ]
Modelos_Entrenamiento[[j]]<-lm(formula = BalanzaCom~.,data=Datos_Entrenamiento)
Pronostico_Prueba[[j]]<-Modelos_Entrenamiento[[j]] %>% predict(Datos_Prueba)
Resultados_Performance_data_entrenamiento[[j]]<-data.frame( 
            R2 = R2(Modelos_Entrenamiento[[j]]$fitted.values,
                    Datos_Entrenamiento$BalanzaCom),
            RMSE = RMSE(Modelos_Entrenamiento[[j]]$fitted.values,
                        Datos_Entrenamiento$BalanzaCom),
            MAE = MAE(Modelos_Entrenamiento[[j]]$fitted.values,
                      Datos_Entrenamiento$BalanzaCom),
            MAPE= MAPE(Modelos_Entrenamiento[[j]]$fitted.values,
                       Datos_Entrenamiento$BalanzaCom)*100,
            THEIL=TheilU(Modelos_Entrenamiento[[j]]$fitted.values,
                         Datos_Entrenamiento$BalanzaCom,type = 1),
            Um=Um(Modelos_Entrenamiento[[j]]$fitted.values,
                         Datos_Entrenamiento$BalanzaCom),
            Us=Us(Modelos_Entrenamiento[[j]]$fitted.values,
                         Datos_Entrenamiento$BalanzaCom),
            Uc=Uc(Modelos_Entrenamiento[[j]]$fitted.values,
                         Datos_Entrenamiento$BalanzaCom)
            )
Resultados_Performance[[j]]<-data.frame( 
            R2 = R2(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom),
            RMSE = RMSE(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom),
            MAE = MAE(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom),
            MAPE= MAPE(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom)*100,
            THEIL=TheilU(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom,
                         type = 1),
            Um=Um(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom),
            Us=Us(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom),
            Uc=Uc(Pronostico_Prueba[[j]], Datos_Prueba$BalanzaCom)
            )
}

Resultados de la Simulación

bind_rows(Resultados_Performance_data_entrenamiento)%>%
  stargazer(title = "Medidas de Performance Datos del Modelo",
            type = "html",
            digits = 3)
Medidas de Performance Datos del Modelo
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
R2 1,000 0.424 0.044 0.333 0.392 0.455 0.562
RMSE 1,000 2.884 0.231 2.344 2.636 3.060 3.120
MAE 1,000 2.077 0.179 1.592 1.916 2.220 2.344
MAPE 1,000 11.588 0.933 8.800 10.902 12.338 13.134
THEIL 1,000 0.082 0.006 0.067 0.076 0.087 0.089
Um 1,000 -0.000 0.000 -0 0 0 0
Us 1,000 -0.326 0.014 -0.366 -0.335 -0.316 -0.301
Uc 1,000 0.819 0.025 0.761 0.801 0.838 0.891
bind_rows(Resultados_Performance)%>%
  stargazer(title = "Medidas de Performance Simulación",
            type = "html",
            digits = 3)
Medidas de Performance Simulación
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
R2 1,000 0.510 0.293 0.0004 0.261 0.771 0.999
RMSE 1,000 3.138 1.302 0.999 2.084 4.443 6.835
MAE 1,000 2.539 0.944 0.757 1.769 3.254 6.480
MAPE 1,000 14.455 4.585 4.453 11.073 17.518 35.383
THEIL 1,000 0.089 0.036 0.029 0.058 0.124 0.200
Um 1,000 -0.191 0.414 -1.575 -0.497 0.135 1.421
Us 1,000 -0.261 0.362 -1.446 -0.452 -0.075 1.858
Uc 1,000 0.644 0.361 0.001 0.347 0.930 1.327

Analisis de resultados

Los resultados proporcionaos a lo largo de la investigación por nuestro modelo de Balanza comercial en el Salvador, nos indican que dicho modelo no es adecuado para realizar un pronóstico, es decir la relación que existe entre los datos de las variables y el saldo de la balanza comercial no son significativas para muestro modelo, además puede concluirse que sería necesario incluir más variables para explicarlo de mejor manera.

Bibliografía

“Banco Central de Reserva de El Salvador -.” n.d.a. https://www.bcr.gob.sv/bcrsite/?cdr=38&lang=es. ———. n.d.b. https://www.bcr.gob.sv/bcrsite/?cdr=38&lang=es. Caribe, Comisión Económica para América Latina y el. 2015. Las variaciones del tipo de cambio y el índice de inflación en las economías emergentes. CEPAL. https://www.cepal.org/es/publicaciones/38790-variaciones-tipo-cambio-indice-inflacion-economias-emergentes. de, Marzo. n.d. “Sistema de Cuentas Nacionales de El Salvador (SCNES),” 166. “ECONOMÍA DE EL SALVADOR: historia, ventajas y desventajas y más.” 2019. https://adriw.com/c-economia-mundial/economia-de-el-salvador/. “GLOSARIO DEL SECTOR EXTERNO.” n.d. https://www.bcr.gob.sv/bcrsite/uploaded/content/cuadro/812603423.pdf. Góchez, Roberto. 2011. “Análisis de La Evolución Reciente Del Sector Externo Salvadoreño.” “Términos de Intercambio - Raúl Prebisch y Los Desafíos Del Siglo XXI - Biblioguias at Biblioteca CEPAL, Naciones Unidas.” n.d. https://biblioguias.cepal.org/portalprebisch/SXXI/TerminosIntercambio. “World Bank Open Data | Data.” n.d. https://datos.bancomundial.org/.