# Fijación ordinaria de comisiones máximas del sistema de tarjetas de pago 2023

#### División Económica y División Sistemas de Pago, BCCR

#### Noviembre 2023

    library(openxlsx) #Permite la lectura de archivos tipo "xlsx"
    library(stargazer)#Para mejor apariencia de tablas
    library(sandwich)#Para matriz de varianzas y covarianzas robusta
    library(lmtest)#Para pruebas de heterocedasticidad y autocorrelación
    library(glmulti)#Para selección de variables
    library(moments)#Para pruebas de normalidad de los residuos
    library(skedastic)#Para pruebas de heterocedasticidad
    library(AER)#Pruebas sobre endogeneidad y estimación IV
    library(truncreg)#Para regresión truncada
    library(car)#Para condición de multicolinealidad
    library(strucchange)#Para prueba estabilidad
    library(dplyr) #Para manejo de datos
    library(MASS) # regresión robusta
    library(lme4) # modelo efectos aleatorios
    library(readxl) # lectura archivo en excel
    library(dplyr) # manipulación de datos

# 1 Introducción

El presente documento permite replicar las estimaciones en el documento “Fijación ordinaria de comisiones máximas del sistema de tarjetas de pago 2023”. Se consideran los siguientes modelos:

- Regresión lineal múltiple.
- Regresión con variable dependiente truncada (en 0% y en el valor internacional más bajo registrado).
- Regresión lineal múltiple con una transformación logarítmica a la variable dependiente.
- Inclusión de efectos no lineales en la regresión.
- Método bootstrap.
- Regresión robusta.
- Regresión lineal múltiple omitiendo los datos pertenecientes al Espacio Económico Europeo (EEE).
- Regresión lineal múltiple restringiendo la muestra únicamente a países que regulan las tasas de intercambio/adquirencia.
- Regresión lineal con la ampliación de regulación (intercambio o adquirencia)
- Modelo sin variables relacionadas al uso de tarjetas.
- Método de variables instrumentales.
- Modelo de efectos aleatorios.

La descripción de los datos utilizados es la siguiente:

    #datos<-read.xlsx("Base_datos_adquirencia_intercambio.xlsx", sheet =  1, colNames = TRUE)
    attach(datos)

    #Se describen los datos
    #str(datos)
    #summary(datos)
    #Selección de variables a utilizar
    misc<-dplyr::select(datos, c("Codigo_Pais","OCDE","Regulacion_intercambio","Regulacion_adquirencia"))
    misc<-misc[order(misc$Regulacion_intercambio, decreasing = TRUE),] # ordenando por regulacion intercambio
    misc<-misc[!duplicated(misc[,1]),]
    #Se elimina Costa Rica
    misc<-misc[misc$Codigo_Pais!="CRI",]

    #Tabla OCDE de frecuencias
    tabla_ocde<-as.data.frame(cbind( c(0,1, "Total"),
                                     c(sum(misc$OCDE==0), sum(misc$OCDE==1), nrow(misc)),
                                     round(c(100*sum(misc$OCDE==0)/nrow(misc),
                                             100*sum(misc$OCDE==1)/nrow(misc),
                                             100*sum(misc$OCDE==0)/nrow(misc)+
                                             100*sum(misc$OCDE==1)/nrow(misc)),1),
                                     c(round(100*sum(misc$OCDE==0)/nrow(misc),1),
                                       round(100*sum(misc$OCDE==0)/nrow(misc)+
                                               100*sum(misc$OCDE==1)/nrow(misc),1), "")
                                     )
                              )

    names(tabla_ocde)<-c("País pertenece a la OCDE", "Frecuencia", "Porcentaje", "Acumulado")

    #Tabla intercambio
    tabla_int<-as.data.frame(cbind( c(0,1, "Total"),
                                    c(sum(misc$Regulacion_intercambio==0),
                                      sum(misc$Regulacion_intercambio==1),
                                      nrow(misc)),
                                    round(c(
                                      100*sum(misc$Regulacion_intercambio==0)/nrow(misc),
                                      100*sum(misc$Regulacion_intercambio==1)/nrow(misc),
                                      100*sum(misc$Regulacion_intercambio==0)/nrow(misc) +
                                      100*sum(misc$Regulacion_intercambio==1)/nrow(misc)),1),
                                      c(round(100*sum(misc$Regulacion_intercambio==0)/nrow(misc),1),
                                            round(100*sum(misc$Regulacion_intercambio==0)/nrow(misc) +
                                            100*sum(misc$Regulacion_intercambio==1)/nrow(misc),1), "")
                                    )
                             )

    names(tabla_int)<-c("Regulación en intercambio", "Frecuencia", "Porcentaje", "Acumulado")

    #Tabla adquirencia
    tabla_adq<-as.data.frame(cbind( c(0,1, "Total"),
                                    c(sum(misc$Regulacion_adquirencia==0),
                                      sum(misc$Regulacion_adquirencia==1),
                                      nrow(misc)),
                                    round(c(
                                      100*sum(misc$Regulacion_adquirencia==0)/nrow(misc),
                                      100*sum(misc$Regulacion_adquirencia==1)/nrow(misc),
                                      100*sum(misc$Regulacion_adquirencia==0)/nrow(misc)+
                                      100*sum(misc$Regulacion_adquirencia==1)/nrow(misc)),1),
                                    c(round(100*sum(misc$Regulacion_adquirencia==0)/nrow(misc),1),
                                      round(100*sum(misc$Regulacion_adquirencia==0)/nrow(misc)+
                                      100*sum(misc$Regulacion_adquirencia==1)/nrow(misc),1), "")
                                    )
                             )
    names(tabla_adq)<-c("Regulación en adquirencia", "Frecuencia", "Porcentaje", "Acumulado")
    detach(datos)
    # vista de las tablas
    tabla_ocde

País pertenece a la OCDE | Frecuencia | Porcentaje | Acumulado
--- | --- | --- | ---
0 | 36 | 49.3 | 49.3
1 | 37 | 50.7 | 100
Total | 73 | 100 |

    tabla_int

Regulación en intercambio | Frecuencia | Porcentaje | Acumulado
--- | --- | --- | ---
0 | 21 | 28.8 | 28.8
1 | 52 | 71.2 | 100
Total | 73 | 100 |

    tabla_adq

Regulación en adquirencia | Frecuencia | Porcentaje | Acumulado
--- | --- | --- | ---
0 | 67 | 91.8 | 91.8
1 | 6 | 8.2 | 100
Total | 73 | 100 |

# 2 Regresiones tasa de intercambio

## 2.1 Modelos base, AICc y BIC

La cantidad de países con información de la tasa de intercambio en la muestra es la siguiente:

    misc<-datos[,c(1:3)]
    misc<-na.omit(misc)
    misc<-misc[!duplicated(misc[,1]),]
    #Se elimina Costa Rica
    misc<-misc[misc$Codigo_Pais!="CRI",]

    #Cantidad de países con información de la tasa de intercambio en la muestra
    nrow(misc)

    ## [1] 73

Se llevan a cabo múltiples especificaciones de regresión lineal para determinar la tasa de intercambio esperada para Costa Rica. Primero, se realizan estimaciones sin variables de control. Posteriormente, se utilizan criterios de información para seleccionar los controles a partir de una comparación entre la bondad de ajuste y la complejidad del modelo. En particular, estos criterios de información son el criterio de información de Akaike con una corrección para tamaños de muestra pequeños (AICc) y el criterio de información bayesiana (BIC).

    #Elimino los NA de la variable respuesta:
    datos_int=datos[,-5] # quita adquirencia para que no afecte en la eliminación de NA´s
    datos_int=na.omit(datos_int)
    #sum(table(unique(datos_int$Pais)))

- Modelo sin controles

    #remover NA's de la columna "Intercambio" y dejar los demás.
    datos2=datos %>%
      filter(!is.na(Intercambio))

    modelo_int_sin_cont<-lm(Intercambio ~ Regulacion_intercambio, datos2)

    # Errores robustos
    modelo_int_sin_cont_corr_hc<-coeftest(modelo_int_sin_cont, vcov. = vcovHC(modelo_int_sin_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_cont_corr_hac<-coeftest(modelo_int_sin_cont, vcov. = vcovHAC(modelo_int_sin_cont, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_sin_cont, modelo_int_sin_cont_corr_hc, type = "html",
              title = "Estimación principal - Modelo sin controles",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo sin controles
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.683*** | -0.683***
| (0.069) | (0.070)
Constant | 1.386*** | 1.386***
| (0.051) | (0.054)
Observations | 194 |
R2 | 0.337 |
Adjusted R2 | 0.333 |
Residual Std. Error | 0.481 (df = 192) |
F Statistic | 97.467*** (df = 1; 192) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación:
    pred_int_sin_cont_sin_reg<-predict(modelo_int_sin_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación:
    pred_int_sin_cont_con_reg<-predict(modelo_int_sin_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Modelo con los controles
    modelo_int_con_cont<-lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
                              Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                              Asia_Este + Am_lat, datos_int)
    # Errores robustos
    modelo_int_con_cont_corr_hc<-coeftest(modelo_int_con_cont, vcov. = vcovHC(modelo_int_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_corr_hac<-coeftest(modelo_int_con_cont, vcov. = vcovHAC(modelo_int_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_int_con_cont, modelo_int_con_cont_corr_hc, type = "html",
    #          title = "Regresión sobre la tasa de intercambio con todos los controles",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")
    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_sin_reg<-predict(modelo_int_con_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg<-predict(modelo_int_con_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante AICc sin efectos fijos de tiempo:

Para determinar si se debe hacer un ajuste por tamaño de muestra pequeña, se debe tener que \(\frac{n}{k} < 40\), donde n es la cantidad de observaciones y k es la cantidad de variables:

    n=nrow(datos_int)
    k=15
    n/k

    ## [1] 9.933333

    # Selección con AICc
    datos_int<-datos %>% dplyr::select(-Adquirencia) %>% na.omit()

    modelo_int_con_cont_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                              Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 13
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 8
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_int_con_cont_aicc=lm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat,datos_int)
    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_aicc_sin_reg<-predict(modelo_int_con_cont_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_aicc_con_reg<-predict(modelo_int_con_cont_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Errores robustos
    modelo_int_con_cont_aicc_corr_hc<-coeftest(modelo_int_con_cont_aicc, vcov. = vcovHC(modelo_int_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_aicc_corr_hac<-coeftest(modelo_int_con_cont_aicc, vcov. = vcovHAC(modelo_int_con_cont_aicc, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_con_cont_aicc, modelo_int_con_cont_aicc_corr_hc,
              type = "html",
              title = "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.636*** | -0.636***
| (0.054) | (0.060)
Cuenta | -0.014*** | -0.014***
| (0.002) | (0.002)
Credito | 0.006*** | 0.006***
| (0.002) | (0.002)
Asia_Este | 0.510*** | 0.510***
| (0.085) | (0.074)
Am_lat | 0.540*** | 0.540***
| (0.078) | (0.087)
Constant | 2.064*** | 2.064***
| (0.163) | (0.191)
Observations | 149 |
R2 | 0.761 |
Adjusted R2 | 0.753 |
Residual Std. Error | 0.305 (df = 143) |
F Statistic | 91.130*** (df = 5; 143) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    # modelo inicial o saturado
    modelo_int_con_cont_bic<-lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                              Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # método BIC
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 14
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 9
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #Ya no se eliminan columnas
    controles2<-controles
    #print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))
    # Estimación del modelo
    modelo_int_con_cont_bic=lm(formula = Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat,
        data = datos_int)

    modelo_int_con_cont_bic_corr_hc<-coeftest(modelo_int_con_cont_bic, vcov. = vcovHC(modelo_int_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_bic_corr_hac<-coeftest(modelo_int_con_cont_bic, vcov. = vcovHAC(modelo_int_con_cont_bic, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_con_cont_bic, modelo_int_con_cont_bic_corr_hc, type = "html",
              title = "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.636*** | -0.636***
| (0.054) | (0.060)
Cuenta | -0.014*** | -0.014***
| (0.002) | (0.002)
Credito | 0.006*** | 0.006***
| (0.002) | (0.002)
Asia_Este | 0.510*** | 0.510***
| (0.085) | (0.074)
Am_lat | 0.540*** | 0.540***
| (0.078) | (0.087)
Constant | 2.064*** | 2.064***
| (0.163) | (0.191)
Observations | 149 |
R2 | 0.761 |
Adjusted R2 | 0.753 |
Residual Std. Error | 0.305 (df = 143) |
F Statistic | 91.130*** (df = 5; 143) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_bic_sin_reg<-predict(modelo_int_con_cont_bic, newdata = datos_int, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_bic_con_reg<-predict(modelo_int_con_cont_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Modelo con los controles con efectos fijos de tiempo:
    modelo_int_con_cont_ef<-lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
                                 Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
                                 Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                 Asia_Este + Am_lat + Año_2013 + Año_2014 +
                                 Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                 Año_2021 + Año_2022, datos_int)

    # errores robustos
    modelo_int_con_cont_ef_corr_hc<-coeftest(modelo_int_con_cont_ef, vcov. = vcovHC(modelo_int_con_cont_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_ef_corr_hac<-coeftest(modelo_int_con_cont_ef, vcov. = vcovHAC(modelo_int_con_cont_ef, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_int_con_cont_ef, modelo_int_con_cont_ef_corr_hc,
    #          type = "html", title = "Regresión sobre la tasa de intercambio con controles y efectos fijos de tiempo",
    #          column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa intercambio", "Tasa intercambio"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_ef_sin_reg<-predict(modelo_int_con_cont_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_ef_con_reg<-predict(modelo_int_con_cont_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_int_con_cont_ef_aicc<-lm(Intercambio ~ Regulacion_intercambio + Año_2010 +
                                      Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                      Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                      Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                      Debito + Credito + Densidad_Pob + Densidad_Neg +
                                      PIB_pc_PPA + ICH + Valor_prom + Europa +
                                      Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022", "Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de años + regulación
    cvar<-13
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_ef_aicc)

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 15
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 19
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))

    # Estimación del modelo:
    modelo_int_con_cont_ef_aicc=lm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat +
                                     Año_2013 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                     Año_2021 + Año_2022 + Año_2023,
                                   data = datos_int)

    modelo_int_con_cont_ef_aicc_corr_hc<-coeftest(modelo_int_con_cont_ef_aicc, vcov. = vcovHC(modelo_int_con_cont_ef_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_ef_aicc_corr_hac<-coeftest(modelo_int_con_cont_ef_aicc, vcov. = vcovHAC(modelo_int_con_cont_ef_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_ef_aicc, modelo_int_con_cont_ef_aicc_corr_hc,type = "html",
              title = "Estimación principal - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.662*** | -0.662***
| (0.070) | (0.085)
Cuenta | -0.012*** | -0.012***
| (0.002) | (0.003)
Credito | 0.005*** | 0.005***
| (0.002) | (0.002)
Asia_Este | 0.443*** | 0.443***
| (0.092) | (0.077)
Am_lat | 0.507*** | 0.507***
| (0.086) | (0.095)
Año_2013 | -0.106 | -0.106
| (0.148) | (0.144)
Año_2015 | 0.084 | 0.084
| (0.179) | (0.151)
Año_2016 | 0.123 | 0.123
| (0.168) | (0.177)
Año_2017 | -0.052 | -0.052
| (0.140) | (0.132)
Año_2018 | 0.056 | 0.056
| (0.157) | (0.144)
Año_2019 | 0.036 | 0.036
| (0.155) | (0.154)
Año_2020 | 0.084 | 0.084
| (0.148) | (0.140)
Año_2021 | 0.052 | 0.052
| (0.160) | (0.156)
Año_2022 | -0.051 | -0.051
| (0.165) | (0.147)
Año_2023 | 0.125 | 0.125
| (0.180) | (0.204)
Constant | 2.004*** | 2.004***
| (0.209) | (0.219)
Observations | 149 |
R2 | 0.773 |
Adjusted R2 | 0.748 |
Residual Std. Error | 0.308 (df = 133) |
F Statistic | 30.211*** (df = 15; 133) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_ef_aic_sin_reg<-predict(modelo_int_con_cont_ef_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_ef_aic_con_reg<-predict(modelo_int_con_cont_ef_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_int_con_cont_bic_ef<-lm(Intercambio ~ Regulacion_intercambio + Año_2010 + Año_2011 +
                                     Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
                                     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                     Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                     Debito + Credito + Densidad_Pob + Densidad_Neg +
                                     PIB_pc_PPA + ICH + Valor_prom + Europa +
                                     Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020", "Año_2021","Año_2022","Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables año y regulación
    cvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_con_cont_bic_ef)

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]
    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo
    modelo_int_con_cont_ef_bic=lm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito +
                                    Asia_Este + Am_lat + Año_2013 + Año_2015 + Año_2016 +
                                    Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                    Año_2022 + Año_2023,
                                  data = datos_int)

    modelo_int_con_cont_ef_bic_corr_hc<-coeftest(modelo_int_con_cont_ef_bic, vcov. = vcovHC(modelo_int_con_cont_ef_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_ef_bic_corr_hac<-coeftest(modelo_int_con_cont_ef_bic, vcov. = vcovHAC(modelo_int_con_cont_ef_bic, adjust = TRUE, sandwich = TRUE))
    # Visualización de resultados
    stargazer(modelo_int_con_cont_ef_bic, modelo_int_con_cont_ef_bic_corr_hc,type = "html",
              title = "Estimación principal - Modelo BICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo BICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.662*** | -0.662***
| (0.070) | (0.085)
Cuenta | -0.012*** | -0.012***
| (0.002) | (0.003)
Credito | 0.005*** | 0.005***
| (0.002) | (0.002)
Asia_Este | 0.443*** | 0.443***
| (0.092) | (0.077)
Am_lat | 0.507*** | 0.507***
| (0.086) | (0.095)
Año_2013 | -0.106 | -0.106
| (0.148) | (0.144)
Año_2015 | 0.084 | 0.084
| (0.179) | (0.151)
Año_2016 | 0.123 | 0.123
| (0.168) | (0.177)
Año_2017 | -0.052 | -0.052
| (0.140) | (0.132)
Año_2018 | 0.056 | 0.056
| (0.157) | (0.144)
Año_2019 | 0.036 | 0.036
| (0.155) | (0.154)
Año_2020 | 0.084 | 0.084
| (0.148) | (0.140)
Año_2021 | 0.052 | 0.052
| (0.160) | (0.156)
Año_2022 | -0.051 | -0.051
| (0.165) | (0.147)
Año_2023 | 0.125 | 0.125
| (0.180) | (0.204)
Constant | 2.004*** | 2.004***
| (0.209) | (0.219)
Observations | 149 |
R2 | 0.773 |
Adjusted R2 | 0.748 |
Residual Std. Error | 0.308 (df = 133) |
F Statistic | 30.211*** (df = 15; 133) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    #Sin regulación
    pred_modelo_int_con_cont_bic_ef_sin_reg<-predict(modelo_int_con_cont_ef_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_modelo_int_con_cont_bic_ef_con_reg<-predict(modelo_int_con_cont_ef_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

## 2.2 Regresiones con truncamiento tasa de intercambio

Una crítica a los modelos de regresión lineal anteriores es que no toman en consideración el posible truncamiento de la variable de respuesta. Una variable es truncada cuando no puede observarse su valor después de cierto umbral en otra variable que la define (llamada variable latente). En el caso de las comisiones de intercambio y adquirencia, no es posible observar valores negativos. Igualmente, no debería ser posible observar tasas por debajo del costo de operación. Por ello, se realiza el ejercicio de estimar modelos con un truncamiento de tasas de intercambio en 0 y 0.27 (mínimo valor en la muestra, que corresponde a España).

Truncado en 0:
En primer lugar, se realiza la estimación de modelos truncados usando las variables seleccionadas según el criterio de AICc:

    #Se realiza modelos truncados
    #AICc
    #Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat
    #Truncamiento en 0
    modelo_truncado_int_0_aicc<-truncreg(Intercambio ~ Regulacion_intercambio + Cuenta +
                                           Credito + Asia_Este + Am_lat, datos_int, point = 0, direction = "left",
                                         model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0_aicc)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat, data = datos_int, point = 0,
    ##     direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.21E-09
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error  t-value  Pr(>|t|)
    ## (Intercept)             2.1412246  0.1750358  12.2331 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6929268  0.0608588 -11.3858 < 2.2e-16 ***
    ## Cuenta                 -0.0152916  0.0024498  -6.2420 4.320e-10 ***
    ## Credito                 0.0071005  0.0020835   3.4079 0.0006546 ***
    ## Asia_Este               0.5768833  0.0933803   6.1778 6.501e-10 ***
    ## Am_lat                  0.5498807  0.0826107   6.6563 2.808e-11 ***
    ## sigma                   0.3183593  0.0209184  15.2191 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -25.085 on 7 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0_aicc_sin_reg<-predict(modelo_truncado_int_0_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0_aicc_con_reg<-predict(modelo_truncado_int_0_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- BIC:
  Ahora se realiza la estimación de modelos truncados usando las variables seleccionadas mediante el criterio de BIC.

    #BIC
    #Truncamiento en 0
    modelo_truncado_int_0_bic<-truncreg(Intercambio ~ Regulacion_intercambio + Cuenta +
                                           Credito + Asia_Este + Am_lat,
                                        datos_int, point = 0, direction = "left",
                                        model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0_bic)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat, data = datos_int, point = 0,
    ##     direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.21E-09
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error  t-value  Pr(>|t|)
    ## (Intercept)             2.1412246  0.1750358  12.2331 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6929268  0.0608588 -11.3858 < 2.2e-16 ***
    ## Cuenta                 -0.0152916  0.0024498  -6.2420 4.320e-10 ***
    ## Credito                 0.0071005  0.0020835   3.4079 0.0006546 ***
    ## Asia_Este               0.5768833  0.0933803   6.1778 6.501e-10 ***
    ## Am_lat                  0.5498807  0.0826107   6.6563 2.808e-11 ***
    ## sigma                   0.3183593  0.0209184  15.2191 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -25.085 on 7 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0_bic_sin_reg<-predict(modelo_truncado_int_0_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0_bic_con_reg<-predict(modelo_truncado_int_0_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

Ahora se procede a realizar las estimaciones con truncamiento contemplando efectos fijos de tiempo:
* Por AICc:

    #AICc con efectos fijos de tiempo
    #Truncamiento en 0

    modelo_truncado_int_0_aicc_ef<-truncreg(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat
                                            + Año_2013 + #Año_2014
                                            + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                              Año_2019 + Año_2020 + Año_2021 +  Año_2022 +  Año_2023, data = datos_int,
                                            point = 0, direction = "left", model = TRUE,
                                            y = FALSE, x = FALSE, scaled = TRUE)
    # Modelo estimado
    summary(modelo_truncado_int_0_aicc_ef)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat + Año_2013 + +Año_2015 + Año_2016 +
    ##     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
    ##     Año_2022 + Año_2023, data = datos_int, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.25E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             2.0693270  0.2184321  9.4735 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6925017  0.0725431 -9.5461 < 2.2e-16 ***
    ## Cuenta                 -0.0137413  0.0025289 -5.4338 5.516e-08 ***
    ## Credito                 0.0059884  0.0020822  2.8760  0.004027 **
    ## Asia_Este               0.5013922  0.0977624  5.1287 2.918e-07 ***
    ## Am_lat                  0.5155158  0.0877874  5.8723 4.297e-09 ***
    ## Año_2013               -0.0737868  0.1565084 -0.4715  0.637315
    ## Año_2015                0.0847187  0.1897329  0.4465  0.655225
    ## Año_2016                0.1300413  0.1759028  0.7393  0.459737
    ## Año_2017               -0.0817821  0.1514367 -0.5400  0.589168
    ## Año_2018                0.0644705  0.1648733  0.3910  0.695775
    ## Año_2019                0.0418855  0.1643377  0.2549  0.798820
    ## Año_2020                0.1044620  0.1568034  0.6662  0.505285
    ## Año_2021                0.0741717  0.1692264  0.4383  0.661170
    ## Año_2022               -0.0401577  0.1756399 -0.2286  0.819152
    ## Año_2023                0.1451606  0.1889263  0.7683  0.442282
    ## sigma                   0.3098422  0.0203536 15.2230 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -21.335 on 17 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0_aicc_ef_sin_reg<-predict(modelo_truncado_int_0_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0_aicc_ef_con_reg<-predict(modelo_truncado_int_0_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Por BIC:

    #BIC
    #Truncamiento en 0
    modelo_truncado_int_0_bic_ef<-truncreg(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat +
                                             Año_2013 + #Año_2014 +
                                             Año_2015 +
                                             Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                             Año_2020 + Año_2021 +  Año_2022 +  Año_2023, data = datos_int, point = 0,
                                           direction = "left", model = TRUE, y = FALSE,
                                           x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0_bic_ef)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat + Año_2013 + Año_2015 + Año_2016 +
    ##     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
    ##     Año_2022 + Año_2023, data = datos_int, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.25E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             2.0693270  0.2184321  9.4735 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6925017  0.0725431 -9.5461 < 2.2e-16 ***
    ## Cuenta                 -0.0137413  0.0025289 -5.4338 5.516e-08 ***
    ## Credito                 0.0059884  0.0020822  2.8760  0.004027 **
    ## Asia_Este               0.5013922  0.0977624  5.1287 2.918e-07 ***
    ## Am_lat                  0.5155158  0.0877874  5.8723 4.297e-09 ***
    ## Año_2013               -0.0737868  0.1565084 -0.4715  0.637315
    ## Año_2015                0.0847187  0.1897329  0.4465  0.655225
    ## Año_2016                0.1300413  0.1759028  0.7393  0.459737
    ## Año_2017               -0.0817821  0.1514367 -0.5400  0.589168
    ## Año_2018                0.0644705  0.1648733  0.3910  0.695775
    ## Año_2019                0.0418855  0.1643377  0.2549  0.798820
    ## Año_2020                0.1044620  0.1568034  0.6662  0.505285
    ## Año_2021                0.0741717  0.1692264  0.4383  0.661170
    ## Año_2022               -0.0401577  0.1756399 -0.2286  0.819152
    ## Año_2023                0.1451606  0.1889263  0.7683  0.442282
    ## sigma                   0.3098422  0.0203536 15.2230 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -21.335 on 17 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0_bic_ef_sin_reg<-predict(modelo_truncado_int_0_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0_bic_ef_con_reg<-predict(modelo_truncado_int_0_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

Truncado en 0.27:
Luego se trunca en 0.27 (mínimo valor en la muestra, que corresponde a España):

- AICc:

    #Truncamiento en 0.27 tasa intercambio mínima en la muestra de España

    modelo_truncado_int_0.27_aicc<-truncreg(Intercambio ~ Regulacion_intercambio + Cuenta +
                                              Credito + Asia_Este + Am_lat , datos_int, point = 0.27, direction = "left",
                                  model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0.27_aicc)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat, data = datos_int, point = 0.27,
    ##     direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.71E-11
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error  t-value  Pr(>|t|)
    ## (Intercept)             2.3901842  0.2083544  11.4717 < 2.2e-16 ***
    ## Regulacion_intercambio -0.9169882  0.0849043 -10.8003 < 2.2e-16 ***
    ## Cuenta                 -0.0199492  0.0031037  -6.4275 1.297e-10 ***
    ## Credito                 0.0092244  0.0028237   3.2668  0.001088 **
    ## Asia_Este               0.8349450  0.1234419   6.7639 1.344e-11 ***
    ## Am_lat                  0.6062742  0.0951795   6.3698 1.893e-10 ***
    ## sigma                   0.3441402  0.0252305  13.6399 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: 4.3393 on 7 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0.27_aicc_sin_reg<-predict(modelo_truncado_int_0.27_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0.27_aicc_con_reg<-predict(modelo_truncado_int_0.27_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- BIC:
  Ahora se realiza la estimación de modelos truncados usando las variables seleccionadas mediante el criterio de BIC.

    #Truncado en 0.27
    modelo_truncado_int_0.27_bic<-truncreg(Intercambio ~Regulacion_intercambio + Cuenta +
                                              Credito + Asia_Este + Am_lat , datos_int, point = 0.27,
                                           direction = "left", model = TRUE, y = FALSE,
                                           x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0.27_bic)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat, data = datos_int, point = 0.27,
    ##     direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.71E-11
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error  t-value  Pr(>|t|)
    ## (Intercept)             2.3901842  0.2083544  11.4717 < 2.2e-16 ***
    ## Regulacion_intercambio -0.9169882  0.0849043 -10.8003 < 2.2e-16 ***
    ## Cuenta                 -0.0199492  0.0031037  -6.4275 1.297e-10 ***
    ## Credito                 0.0092244  0.0028237   3.2668  0.001088 **
    ## Asia_Este               0.8349450  0.1234419   6.7639 1.344e-11 ***
    ## Am_lat                  0.6062742  0.0951795   6.3698 1.893e-10 ***
    ## sigma                   0.3441402  0.0252305  13.6399 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: 4.3393 on 7 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0.27_bic_sin_reg<-predict(modelo_truncado_int_0.27_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0.27_bic_con_reg<-predict(modelo_truncado_int_0.27_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(data_CR$Codigo_Pais=="CRI")]

Ahora se procede a realizar las estimaciones con truncamiento contemplando efectos fijos de tiempo:
* Por AICc:

    #AICc con efectos fijos de tiempo
    #Truncamiento en 0.27
    modelo_truncado_int_0.27_aicc_ef<-truncreg(Intercambio ~ Regulacion_intercambio +
                                                 Cuenta + Credito + Asia_Este + Am_lat +
                                                 Año_2013 + #Año_2014 +
                                                 Año_2015 + Año_2016 +
                                                 Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                                 Año_2021 + Año_2022 +  Año_2023, data = datos_int, point = 0.27,
                                               direction = "left", model = TRUE, y = FALSE,
                                               x = FALSE, scaled = TRUE)
    # Modelo estimado
    summary(modelo_truncado_int_0.27_aicc_ef)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat + Año_2013 + Año_2015 + Año_2016 +
    ##     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
    ##     Año_2022 + Año_2023, data = datos_int, point = 0.27, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 9.63E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             2.3234629  0.2637236  8.8102 < 2.2e-16 ***
    ## Regulacion_intercambio -0.8407781  0.0889887 -9.4481 < 2.2e-16 ***
    ## Cuenta                 -0.0200452  0.0033562 -5.9726 2.335e-09 ***
    ## Credito                 0.0089581  0.0028336  3.1614   0.00157 **
    ## Asia_Este               0.7920046  0.1361542  5.8170 5.992e-09 ***
    ## Am_lat                  0.5961169  0.1041706  5.7225 1.050e-08 ***
    ## Año_2013                0.0965995  0.1915929  0.5042   0.61413
    ## Año_2015                0.0538395  0.2316087  0.2325   0.81618
    ## Año_2016                0.1355155  0.2114227  0.6410   0.52154
    ## Año_2017               -0.2311749  0.1936020 -1.1941   0.23245
    ## Año_2018                0.0974299  0.1972733  0.4939   0.62139
    ## Año_2019                0.0502813  0.1993219  0.2523   0.80084
    ## Año_2020                0.2079854  0.1900330  1.0945   0.27375
    ## Año_2021                0.1684852  0.2050195  0.8218   0.41119
    ## Año_2022                0.0069799  0.2167277  0.0322   0.97431
    ## Año_2023                0.2203084  0.2314885  0.9517   0.34125
    ## sigma                   0.3376486  0.0248861 13.5677 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: 11.453 on 17 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0.27_aicc_ef_sin_reg<-predict(modelo_truncado_int_0.27_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_trunc_0.27_aicc_ef_con_reg<-predict(modelo_truncado_int_0.27_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Por BIC:

    #Truncado en 0.27
    modelo_truncado_int_0.27_bic_ef<-truncreg(Intercambio ~ Regulacion_intercambio +
                                                Cuenta + Credito + Asia_Este + Am_lat +
                                                Año_2013 + #Año_2014 +
                                                Año_2015 +
                                             Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                             Año_2020 + Año_2021 + Año_2022  +  Año_2023
                                             , data = datos_int, point = 0.27,
                                           direction = "left", model = TRUE, y = FALSE,
                                           x = FALSE, scaled = TRUE)
    # modelo estimado
    summary(modelo_truncado_int_0.27_bic_ef)

    ##
    ## Call:
    ## truncreg(formula = Intercambio ~ Regulacion_intercambio + Cuenta +
    ##     Credito + Asia_Este + Am_lat + Año_2013 + Año_2015 + Año_2016 +
    ##     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
    ##     Año_2022 + Año_2023, data = datos_int, point = 0.27, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 9.63E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             2.3234629  0.2637236  8.8102 < 2.2e-16 ***
    ## Regulacion_intercambio -0.8407781  0.0889887 -9.4481 < 2.2e-16 ***
    ## Cuenta                 -0.0200452  0.0033562 -5.9726 2.335e-09 ***
    ## Credito                 0.0089581  0.0028336  3.1614   0.00157 **
    ## Asia_Este               0.7920046  0.1361542  5.8170 5.992e-09 ***
    ## Am_lat                  0.5961169  0.1041706  5.7225 1.050e-08 ***
    ## Año_2013                0.0965995  0.1915929  0.5042   0.61413
    ## Año_2015                0.0538395  0.2316087  0.2325   0.81618
    ## Año_2016                0.1355155  0.2114227  0.6410   0.52154
    ## Año_2017               -0.2311749  0.1936020 -1.1941   0.23245
    ## Año_2018                0.0974299  0.1972733  0.4939   0.62139
    ## Año_2019                0.0502813  0.1993219  0.2523   0.80084
    ## Año_2020                0.2079854  0.1900330  1.0945   0.27375
    ## Año_2021                0.1684852  0.2050195  0.8218   0.41119
    ## Año_2022                0.0069799  0.2167277  0.0322   0.97431
    ## Año_2023                0.2203084  0.2314885  0.9517   0.34125
    ## sigma                   0.3376486  0.0248861 13.5677 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: 11.453 on 17 Df

    #Pronóstico para CR
    #Sin regulación
    pred_int_trunc_0.27_bic_ef_sin_reg<-predict(modelo_truncado_int_0.27_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Con regulación
    pred_int_trunc_0.27_bic_ef_con_reg<-predict(modelo_truncado_int_0.27_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(data_CR$Codigo_Pais=="CRI")]

## 2.3 Transformación logarítmica de la variable dependiente:

    #Con toda la muestra con logaritmo

    #Regresión sin controles
    modelo_log_int_sin_cont<-lm(log(Intercambio) ~ Regulacion_intercambio, datos_int)

    modelo_log_int_sin_cont_corr_hc<-coeftest(modelo_log_int_sin_cont, vcov. = vcovHC(modelo_log_int_sin_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_sin_cont_corr_hac<-coeftest(modelo_log_int_sin_cont, vcov. = vcovHAC(modelo_log_int_sin_cont, adjust = TRUE, sandwich = TRUE))
    # Visualización
    #stargazer(modelo_log_int_sin_cont, modelo_log_int_sin_cont_corr_hc, type = "html",
    #          title = "Regresión sobre el logaritmo de la tasa de intercambio sin controles",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_log_int_sin_cont_sin_reg<-exp(predict(modelo_log_int_sin_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])
    #Con regulación
    pred_log_int_sin_cont_con_reg<-exp(predict(modelo_log_int_sin_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])

    # * Regresión con todos los controles:  -----
    #Estimacion modelo
    modelo_log_int_con_cont=lm(formula = log(Intercambio) ~ Regulacion_intercambio + Cajero_Autom +
        Credito + Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
        Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
        Am_lat, data = datos_int)

    modelo_log_int_con_cont_corr_hc<-coeftest(modelo_log_int_con_cont, vcov. = vcovHC(modelo_log_int_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_corr_hac<-coeftest(modelo_log_int_con_cont, vcov. = vcovHAC(modelo_log_int_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_log_int_con_cont, modelo_log_int_con_cont_corr_hc, type = "html",
    #          title = "Regresión sobre el logaritmo de la tasa de intercambio con todos los controles",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg<-exp(predict(modelo_log_int_con_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])
    #Con regulación
    pred_log_int_con_cont_con_reg<-exp(predict(modelo_log_int_con_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])

    # Regresión con todos los controles más efectos fijos de tiempo ----
    modelo_log_int_con_cont_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Cajero_Autom +
                                     Credito + Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
                                     Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                     Am_lat + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                     Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023, datos_int)
    # Errores robustos
    modelo_log_int_con_cont_ef_corr_hc<-coeftest(modelo_log_int_con_cont_ef, vcov. = vcovHC(modelo_log_int_con_cont_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_ef_corr_hac<-coeftest(modelo_log_int_con_cont_ef, vcov. = vcovHAC(modelo_log_int_con_cont_ef, adjust = TRUE, sandwich = TRUE))
    #Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg_ef<-exp(predict(modelo_log_int_con_cont_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_log_int_con_cont_con_reg_ef<-exp(predict(modelo_log_int_con_cont_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Visualización
    #stargazer(modelo_log_int_con_cont_ef, type = "html",
    #          title = "Regresión sobre el logaritmo de la tasa de intercambio con controles y efectos fijos de tiempo",
    #          column.labels = c("MCO"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # Modelo con controles sin efectos fijos del tiempo:
    #AICc:
    modelo_log_int_con_cont_aicc<-lm(log(Intercambio) ~ Regulacion_intercambio + Cajero_Autom +
                                       Crimen + Cuenta + Pago_digital + Debito + Credito +
                                       Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH +
                                       Valor_prom + Europa + Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta",
                           "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg",
                           "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_log_int_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles1<-controles

    #variables a usar
    #print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    # Estimación del modelo seleccionado por aicc
    modelo_log_int_con_cont_aicc<-lm(log(Intercambio) ~ Regulacion_intercambio +
                                       Cuenta + Credito + Densidad_Pob + Europa + Asia_Este, datos_int)
    # Errores robustos
    modelo_log_int_con_cont_aicc_corr_hc<-coeftest(modelo_log_int_con_cont_aicc, vcov. = vcovHC(modelo_log_int_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_aicc_corr_hac<-coeftest(modelo_log_int_con_cont_aicc, vcov. = vcovHAC(modelo_log_int_con_cont_aicc, adjust = TRUE, sandwich = TRUE))
    # Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg_aicc<-exp(predict(modelo_log_int_con_cont_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_log_int_con_cont_con_reg_aicc<-exp(predict(modelo_log_int_con_cont_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_log_int_con_cont_aicc, modelo_log_int_con_cont_aicc_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.809*** | -0.809***
| (0.061) | (0.063)
Cuenta | -0.013*** | -0.013***
| (0.003) | (0.003)
Credito | 0.003 | 0.003
| (0.002) | (0.002)
Densidad_Pob | -0.001*** | -0.001***
| (0.0002) | (0.0001)
Europa | -0.541*** | -0.541***
| (0.083) | (0.098)
Asia_Este | 0.227* | 0.227*
| (0.122) | (0.119)
Constant | 1.475*** | 1.475***
| (0.137) | (0.150)
Observations | 149 |
R2 | 0.761 |
Adjusted R2 | 0.751 |
Residual Std. Error | 0.347 (df = 142) |
F Statistic | 75.553*** (df = 6; 142) |
Note: | p<0.1; p<0.05; p<0.01

Selección de variables mediante BIC sin efectos fijos de tiempo:

    # Selección con el criterio BIC
    modelo_log_int_con_cont_bic<-lm(log(Intercambio) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                       Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                       ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_log_int_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]
    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable:
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #Ya no se eliminan columnas
    controles2<-controles
    #variables a usar
    #print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    # Estimación del modelo seleccionado por bic
    modelo_log_int_con_cont_bic<-lm(log(Intercambio) ~ Regulacion_intercambio + Cuenta + Densidad_Pob + Europa, datos_int)
    # Error robusto
    modelo_log_int_con_cont_bic_corr_hc<-coeftest(modelo_log_int_con_cont_bic, vcov. = vcovHC(modelo_log_int_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_bic_corr_hac<-coeftest(modelo_log_int_con_cont_bic, vcov. = vcovHAC(modelo_log_int_con_cont_bic, adjust = TRUE, sandwich = TRUE))
    # Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg_bic<-exp(predict(modelo_log_int_con_cont_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_log_int_con_cont_con_reg_bic<-exp(predict(modelo_log_int_con_cont_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_log_int_con_cont_bic, modelo_log_int_con_cont_bic_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.782*** | -0.782***
| (0.060) | (0.061)
Cuenta | -0.008*** | -0.008***
| (0.002) | (0.002)
Densidad_Pob | -0.001*** | -0.001***
| (0.0002) | (0.0001)
Europa | -0.654*** | -0.654***
| (0.064) | (0.065)
Constant | 1.331*** | 1.331***
| (0.117) | (0.119)
Observations | 149 |
R2 | 0.754 |
Adjusted R2 | 0.747 |
Residual Std. Error | 0.350 (df = 144) |
F Statistic | 110.370*** (df = 4; 144) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_log_int_con_cont_aicc_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021  + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022","Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables de años + regulación
    cvar<-14
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_log_int_con_cont_aicc_ef)

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(AICC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles
    # Variables seleccionadas
    #print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    # Se omiten los años 2010 al 2012 por colinealidad.
    modelo_log_int_con_cont_aicc_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Año_2013 + Año_2014 +
                                          Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                          Año_2021 + Año_2022 + Año_2023 + Crimen + Cuenta + Credito + Pago_digital +
                                          Asia_Este + Am_lat, datos_int)
    # Errores robustos
    modelo_log_int_con_cont_aicc_ef_corr_hc<-coeftest(modelo_log_int_con_cont_aicc_ef, vcov. = vcovHC(modelo_log_int_con_cont_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_aicc_ef_corr_hac<-coeftest(modelo_log_int_con_cont_aicc_ef, vcov. = vcovHAC(modelo_log_int_con_cont_aicc_ef, adjust = TRUE, sandwich = TRUE))

    # Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg_aicc_ef<-exp(predict(modelo_log_int_con_cont_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_log_int_con_cont_con_reg_aicc_ef<-exp(predict(modelo_log_int_con_cont_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_log_int_con_cont_aicc_ef, modelo_log_int_con_cont_aicc_ef_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Intercambio", "Tasa Intercambio"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa Intercambio | Tasa Intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.608*** | -0.608***
| (0.079) | (0.080)
Año_2013 | 0.110 | 0.110
| (0.177) | (0.166)
Año_2014 | 0.043 | 0.043
| (0.195) | (0.194)
Año_2016 | -0.055 | -0.055
| (0.182) | (0.136)
Año_2017 | -0.195 | -0.195
| (0.154) | (0.135)
Año_2018 | 0.049 | 0.049
| (0.171) | (0.136)
Año_2019 | 0.001 | 0.001
| (0.168) | (0.137)
Año_2020 | 0.228 | 0.228
| (0.165) | (0.155)
Año_2021 | 0.197 | 0.197
| (0.178) | (0.171)
Año_2022 | -0.005 | -0.005
| (0.180) | (0.163)
Año_2023 | 0.195 | 0.195
| (0.197) | (0.185)
Crimen | 0.0001 | 0.0001
| (0.00004) | (0.00004)
Cuenta | -0.007 | -0.007*
| (0.004) | (0.004)
Credito | 0.008*** | 0.008***
| (0.002) | (0.003)
Pago_digital | -0.009** | -0.009***
| (0.004) | (0.003)
Asia_Este | 0.658*** | 0.658***
| (0.103) | (0.092)
Am_lat | 0.548*** | 0.548***
| (0.096) | (0.113)
Constant | 0.743*** | 0.743***
| (0.249) | (0.252)
Observations | 149 |
R2 | 0.794 |
Adjusted R2 | 0.768 |
Residual Std. Error | 0.336 (df = 131) |
F Statistic | 29.788*** (df = 17; 131) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_log_int_con_cont_bic_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021  + Año_2022  + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022", "Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    cvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_log_int_con_cont_bic_ef)

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(BIC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Variable eliminada: ",variables_controles[(which.min(BIC)+cvar+1)]))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]
    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(log(Intercambio) ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(log(Intercambio) ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles
    # Variables seleccionadas
    #print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    #m1<-lm(log(Intercambio)~controles4,datos_int)
    # Se omiten los años 2010 al 2012 y 2015 por colinealidad.
    modelo_log_int_con_cont_bic_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Año_2010 +  Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                         Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                         Credito + Pago_digital + Asia_Este + Am_lat,
                                       datos_int)
    # Errores robustos
    modelo_log_int_con_cont_bic_ef_corr_hc<-coeftest(modelo_log_int_con_cont_bic_ef, vcov. = vcovHC(modelo_log_int_con_cont_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_int_con_cont_bic_ef_corr_hac<-coeftest(modelo_log_int_con_cont_bic_ef, vcov. = vcovHAC(modelo_log_int_con_cont_bic_ef, adjust = TRUE, sandwich = TRUE))
    # Pronóstico para CR
    #Sin regulación
    pred_log_int_con_cont_sin_reg_bic_ef<-exp(predict(modelo_log_int_con_cont_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_log_int_con_cont_con_reg_bic_ef<-exp(predict(modelo_log_int_con_cont_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response"))[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_log_int_con_cont_bic_ef, modelo_log_int_con_cont_bic_ef_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Intercambio", "Tasa Intercambio"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa Intercambio | Tasa Intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.571*** | -0.571***
| (0.078) | (0.080)
Año_2010 |  |
Año_2011 |  |
Año_2012 |  |
Año_2013 | -0.009 | -0.009
| (0.172) | (0.171)
Año_2014 | -0.159 | -0.159
| (0.199) | (0.222)
Año_2015 | -0.188 | -0.188
| (0.199) | (0.174)
Año_2016 | -0.233 | -0.233
| (0.186) | (0.159)
Año_2017 | -0.361** | -0.361**
| (0.153) | (0.145)
Año_2018 | -0.139 | -0.139
| (0.175) | (0.156)
Año_2019 | -0.188 | -0.188
| (0.172) | (0.158)
Año_2020 | 0.038 | 0.038
| (0.167) | (0.168)
Año_2021 | -0.004 | -0.004
| (0.180) | (0.190)
Año_2022 | -0.202 | -0.202
| (0.182) | (0.179)
Año_2023 |  |
Credito | 0.009*** | 0.009***
| (0.002) | (0.003)
Pago_digital | -0.013*** | -0.013***
| (0.002) | (0.003)
Asia_Este | 0.656*** | 0.656***
| (0.100) | (0.084)
Am_lat | 0.639*** | 0.639***
| (0.088) | (0.099)
Constant | 0.591*** | 0.591***
| (0.183) | (0.187)
Observations | 149 |
R2 | 0.786 |
Adjusted R2 | 0.762 |
Residual Std. Error | 0.340 (df = 133) |
F Statistic | 32.511*** (df = 15; 133) |
Note: | p<0.1; p<0.05; p<0.01

## 2.4 Inclusión de efectos no lineales en la regresión

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # creación de variables cuadráticas:
    datos_int2<-datos_int %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )

    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )

    # Selección variables con AICC:  ----
    modelo_int_nolineal_con_cont_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Cajero_Autom +
                                            Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                            Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                            Am_lat + Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt +
                                            Credito_sqrt + Debito_sqrt + Densidad_Pob_sqrt +
                                            Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt +
                                            Pago_digital_sqrt + Valor_prom_sqr, data= datos_int2)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital",
                           "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom", "Europa", "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt",
                           "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt","Densidad_Pob_sqrt",
                           "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt",
                           "Valor_prom_sqr")

    controles<- datos_int2 %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_nolineal_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 13
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 14
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 15
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 16
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles

    # Deja las siguiente variables:
    #variables_controles
    #print(paste0("Se incluye la siguiente variable: ",variables_controles))

    # Estimación del modelo
    modelo_int_nolineal_con_cont_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Crimen + Cuenta +
                                            Debito + Credito + Asia_Este + Am_lat +
                                            Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Debito_sqrt, data= datos_int2)
    # Errores robustos
    modelo_int_nolineal_con_cont_aicc_corr_hc<-coeftest(modelo_int_nolineal_con_cont_aicc,
                                                        vcov. = vcovHC(modelo_int_nolineal_con_cont_aicc,
                                                                       "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_nolineal_con_cont_aicc_corr_hac<-coeftest(modelo_int_nolineal_con_cont_aicc,
                                                         vcov. = vcovHAC(modelo_int_nolineal_con_cont_aicc,
                                                         adjust = TRUE, sandwich = TRUE))
    # Pronóstico ---- AQUI
    # Sin regulación
    pred_int_nolineal_sin_reg_aicc <-predict(modelo_int_nolineal_con_cont_aicc, newdata = datos,
                                             interval = "prediction", level = 0.95,
                                             type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    # Se le agrega a CR la adquirencia
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    pred_int_nolineal_con_reg_aicc<-predict(modelo_int_nolineal_con_cont_aicc, newdata = data_CR,
                                            interval = "prediction", level = 0.95,
                                            type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Visualización
    stargazer(modelo_int_nolineal_con_cont_aicc, modelo_int_nolineal_con_cont_aicc_corr_hc,
              type = "html",
              title = "Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.652*** | -0.652***
| (0.055) | (0.063)
Crimen | -0.0002** | -0.0002**
| (0.0001) | (0.0001)
Cuenta | -0.047*** | -0.047**
| (0.018) | (0.019)
Debito | 0.030** | 0.030**
| (0.012) | (0.013)
Credito | 0.007*** | 0.007**
| (0.002) | (0.003)
Asia_Este | 0.499*** | 0.499***
| (0.084) | (0.073)
Am_lat | 0.576*** | 0.576***
| (0.080) | (0.094)
Cajero_Autom_sqrt | 0.00001 | 0.00001
| (0.00000) | (0.00001)
Crimen_sqrt | 0.00000*** | 0.00000***
| (0.000) | (0.000)
Cuenta_sqrt | 0.0002* | 0.0002*
| (0.0001) | (0.0001)
Debito_sqrt | -0.0002** | -0.0002**
| (0.0001) | (0.0001)
Constant | 2.373*** | 2.373***
| (0.373) | (0.386)
Observations | 149 |
R2 | 0.788 |
Adjusted R2 | 0.771 |
Residual Std. Error | 0.293 (df = 137) |
F Statistic | 46.360*** (df = 11; 137) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    #Modelo con controles y sin efectos del tiempo:
    # BIC
    # creación de variables cuadráticas:
    datos_int2<-datos_int %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    # Selección variables con BIC
    modelo_int_nolineal_con_cont_bic<-lm(formula = Intercambio ~ Regulacion_intercambio + Cajero_Autom +
                                            Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                            Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                            Am_lat + Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt +
                                            Credito_sqrt + Debito_sqrt + Densidad_Pob_sqrt +
                                            Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt +
                                            Pago_digital_sqrt + Valor_prom_sqr, data= datos_int2)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital",
                           "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom", "Europa", "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt",
                           "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt","Densidad_Pob_sqrt",
                           "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt",
                           "Valor_prom_sqr")

    controles<- datos_int2 %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_nolineal_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 13
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 14
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 15
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 16
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 17
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 18
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 19
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 20
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int2))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles

    # Deja las siguiente variables:
    #print(paste0("Se incluye la siguiente variable: ","'",variables_controles,"' "))

    # Estimación del modelo seleccinado
    modelo_int_nolineal_con_cont_bic=lm(formula = Intercambio ~ Regulacion_intercambio +
                                          Crimen + Cuenta + Credito + Asia_Este + Am_lat + Crimen_sqrt, data = datos_int2)

    # Errores robustos
    modelo_int_nolineal_con_cont_bic_corr_hc<-coeftest(modelo_int_nolineal_con_cont_bic,
                                                        vcov. = vcovHC(modelo_int_nolineal_con_cont_bic,
                                                                       "HC1", adjust = TRUE, sandwich = TRUE))
    modelo_int_nolineal_con_cont_bic_corr_hac<-coeftest(modelo_int_nolineal_con_cont_bic,
                                                         vcov. = vcovHAC(modelo_int_nolineal_con_cont_bic,
                                                         adjust = TRUE, sandwich = TRUE))
    # Pronóstico CR
    # creación de variables cuadráticas:
    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    #Sin regulación
    pred_int_nolineal_sin_reg_con_cont_bic<-predict(modelo_int_nolineal_con_cont_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    # Se le agrega a CR la adquirencia
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    pred_int_nolineal_con_reg_con_cont_bic<-predict(modelo_int_nolineal_con_cont_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_int_nolineal_con_cont_bic,modelo_int_nolineal_con_cont_bic_corr_hc,
          type = "html",
          title = "Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo",
          column.labels = c("MCO","MCO HC"), model.names = F,
          dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
          dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.653*** | -0.653***
| (0.053) | (0.058)
Crimen | -0.0002** | -0.0002***
| (0.0001) | (0.0001)
Cuenta | -0.012*** | -0.012***
| (0.002) | (0.002)
Credito | 0.008*** | 0.008***
| (0.002) | (0.002)
Asia_Este | 0.501*** | 0.501***
| (0.083) | (0.063)
Am_lat | 0.569*** | 0.569***
| (0.078) | (0.085)
Crimen_sqrt | 0.00000** | 0.00000***
| (0.000) | (0.000)
Constant | 2.012*** | 2.012***
| (0.164) | (0.186)
Observations | 149 |
R2 | 0.772 |
Adjusted R2 | 0.761 |
Residual Std. Error | 0.300 (df = 141) |
F Statistic | 68.198*** (df = 7; 141) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    # Selección variables con AICC:
    modelo_int_nolineal_con_cont_ef_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Año_2010 + Año_2011 +
                                               Año_2012 + Año_2013 + Año_2014 + Año_2015 +
                                               Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                               Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                               Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                               ICH + Valor_prom + Europa + Asia_Este + Am_lat +
                                               Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                               Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt + Pago_digital_sqrt +
                                               Valor_prom_sqr, data= datos_int2)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015",
                           "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022", "Año_2023", "Cajero_Autom",
                           "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA",
                           "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt",
                           "Credito_sqrt", "Debito_sqrt", "Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt",
                           "Pago_digital_sqrt", "Valor_prom_sqr")

    controles<- datos_int2 %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_nolineal_con_cont_ef_aicc)

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 13
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]
    #Paso 14
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 15
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(AICC)<AICC[1]
    # El AICc ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    # Deja las siguiente variables:
    #print(paste0("Se incluyen la siguiente variable: ","'",variables_controles,"' "))

    #Estimación del modelo con variables seleccionadas por AICc:
    # Por problemas de colinealidad se dejan por fuera 2010 al 2012 y 2015:
    modelo_int_nolineal_con_cont_ef_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Año_2013 +
                                               Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                               Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cuenta + Debito + Credito +
                                               ICH + Europa + Crimen_sqrt + Cuenta_sqrt +
                                               Credito_sqrt + Debito_sqrt + Densidad_Pob_sqrt + ICH_sqrt,
                                             data = datos_int2)

    # Errores robustos
    modelo_int_nolineal_con_cont_ef_aicc_corr_hc<-coeftest(modelo_int_nolineal_con_cont_ef_aicc,
                                                        vcov. = vcovHC(modelo_int_nolineal_con_cont_ef_aicc,
                                                                       "HC1", adjust = TRUE, sandwich = TRUE))
    modelo_int_nolineal_con_cont_ef_aicc_corr_hac<-coeftest(modelo_int_nolineal_con_cont_ef_aicc,
                                                         vcov. = vcovHAC(modelo_int_nolineal_con_cont_ef_aicc,
                                                         adjust = TRUE, sandwich = TRUE))
    # Pronóstico CR
    # creación de variables cuadráticas:
    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    #Sin regulación
    pred_int_nolineal_sin_reg_con_cont_aicc_ef<-predict(modelo_int_nolineal_con_cont_ef_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    # Se le agrega a CR la adquirencia
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    pred_int_nolineal_con_reg_con_cont_aicc_ef<-predict(modelo_int_nolineal_con_cont_ef_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    # Visualización
    stargazer(modelo_int_nolineal_con_cont_ef_aicc, modelo_int_nolineal_con_cont_ef_aicc_corr_hc,
              type = "html",
              title = "Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.803*** | -0.803***
| (0.077) | (0.090)
Año_2013 | -0.216 | -0.216
| (0.151) | (0.148)
Año_2015 | 0.119 | 0.119
| (0.171) | (0.144)
Año_2016 | 0.141 | 0.141
| (0.163) | (0.153)
Año_2017 | 0.006 | 0.006
| (0.138) | (0.119)
Año_2018 | 0.006 | 0.006
| (0.152) | (0.133)
Año_2019 | -0.002 | -0.002
| (0.151) | (0.135)
Año_2020 | 0.144 | 0.144
| (0.144) | (0.119)
Año_2021 | 0.133 | 0.133
| (0.155) | (0.134)
Año_2022 | 0.051 | 0.051
| (0.160) | (0.128)
Año_2023 | 0.331* | 0.331
| (0.187) | (0.202)
Cuenta | -0.075*** | -0.075***
| (0.020) | (0.019)
Debito | 0.051*** | 0.051***
| (0.014) | (0.016)
Credito | 0.016** | 0.016
| (0.008) | (0.010)
ICH | 13.945** | 13.945***
| (5.491) | (4.619)
Europa | -0.522*** | -0.522***
| (0.071) | (0.075)
Crimen_sqrt | 0.000* | 0.000*
| (0.000) | (0.000)
Cuenta_sqrt | 0.0004*** | 0.0004***
| (0.0001) | (0.0001)
Credito_sqrt | -0.0001 | -0.0001
| (0.0001) | (0.0001)
Debito_sqrt | -0.0004*** | -0.0004***
| (0.0001) | (0.0001)
Densidad_Pob_sqrt | -0.00000*** | -0.00000***
| (0.00000) | (0.00000)
ICH_sqrt | -9.542** | -9.542***
| (4.204) | (3.530)
Constant | -1.609 | -1.609
| (1.722) | (1.483)
Observations | 149 |
R2 | 0.806 |
Adjusted R2 | 0.772 |
Residual Std. Error | 0.293 (df = 126) |
F Statistic | 23.741*** (df = 22; 126) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    # Selección variables con BIC y efectos fijos de tiempo: ----
    modelo_int_nolineal_con_cont_ef_bic<-lm(formula = Intercambio ~ Regulacion_intercambio + Año_2010 +
                                              Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 +
                                              Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                              Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito +
                                              Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH +
                                              Valor_prom + Europa + Asia_Este + Am_lat + Cajero_Autom_sqrt +
                                              Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                              Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt +
                                              Pago_digital_sqrt + Valor_prom_sqr, data= datos_int2)

    variables_controles<-c("Regulacion_intercambio","Año_2010","Año_2011","Año_2012","Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019","Año_2020", "Año_2021", "Año_2022", "Año_2023", "Cajero_Autom", "Crimen", "Cuenta","Pago_digital", "Debito","Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt","Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt","Valor_prom_sqr")

    controles<- datos_int2 %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_nolineal_con_cont_ef_bic)

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 13
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 14
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]

    #Paso 15
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))

[1] “Se elimina por este criterio la variable: ‘Pago_digital_sqrt’”

    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 16
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 17
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 18
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+13],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 19
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int2))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int2))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    # Deja las siguiente variables:
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles))

    #Estimación del modelo con variables seleccionadas por AICc: ----
    # Por problemas de colinealidad se dejan por fuera 2010 al 2012 y 2015:
    modelo_int_nolineal_con_cont_ef_bic<-lm(formula = Intercambio ~ Regulacion_intercambio + Año_2013 +
                                               Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                               Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cuenta + Debito +
                                              ICH + Europa + Crimen_sqrt + Cuenta_sqrt + Debito_sqrt + Densidad_Pob_sqrt,
                                            data = datos_int2)
    # Errores robustos
    modelo_int_nolineal_con_cont_ef_bic_corr_hc<-coeftest(modelo_int_nolineal_con_cont_ef_bic,
                                                           vcov. = vcovHC(modelo_int_nolineal_con_cont_ef_bic,
                                                                          "HC1", adjust = TRUE, sandwich = TRUE))
    modelo_int_nolineal_con_cont_ef_bic_corr_hac<-coeftest(modelo_int_nolineal_con_cont_ef_bic,
                                                            vcov. = vcovHAC(modelo_int_nolineal_con_cont_ef_bic,
                                                                            adjust = TRUE, sandwich = TRUE))
    # Pronóstico CR
    # creación de variables cuadráticas:
    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    #Sin regulación
    pred_int_nolineal_sin_reg_con_cont_bic_ef<-predict(modelo_int_nolineal_con_cont_ef_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    # Se le agrega a CR la adquirencia
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_int_nolineal_con_reg_con_cont_bic_ef<<-predict(modelo_int_nolineal_con_cont_ef_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    # Visualización
    stargazer(modelo_int_nolineal_con_cont_ef_bic, modelo_int_nolineal_con_cont_ef_bic_corr_hc,
              type = "html",
              title = "Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.821*** | -0.821***
| (0.076) | (0.090)
Año_2013 | -0.291* | -0.291**
| (0.149) | (0.136)
Año_2015 | 0.109 | 0.109
| (0.175) | (0.129)
Año_2016 | 0.114 | 0.114
| (0.166) | (0.146)
Año_2017 | -0.067 | -0.067
| (0.139) | (0.106)
Año_2018 | -0.003 | -0.003
| (0.155) | (0.132)
Año_2019 | -0.023 | -0.023
| (0.154) | (0.135)
Año_2020 | 0.101 | 0.101
| (0.146) | (0.108)
Año_2021 | 0.117 | 0.117
| (0.158) | (0.127)
Año_2022 | 0.026 | 0.026
| (0.163) | (0.117)
Año_2023 | 0.154 | 0.154
| (0.181) | (0.187)
Cuenta | -0.078*** | -0.078***
| (0.020) | (0.019)
Debito | 0.061*** | 0.061***
| (0.014) | (0.014)
ICH | 1.741*** | 1.741**
| (0.624) | (0.762)
Europa | -0.541*** | -0.541***
| (0.071) | (0.078)
Crimen_sqrt | 0.000** | 0.000**
| (0.000) | (0.000)
Cuenta_sqrt | 0.0004*** | 0.0004***
| (0.0001) | (0.0001)
Debito_sqrt | -0.0005*** | -0.0005***
| (0.0001) | (0.0001)
Densidad_Pob_sqrt | -0.00000*** | -0.00000***
| (0.00000) | (0.00000)
Constant | 2.264*** | 2.264***
| (0.534) | (0.659)
Observations | 149 |
R2 | 0.791 |
Adjusted R2 | 0.760 |
Residual Std. Error | 0.300 (df = 129) |
F Statistic | 25.707*** (df = 19; 129) |
Note: | p<0.1; p<0.05; p<0.01

## 2.5 Método bootstrap

En este caso se usan los criterios de información AIC (no tiene corrección de muestras pequeñas) y BIC para su comparación. Ambos criterios brindan resultados similares. Además, no se incluyen efectos fijos de tiempo. Esto difiere respecto a su implementación en Stata, donde también se estiman también los modelos que incorporan efectos fijos de tiempo, y se utiliza el AICc. Sin embargo, los resultados son similares.

    remuestreos=1000
    #AIC:
    #Modelo con controles:
    set.seed(1)
    library(bootStepAIC)
    m_boot_aic=boot.stepAIC(modelo_int_con_cont,datos_int,B=remuestreos)
    # Sin regulación
    predicciones_boot_sin_reg_aic=as.numeric()
    for(i in 1:1000){
      coefs_aic=m_boot_aic$BootStepAIC[[i]]
      predicciones_boot_sin_reg_aic[i]=predict(coefs_aic,newdata=datos,type="response")[which(datos$Codigo_Pais=="CRI")]
    }
    pred_int_boot_con_cont_sin_reg_aic=median(predicciones_boot_sin_reg_aic)
    # Con regulación
    predicciones_boot_con_reg_aic=as.numeric()
    for(i in 1:1000){
      coefs_aic=m_boot_aic$BootStepAIC[[i]]
      predicciones_boot_con_reg_aic[i]=predict(coefs_aic,newdata=data_CR,type="response")[which(datos$Codigo_Pais=="CRI")]
    }
    pred_int_boot_con_cont_con_reg_aic=median(predicciones_boot_con_reg_aic)
    # Visualización
    resul<-as.data.frame(cbind(mean(predicciones_boot_con_reg_aic),
                               median(predicciones_boot_con_reg_aic),
                               mean(predicciones_boot_con_reg_aic)-1.96*sd(predicciones_boot_con_reg_aic),
                               mean(predicciones_boot_con_reg_aic)+1.96*sd(predicciones_boot_con_reg_aic)
                               )) %>% round(3)
    names(resul)<-c("Promedio","Mediana","2.5%","97.5%")
    DT::datatable(resul,rownames="Tasa de intercambio",caption = "Resultados de bootstrap para modelo lineal de intercambio con la selección de controles por AIC", options = list(dom = 't'))

    # Gráfica de los pronósticos
    library(plotly)
    fig<-plot_ly(x = ~predicciones_boot_con_reg_aic, type = "histogram") %>%
      layout(xaxis = list(title = "Comisión de intercambio"),
             yaxis = list(title ="Frecuencia"),
             title = "Pronóstico AIC con boostrap (n=1000)")
    fig

    # Selección con BIC
    #Modelo con controles:
    n=nrow(datos_int)
    remuestreos=1000
    m_boot_bic=boot.stepAIC(modelo_int_con_cont,datos_int,B=remuestreos,k=log(n))
    predicciones_boot_sin_reg_bic=as.numeric()
    # Sin regulación
    for(i in 1:1000){
      coefs_bic=m_boot_bic$BootStepAIC[[i]]
      predicciones_boot_sin_reg_bic[i]=predict(coefs_bic,newdata=datos,type="response")[which(datos$Codigo_Pais=="CRI")]
    }
    pred_int_boot_con_cont_sin_reg_bic=median(predicciones_boot_sin_reg_bic)
    # Con regulación
    predicciones_boot_con_reg_bic=as.numeric()
    for(i in 1:1000){
      coefs_bic=m_boot_bic$BootStepAIC[[i]]
      predicciones_boot_con_reg_bic[i]=predict(coefs_bic,newdata=data_CR,type="response")[which(datos$Codigo_Pais=="CRI")]
    }
    pred_int_boot_con_cont_con_reg_bic=median(predicciones_boot_con_reg_bic)
    # Visualización
    resul<-as.data.frame(cbind(mean(predicciones_boot_con_reg_bic),
                               median(predicciones_boot_con_reg_bic),
                               mean(predicciones_boot_con_reg_bic)-1.96*sd(predicciones_boot_con_reg_bic),
                               mean(predicciones_boot_con_reg_bic)+1.96*sd(predicciones_boot_con_reg_bic)
                               )) %>% round(3)
    names(resul)<-c("Promedio","Mediana","2.5%","97.5%")
    DT::datatable(resul,rownames="Tasa de intercambio",caption = "Resultados de bootstrap para modelo lineal de intercambio con la selección de controles por BIC", options = list(dom = 't'))

    # Gráfica de los pronósticos
    fig<-plot_ly(x = ~predicciones_boot_con_reg_bic, type = "histogram") %>%
      layout(xaxis = list(title = "Comisión de intercambio"),
             yaxis = list(title ="Frecuencia"),
             title = "Pronóstico BIC con boostrap (n=1000)")
    fig

## 2.6 Regresión robusta

En este caso, pueden existir diferencias en la regresión respecto a los resultados en Stata debido a que el comando “rreg” en Stata combina dos funciones de ponderación, los pesos Huber y Biweights (https://www.stata.com/manuals13/rrreg.pdf). Por su parte, el comando “rlm” de R implementa cada ponderación por separado, y en este ejercicio se utiliza los pesos Huber (https://www.rdocumentation.org/packages/MASS/versions/7.3-58.1/topics/rlm). Sin embargo, las comisiones esperadas obtenidas para Costa Rica son similares.

    # Se mantienen los mismos modelos seleccionados en secciones previas
    # Estimación del modelo seleccionado con controles AICC
    modelo_robusto_int_con_cont_aicc<-rlm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat,
                                          datos_int,method="MM", maxit=100)
    #Visualización
    stargazer(modelo_robusto_int_con_cont_aicc, type = "html",
              title = "Regresión robusta - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa intercambio"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| MCO
Regulacion_intercambio | -0.596***
| (0.046)
Cuenta | -0.012***
| (0.002)
Credito | 0.003**
| (0.002)
Asia_Este | 0.487***
| (0.072)
Am_lat | 0.510***
| (0.067)
Constant | 1.963***
| (0.139)
Observations | 149
Residual Std. Error | 0.171 (df = 143)
Note: | p<0.1; p<0.05; p<0.01

    # Pronósticos CR
    # Sin regular
    pred_mod_rob_int_sin_reg_con_cont_aicc=predict(modelo_robusto_int_con_cont_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Con regulación
    pred_int_con_cont_con_reg_robusto_aicc=predict(modelo_robusto_int_con_cont_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Estimación del modelo seleccionado con controles BIC
    # Se mantiene la selección del modelo lineal con el criterio BIC
    modelo_robusto_int_con_cont_bic<-rlm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat,
                                         data = datos_int,method="MM", maxit=100)

    #Visualización
    stargazer(modelo_robusto_int_con_cont_bic, type = "html",
              title = "Regresión robusta - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa intercambio"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| MCO
Regulacion_intercambio | -0.596***
| (0.046)
Cuenta | -0.012***
| (0.002)
Credito | 0.003**
| (0.002)
Asia_Este | 0.487***
| (0.072)
Am_lat | 0.510***
| (0.067)
Constant | 1.963***
| (0.139)
Observations | 149
Residual Std. Error | 0.171 (df = 143)
Note: | p<0.1; p<0.05; p<0.01

    # Sin regular
    pred_mod_rob_int_sin_reg_con_cont_bic=predict(modelo_robusto_int_con_cont_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Con regulación
    pred_int_con_cont_con_reg_robusto_bic<-predict(modelo_robusto_int_con_cont_bic,newdata = data_CR,interval = "prediction", level = 0.95, type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    # Selección modelo con AICc y efectos fijos de tiempo:
    # Se omiten los años 2010 al 2012 y 2014 por colinealidad.
    modelo_robusto_int_con_cont_aicc_ef<-rlm(Intercambio ~ Regulacion_intercambio + Año_2013 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                               Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cuenta + Credito + Asia_Este + Am_lat,
                                             data = datos_int, method="MM", maxit=100)

    #Visualización
    stargazer(modelo_robusto_int_con_cont_aicc_ef, type = "html",
              title = "Regresión robusta - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa intercambio"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| MCO
Regulacion_intercambio | -0.589***
| (0.061)
Año_2013 | -0.109
| (0.128)
Año_2015 | 0.109
| (0.155)
Año_2016 | -0.003
| (0.145)
Año_2017 | -0.086
| (0.121)
Año_2018 | 0.099
| (0.136)
Año_2019 | -0.004
| (0.135)
Año_2020 | 0.085
| (0.129)
Año_2021 | 0.083
| (0.139)
Año_2022 | -0.041
| (0.143)
Año_2023 | -0.009
| (0.156)
Cuenta | -0.010***
| (0.002)
Credito | 0.002
| (0.002)
Asia_Este | 0.415***
| (0.080)
Am_lat | 0.503***
| (0.074)
Constant | 1.868***
| (0.182)
Observations | 149
Residual Std. Error | 0.201 (df = 133)
Note: | p<0.1; p<0.05; p<0.01

    # Pronósticos CR
    # Sin regular
    pred_mod_rob_int_sin_reg_con_cont_aicc_ef=predict(modelo_robusto_int_con_cont_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Con regulación
    pred_int_con_cont_con_reg_robusto_aicc_ef=predict(modelo_robusto_int_con_cont_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Selección modelo con BIC y efectos fijos de tiempo:
    # Se omiten los años 2010 al 2012 y 2014 por colinealidad.
    modelo_robusto_int_con_cont_bic_ef<-rlm(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat
                                            + Año_2013 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                              Año_2021 + Año_2022  + Año_2023,
                                            data = datos_int, method="MM", maxit=100)
    #Visualización
    stargazer(modelo_robusto_int_con_cont_bic_ef, type = "html",
              title = "Regresión robusta - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa intercambio"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| MCO
Regulacion_intercambio | -0.590***
| (0.062)
Cuenta | -0.010***
| (0.002)
Credito | 0.002
| (0.002)
Asia_Este | 0.414***
| (0.082)
Am_lat | 0.506***
| (0.076)
Año_2013 | -0.108
| (0.131)
Año_2015 | 0.107
| (0.159)
Año_2016 | 0.004
| (0.148)
Año_2017 | -0.085
| (0.124)
Año_2018 | 0.097
| (0.139)
Año_2019 | -0.005
| (0.137)
Año_2020 | 0.082
| (0.131)
Año_2021 | 0.080
| (0.142)
Año_2022 | -0.043
| (0.146)
Año_2023 | -0.010
| (0.159)
Constant | 1.881***
| (0.185)
Observations | 149
Residual Std. Error | 0.210 (df = 133)
Note: | p<0.1; p<0.05; p<0.01

    # Pronósticos CR
    # Sin regular
    pred_mod_rob_int_sin_reg_con_cont_bic_ef=predict(modelo_robusto_int_con_cont_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Con regulación
    pred_int_con_cont_con_reg_robusto_bic_ef=predict(modelo_robusto_int_con_cont_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

## 2.7 Omitir al Espacio Económico Europeo (EEE) de la estimación:

    #Se filtran los datos para excluir países del EEE
    datos_sin_EEE<-datos_int[datos_int$EEE != 1,]
    #Regresión sin controles
    modelo_int_sin_cont_sin_EEE<-lm(Intercambio ~ Regulacion_intercambio, datos_sin_EEE)

    modelo_int_sin_cont_sin_EEE_corr_hc<-coeftest(modelo_int_sin_cont_sin_EEE, vcov. = vcovHC(modelo_int_sin_cont_sin_EEE, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_cont_sin_EEE_corr_hac<-coeftest(modelo_int_sin_cont_sin_EEE, vcov. = vcovHAC(modelo_int_sin_cont_sin_EEE, adjust = TRUE, sandwich = TRUE))
    # visualización
    #stargazer(modelo_int_sin_cont_sin_EEE, modelo_int_sin_cont_sin_EEE_corr_hc, type = "html",
    #          title = "Regresión sobre la tasa de intercambio sin controles y sin EEE",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")
    #Pronóstico CR
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE<-predict(modelo_int_sin_cont_sin_EEE, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_con_EEE<-predict(modelo_int_sin_cont_sin_EEE, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    modelo_int_con_cont_sin_EEE=lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
                                     Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
                                     Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                     Asia_Este + Am_lat, datos_sin_EEE)

    #Visualización
    #stargazer(modelo_int_con_cont_sin_EEE, type = "html",
    #          title = "Regresión sobre la tasa de intercambio con controles y sin EEE",
    #          column.labels = c("MCO"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE<-predict(modelo_int_con_cont_sin_EEE, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_sin_EEE<-predict(modelo_int_con_cont_sin_EEE, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Regresión con todos los controles más efectos fijos de tiempo
    modelo_int_con_cont_sin_EEE_ef=lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito + Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021+ Año_2022 + Año_2023, datos_sin_EEE)
    #summary(modelo_int_con_cont_sin_EEE_ef)
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE_ef<-predict(modelo_int_con_cont_sin_EEE_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_con_EEE_ef<-predict(modelo_int_con_cont_sin_EEE_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables:

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # Selección con AICc
    datos_sin_EEE<-datos_int[datos_int$EEE != 1,]
    datos_sin_EEE<-datos_sin_EEE %>% na.omit()
    # Modelo inicial
    modelo_int_con_cont_sin_EEE_aicc<-lm(formula = Intercambio ~ Regulacion_intercambio + Cajero_Autom +
                                   Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                   Asia_Este + Am_lat, datos_sin_EEE)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_sin_EEE %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_sin_EEE_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    ##  [1] "El criterio deja las siguientes variables: 'Regulacion_intercambio' "
    ##  [2] "El criterio deja las siguientes variables: 'Cajero_Autom' "
    ##  [3] "El criterio deja las siguientes variables: 'Crimen' "
    ##  [4] "El criterio deja las siguientes variables: 'Cuenta' "
    ##  [5] "El criterio deja las siguientes variables: 'Debito' "
    ##  [6] "El criterio deja las siguientes variables: 'Credito' "
    ##  [7] "El criterio deja las siguientes variables: 'Densidad_Neg' "
    ##  [8] "El criterio deja las siguientes variables: 'Valor_prom' "
    ##  [9] "El criterio deja las siguientes variables: 'Europa' "
    ## [10] "El criterio deja las siguientes variables: 'Asia_Este' "
    ## [11] "El criterio deja las siguientes variables: 'Am_lat' "

    # Estimación modelo seleccionado
    modelo_int_con_cont_sin_EEE_aicc=lm(Intercambio ~ Regulacion_intercambio + Cajero_Autom + Crimen +
        Cuenta + Credito + Debito + Densidad_Neg + Valor_prom + Europa + Asia_Este + Am_lat, data = datos_sin_EEE)

    # Pronóstico CR
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE_aicc<-predict(modelo_int_con_cont_sin_EEE_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_sin_EEE_aicc<-predict(modelo_int_con_cont_sin_EEE_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

Resultado final de la selección de variables control por AICc

    # Errores robustos
    modelo_int_con_cont_sin_EEE_aicc_corr_hc<-coeftest(modelo_int_con_cont_sin_EEE_aicc, vcov. = vcovHC(modelo_int_con_cont_sin_EEE_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_sin_EEE_aicc_corr_hac<-coeftest(modelo_int_con_cont_sin_EEE_aicc, vcov. = vcovHAC(modelo_int_con_cont_sin_EEE_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_sin_EEE_aicc, modelo_int_con_cont_sin_EEE_aicc_corr_hc, type = "html",
              title = "Sin el EEE - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Sin el EEE - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.495*** | -0.495***
| (0.074) | (0.089)
Cajero_Autom | 0.002* | 0.002
| (0.001) | (0.002)
Crimen | -0.0003*** | -0.0003***
| (0.0001) | (0.0001)
Cuenta | -0.022*** | -0.022***
| (0.004) | (0.004)
Credito | 0.015*** | 0.015***
| (0.004) | (0.005)
Debito | 0.010*** | 0.010***
| (0.003) | (0.003)
Densidad_Neg | 0.022* | 0.022*
| (0.013) | (0.012)
Valor_prom | 0.002 | 0.002
| (0.001) | (0.001)
Europa | 0.275* | 0.275**
| (0.149) | (0.123)
Asia_Este | 0.320** | 0.320***
| (0.153) | (0.118)
Am_lat | 0.641*** | 0.641***
| (0.157) | (0.125)
Constant | 1.553*** | 1.553***
| (0.311) | (0.366)
Observations | 86 |
R2 | 0.796 |
Adjusted R2 | 0.765 |
Residual Std. Error | 0.272 (df = 74) |
F Statistic | 26.216*** (df = 11; 74) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    #Modelo con controles y sin efectos del tiempo:
    # BIC
    modelo_int_con_cont_sin_EEE_bic = modelo_int_con_cont_sin_EEE
    m1<-step(modelo_int_con_cont_sin_EEE_bic,k=log(n))

    ## Start:  AIC=-157.84
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
    ##     Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
    ##     Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - Densidad_Pob            1   0.00003 5.4088 -162.84
    ## - Pago_digital            1   0.00010 5.4088 -162.84
    ## - PIB_pc_PPA              1   0.01371 5.4224 -162.63
    ## - ICH                     1   0.02643 5.4352 -162.43
    ## - Europa                  1   0.06464 5.4734 -161.82
    ## - Asia_Este               1   0.09978 5.5085 -161.27
    ## - Valor_prom              1   0.11553 5.5243 -161.03
    ## - Densidad_Neg            1   0.14016 5.5489 -160.65
    ## - Cajero_Autom            1   0.20007 5.6088 -159.72
    ## <none>                                5.4087 -157.84
    ## - Credito                 1   0.34643 5.7552 -157.51
    ## - Am_lat                  1   0.45978 5.8685 -155.83
    ## - Crimen                  1   0.80155 6.2103 -150.96
    ## - Cuenta                  1   0.88138 6.2901 -149.86
    ## - Debito                  1   0.95035 6.3591 -148.93
    ## - Regulacion_intercambio  1   2.77801 8.1867 -127.20
    ##
    ## Step:  AIC=-162.84
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Pago_digital + Debito + Densidad_Neg +
    ##     PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - Pago_digital            1   0.00007 5.4088 -167.85
    ## - PIB_pc_PPA              1   0.01728 5.4260 -167.57
    ## - ICH                     1   0.02642 5.4352 -167.43
    ## - Valor_prom              1   0.11920 5.5280 -165.97
    ## - Densidad_Neg            1   0.14129 5.5501 -165.63
    ## - Europa                  1   0.14382 5.5526 -165.59
    ## - Asia_Este               1   0.22446 5.6332 -164.35
    ## - Cajero_Autom            1   0.24207 5.6508 -164.08
    ## <none>                                5.4088 -162.84
    ## - Credito                 1   0.35154 5.7603 -162.43
    ## - Crimen                  1   0.86161 6.2704 -155.14
    ## - Debito                  1   0.95614 6.3649 -153.85
    ## - Cuenta                  1   1.03246 6.4412 -152.82
    ## - Am_lat                  1   1.11595 6.5247 -151.72
    ## - Regulacion_intercambio  1   2.98440 8.3932 -130.06
    ##
    ## Step:  AIC=-167.85
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Densidad_Neg + PIB_pc_PPA + ICH +
    ##     Valor_prom + Europa + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - PIB_pc_PPA              1   0.01752 5.4264 -172.57
    ## - ICH                     1   0.02649 5.4353 -172.43
    ## - Valor_prom              1   0.13253 5.5414 -170.77
    ## - Europa                  1   0.14647 5.5553 -170.55
    ## - Densidad_Neg            1   0.15304 5.5619 -170.45
    ## - Asia_Este               1   0.23007 5.6389 -169.27
    ## - Cajero_Autom            1   0.25012 5.6590 -168.96
    ## <none>                                5.4088 -167.85
    ## - Credito                 1   0.46523 5.8741 -165.76
    ## - Crimen                  1   0.87085 6.2797 -160.01
    ## - Debito                  1   0.97034 6.3792 -158.66
    ## - Am_lat                  1   1.13920 6.5480 -156.41
    ## - Cuenta                  1   2.38405 7.7929 -141.45
    ## - Regulacion_intercambio  1   3.09735 8.5062 -133.91
    ##
    ## Step:  AIC=-172.57
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Densidad_Neg + ICH + Valor_prom +
    ##     Europa + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - ICH                     1    0.0679 5.4943 -176.51
    ## - Densidad_Neg            1    0.1383 5.5647 -175.41
    ## - Europa                  1    0.1654 5.5918 -175.00
    ## - Valor_prom              1    0.1764 5.6028 -174.83
    ## - Cajero_Autom            1    0.2373 5.6636 -173.90
    ## - Asia_Este               1    0.2456 5.6719 -173.77
    ## <none>                                5.4264 -172.57
    ## - Credito                 1    0.5967 6.0231 -168.60
    ## - Crimen                  1    0.9888 6.4152 -163.18
    ## - Debito                  1    1.0570 6.4834 -162.27
    ## - Am_lat                  1    1.1634 6.5898 -160.87
    ## - Cuenta                  1    2.4825 7.9089 -145.18
    ## - Regulacion_intercambio  1    3.2267 8.6531 -137.45
    ##
    ## Step:  AIC=-176.51
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Densidad_Neg + Valor_prom + Europa +
    ##     Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - Valor_prom              1    0.2021 5.6964 -178.41
    ## - Densidad_Neg            1    0.2186 5.7128 -178.16
    ## - Cajero_Autom            1    0.2336 5.7279 -177.93
    ## - Europa                  1    0.2532 5.7475 -177.64
    ## - Asia_Este               1    0.3241 5.8184 -176.58
    ## <none>                                5.4943 -176.51
    ## - Crimen                  1    0.9715 6.4658 -167.51
    ## - Credito                 1    1.0251 6.5194 -166.80
    ## - Debito                  1    1.0347 6.5290 -166.67
    ## - Am_lat                  1    1.2437 6.7380 -163.96
    ## - Cuenta                  1    2.5715 8.0658 -148.49
    ## - Regulacion_intercambio  1    3.3521 8.8464 -140.55
    ##
    ## Step:  AIC=-178.41
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Densidad_Neg + Europa + Asia_Este +
    ##     Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - Densidad_Neg            1    0.1368 5.8332 -181.37
    ## - Cajero_Autom            1    0.1496 5.8460 -181.18
    ## - Europa                  1    0.1533 5.8497 -181.12
    ## <none>                                5.6964 -178.41
    ## - Asia_Este               1    0.4292 6.1255 -177.16
    ## - Credito                 1    0.8835 6.5799 -171.01
    ## - Crimen                  1    0.9509 6.6473 -170.13
    ## - Debito                  1    0.9623 6.6586 -169.99
    ## - Am_lat                  1    1.0433 6.7397 -168.95
    ## - Cuenta                  1    2.5792 8.2756 -151.29
    ## - Regulacion_intercambio  1    3.8425 9.5388 -139.07
    ##
    ## Step:  AIC=-181.37
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Europa + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq    RSS     AIC
    ## - Europa                  1    0.1155 5.9487 -184.69
    ## - Cajero_Autom            1    0.1727 6.0059 -183.86
    ## <none>                                5.8332 -181.37
    ## - Asia_Este               1    0.4485 6.2817 -180.00
    ## - Credito                 1    0.7471 6.5802 -176.01
    ## - Am_lat                  1    0.9456 6.7787 -173.45
    ## - Debito                  1    0.9792 6.8124 -173.03
    ## - Crimen                  1    1.0103 6.8434 -172.64
    ## - Cuenta                  1    2.4618 8.2949 -156.09
    ## - Regulacion_intercambio  1    4.1582 9.9914 -140.09
    ##
    ## Step:  AIC=-184.69
    ## Intercambio ~ Regulacion_intercambio + Cajero_Autom + Credito +
    ##     Crimen + Cuenta + Debito + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq     RSS     AIC
    ## - Cajero_Autom            1    0.1689  6.1176 -187.28
    ## <none>                                 5.9487 -184.69
    ## - Asia_Este               1    0.3896  6.3383 -184.23
    ## - Credito                 1    0.6404  6.5891 -180.90
    ## - Crimen                  1    0.9516  6.9003 -176.93
    ## - Am_lat                  1    1.4875  7.4362 -170.50
    ## - Debito                  1    1.5658  7.5145 -169.59
    ## - Cuenta                  1    2.7871  8.7358 -156.64
    ## - Regulacion_intercambio  1    4.7276 10.6763 -139.39
    ##
    ## Step:  AIC=-187.28
    ## Intercambio ~ Regulacion_intercambio + Credito + Crimen + Cuenta +
    ##     Debito + Asia_Este + Am_lat
    ##
    ##                          Df Sum of Sq     RSS     AIC
    ## <none>                                 6.1176 -187.28
    ## - Asia_Este               1    0.4789  6.5965 -185.80
    ## - Crimen                  1    0.8779  6.9955 -180.75
    ## - Am_lat                  1    1.6169  7.7346 -172.12
    ## - Debito                  1    1.7842  7.9018 -170.28
    ## - Credito                 1    2.0280  8.1456 -167.66
    ## - Cuenta                  1    3.4347  9.5523 -153.96
    ## - Regulacion_intercambio  1    5.9147 12.0323 -134.11

    # Estimación del modelo
    modelo_int_con_cont_sin_EEE_bic<-m1
    #modelo_int_con_cont_sin_EEE_bic=lm(formula = Intercambio ~ Regulacion_intercambio + Crimen + Cuenta + Debito  + Credito + Asia_Este +  Am_lat, data = datos_sin_EEE)
    # Pronóstico CR
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE_BIC<-predict(modelo_int_con_cont_sin_EEE_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_sin_EEE_BIC<-predict(modelo_int_con_cont_sin_EEE_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

Resultado final de la selección de variables control por BIC

    modelo_int_con_cont_sin_EEE_bic_corr_hc<-coeftest(modelo_int_con_cont_sin_EEE_bic, vcov. = vcovHC(modelo_int_con_cont_sin_EEE_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_sin_EEE_bic_corr_hac<-coeftest(modelo_int_con_cont_sin_EEE_bic, vcov. = vcovHAC(modelo_int_con_cont_sin_EEE_bic, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_sin_EEE_bic, modelo_int_con_cont_sin_EEE_bic_corr_hc, type = "html",
              title = "Sin el EEE - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Sin el EEE - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.588*** | -0.588***
| (0.068) | (0.069)
Credito | 0.014*** | 0.014***
| (0.003) | (0.003)
Crimen | -0.0002*** | -0.0002***
| (0.0001) | (0.0001)
Cuenta | -0.024*** | -0.024***
| (0.004) | (0.004)
Debito | 0.012*** | 0.012***
| (0.003) | (0.002)
Asia_Este | 0.253** | 0.253**
| (0.102) | (0.099)
Am_lat | 0.378*** | 0.378***
| (0.083) | (0.083)
Constant | 2.210*** | 2.210***
| (0.175) | (0.208)
Observations | 86 |
R2 | 0.773 |
Adjusted R2 | 0.752 |
Residual Std. Error | 0.280 (df = 78) |
F Statistic | 37.864*** (df = 7; 78) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Selección con AICc
    datos_sin_EEE<-datos_sin_EEE %>% na.omit()
    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_int_con_cont_sin_EEE_aicc_ef<-lm(log(Intercambio) ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 + Año_2013 +
                                              Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                              Año_2018 + Año_2019 + Año_2020 + Año_2021  + Año_2022 + Año_2023 +
                                              Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito +
                                              Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom +
                                              Europa + Asia_Este + Am_lat, datos_sin_EEE)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014",
                           "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021",
                           "Año_2022", "Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito",
                           "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat")
    controles<- datos_sin_EEE %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    # cantidad de años
    nvar=13
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_sin_EEE_aicc_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(log(Intercambio) ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }
    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }
    #min(AICC)<AICC[1]
    #Se elimina la siguiente columna
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles
    # variables seleccionadas
    #print(paste0("Se incluyen las siguientes variables: ",variables_controles))
    #variables_controles

    # Estimación modelo seleccionado:
    # No se usa los datos del 2010 al 2013 por colinealidad
    modelo_int_con_cont_sin_EEE_aicc_ef<-lm(Intercambio ~ Regulacion_intercambio + #Año_2013 +
                                              Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                              Año_2021 + Año_2022 + Año_2023 +
                                              Crimen + Cuenta + Debito + Credito + Densidad_Neg + Am_lat,
                                            datos_sin_EEE)
    # Pronóstico CR
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE_ef_aic<-predict(modelo_int_con_cont_sin_EEE_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_con_reg_sin_EEE_ef_aic<-predict(modelo_int_con_cont_sin_EEE_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

A continuación se presenta el resultado final de la selección de las variables control con AICc y efectos fijos.

    # Errores robustos
    modelo_int_con_cont_sin_EEE_aicc_ef_corr_hc<-coeftest(modelo_int_con_cont_sin_EEE_aicc_ef, vcov. = vcovHC(modelo_int_con_cont_sin_EEE_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_sin_EEE_aicc_ef_corr_hac<-coeftest(modelo_int_con_cont_sin_EEE_aicc_ef, vcov. = vcovHAC(modelo_int_con_cont_sin_EEE_aicc_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_sin_EEE_aicc_ef, modelo_int_con_cont_sin_EEE_aicc_ef_corr_hc, type = "html",
              title = "Sin el EEE - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Sin el EEE - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.542*** | -0.542***
| (0.072) | (0.074)
Año_2014 | 0.363 | 0.363**
| (0.327) | (0.176)
Año_2015 | 0.412 | 0.412**
| (0.321) | (0.163)
Año_2016 | 0.525 | 0.525***
| (0.316) | (0.177)
Año_2017 | 0.289 | 0.289**
| (0.309) | (0.137)
Año_2018 | 0.286 | 0.286**
| (0.308) | (0.123)
Año_2019 | 0.244 | 0.244**
| (0.308) | (0.107)
Año_2020 | 0.223 | 0.223**
| (0.306) | (0.093)
Año_2021 | 0.230 | 0.230**
| (0.311) | (0.088)
Año_2022 | 0.164 | 0.164
| (0.315) | (0.102)
Año_2023 | 0.252 | 0.252
| (0.324) | (0.174)
Crimen | -0.0003*** | -0.0003***
| (0.0001) | (0.0001)
Cuenta | -0.023*** | -0.023***
| (0.004) | (0.004)
Debito | 0.013*** | 0.013***
| (0.003) | (0.002)
Credito | 0.015*** | 0.015***
| (0.003) | (0.003)
Densidad_Neg | 0.026* | 0.026**
| (0.013) | (0.013)
Am_lat | 0.357*** | 0.357***
| (0.088) | (0.084)
Constant | 1.823*** | 1.823***
| (0.354) | (0.209)
Observations | 86 |
R2 | 0.790 |
Adjusted R2 | 0.737 |
Residual Std. Error | 0.288 (df = 68) |
F Statistic | 15.027*** (df = 17; 68) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_int_con_cont_sin_EEE_bic_ef<-lm(Intercambio ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                         Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                         Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                         Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                         ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_sin_EEE)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014",
                           "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022", "Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg",
                           "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_sin_EEE %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables
    nvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_con_cont_sin_EEE_bic_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_sin_EEE))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_sin_EEE))
    }

    #min(BIC)<BIC[1]

    #No se eliminan más columnas
    controles4<-controles

    #Variables a usar
    #print(paste0("Se incluyen las siguientes variables: ",variables_controles))

    # Estimación del modelo: Por problemas de multicolinealidad se quitan los años del 2010 al 2013
    modelo_int_con_cont_sin_EEE_bic_ef<-lm(Intercambio ~ Regulacion_intercambio + #Año_2013 +
                                             Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                             Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                             Crimen + Cuenta + Debito + Credito +
                                             Densidad_Neg + Am_lat, datos_sin_EEE)
    # Pronóstico CR
    #Sin regulación
    pred_int_con_cont_sin_reg_sin_EEE_bic_ef<-predict(modelo_int_con_cont_sin_EEE_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #pred_int_con_cont_sin_reg_sin_EEE_bic_ef
    #Con regulación
    pred_int_con_cont_con_reg_sin_EEE_bic_ef<-predict(modelo_int_con_cont_sin_EEE_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #pred_int_con_cont_con_reg_sin_EEE_bic_ef

A continuación se presenta el resultado final de la selección de las variables control con BIC y efectos fijos.

    modelo_int_con_cont_sin_EEE_bic_corr_hc<-coeftest(modelo_int_con_cont_sin_EEE_bic_ef, vcov. = vcovHC(modelo_int_con_cont_sin_EEE_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_sin_EEE_bic_ef_corr_hac<-coeftest(modelo_int_con_cont_sin_EEE_bic_ef, vcov. = vcovHAC(modelo_int_con_cont_sin_EEE_bic_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_sin_EEE_bic_ef, modelo_int_con_cont_sin_EEE_bic_corr_hc, type = "html",
              title = "Sin el EEE - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Sin el EEE - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.542*** | -0.542***
| (0.072) | (0.074)
Año_2014 | 0.363 | 0.363**
| (0.327) | (0.176)
Año_2015 | 0.412 | 0.412**
| (0.321) | (0.163)
Año_2016 | 0.525 | 0.525***
| (0.316) | (0.177)
Año_2017 | 0.289 | 0.289**
| (0.309) | (0.137)
Año_2018 | 0.286 | 0.286**
| (0.308) | (0.123)
Año_2019 | 0.244 | 0.244**
| (0.308) | (0.107)
Año_2020 | 0.223 | 0.223**
| (0.306) | (0.093)
Año_2021 | 0.230 | 0.230**
| (0.311) | (0.088)
Año_2022 | 0.164 | 0.164
| (0.315) | (0.102)
Año_2023 | 0.252 | 0.252
| (0.324) | (0.174)
Crimen | -0.0003*** | -0.0003***
| (0.0001) | (0.0001)
Cuenta | -0.023*** | -0.023***
| (0.004) | (0.004)
Debito | 0.013*** | 0.013***
| (0.003) | (0.002)
Credito | 0.015*** | 0.015***
| (0.003) | (0.003)
Densidad_Neg | 0.026* | 0.026**
| (0.013) | (0.013)
Am_lat | 0.357*** | 0.357***
| (0.088) | (0.084)
Constant | 1.823*** | 1.823***
| (0.354) | (0.209)
Observations | 86 |
R2 | 0.790 |
Adjusted R2 | 0.737 |
Residual Std. Error | 0.288 (df = 68) |
F Statistic | 15.027*** (df = 17; 68) |
Note: | p<0.1; p<0.05; p<0.01

## 2.8 Restringir la muestra a solo países regulados:

    # Solo con los países regulados
    datos_int_reg=datos_int[datos_int$Regulacion_intercambio==1,]

    #Usando todos los controles:
    modelo_int_reg_con_cont=lm(Intercambio ~ Cajero_Autom + Credito +
        Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
        Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
        Am_lat,datos_int_reg)

    modelo_int_reg_con_cont_corr_hc<-coeftest(modelo_int_reg_con_cont, vcov. = vcovHC(modelo_int_reg_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_reg_con_cont_corr_hac<-coeftest(modelo_int_reg_con_cont, vcov. = vcovHAC(modelo_int_reg_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_int_reg_con_cont, modelo_int_reg_con_cont_corr_hc,
    #          type = "html", title = "Regresión sobre la tasa de intercambio con todos los controles, solo muestra con países regulados",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
    #          dep.var.caption = "Variable dependiente")
    #Pronóstico CR
    #Con regulación
    pred_int_reg_con_cont<-predict(modelo_int_reg_con_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Regresión con todos los controles más efectos fijos de tiempo
    modelo_int_reg_con_cont_ef=lm(Intercambio ~ Cajero_Autom + Credito +
        Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob +
        Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
        Am_lat + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
          Año_2020 + Año_2021+ Año_2022+ Año_2023,datos_int_reg)
    #Con regulación
    pred_int_reg_con_cont_ef<-predict(modelo_int_reg_con_cont_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables:

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # Modelo inicial
    modelo_int_rest_reg_con_cont_aicc<-lm(formula = Intercambio ~ Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                           Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                           Asia_Este + Am_lat, datos_int_reg)

    variables_controles<-c("Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_rest_reg_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable:
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo seleccionado
    modelo_int_reg_con_cont_aicc=lm(Intercambio ~ Crimen + Pago_digital + Debito + Credito + Densidad_Pob +
                                      Densidad_Neg + Europa + Am_lat, datos_int_reg)
    #summary(modelo_int_reg_con_cont_aicc)
    # Pronóstico CR
    pred_int_reg_con_cont_aicc<-predict(modelo_int_reg_con_cont_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #pred_int_reg_con_cont_aicc

    modelo_int_reg_con_cont_aicc_corr_hc<-coeftest(modelo_int_reg_con_cont_aicc, vcov. = vcovHC(modelo_int_reg_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_bic_ampli_corr_hac<-coeftest(modelo_int_reg_con_cont_aicc, vcov. = vcovHAC(modelo_int_reg_con_cont_aicc, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_reg_con_cont_aicc, modelo_int_reg_con_cont_aicc_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Crimen | 0.00005* | 0.00005*
| (0.00003) | (0.00003)
Pago_digital | -0.010*** | -0.010**
| (0.003) | (0.004)
Debito | 0.004** | 0.004*
| (0.002) | (0.002)
Credito | 0.005** | 0.005*
| (0.002) | (0.003)
Densidad_Pob | -0.0004*** | -0.0004***
| (0.0001) | (0.0001)
Densidad_Neg | -0.009 | -0.009*
| (0.006) | (0.005)
Europa | -0.419*** | -0.419***
| (0.062) | (0.072)
Am_lat | 0.460*** | 0.460***
| (0.085) | (0.096)
Constant | 1.144*** | 1.144***
| (0.110) | (0.161)
Observations | 86 |
R2 | 0.819 |
Adjusted R2 | 0.800 |
Residual Std. Error | 0.207 (df = 77) |
F Statistic | 43.520*** (df = 8; 77) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    #Selección con el criterio BIC:
    modelo_int_reg_con_cont_bic=modelo_int_reg_con_cont
    select.modelo<-step(modelo_int_reg_con_cont_bic,k=log(n))

Start: AIC=-208.99 Intercambio ~ Cajero_Autom + Credito + Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat

               Df Sum of Sq    RSS     AIC

- Cajero_Autom 1 0.00000 3.1628 -213.99
- Cuenta 1 0.00006 3.1628 -213.99
- Valor_prom 1 0.00102 3.1638 -213.97
- Asia_Este 1 0.02737 3.1901 -213.25
- PIB_pc_PPA 1 0.03059 3.1933 -213.17
- ICH 1 0.06195 3.2247 -212.33
- Densidad_Neg 1 0.07466 3.2374 -211.99
- Debito 1 0.09752 3.2603 -211.38
- Europa 1 0.14580 3.3085 -210.12
- Densidad_Pob 1 0.14752 3.3103 -210.07
- Pago_digital 1 0.18255 3.3453 -209.17 3.1628 -208.99
- Crimen 1 0.20670 3.3695 -208.55
- Credito 1 0.23683 3.3996 -207.78
- Am_lat 1 0.61780 3.7806 -198.65

Step: AIC=-213.99 Intercambio ~ Credito + Crimen + Cuenta + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat

               Df Sum of Sq    RSS     AIC

- Cuenta 1 0.00006 3.1628 -219.00
- Valor_prom 1 0.00105 3.1638 -218.97
- Asia_Este 1 0.02754 3.1903 -218.25
- PIB_pc_PPA 1 0.03061 3.1934 -218.17
- ICH 1 0.06854 3.2313 -217.16
- Densidad_Neg 1 0.07466 3.2374 -216.99
- Debito 1 0.09762 3.2604 -216.38
- Europa 1 0.14952 3.3123 -215.03
- Densidad_Pob 1 0.15683 3.3196 -214.84
- Pago_digital 1 0.18258 3.3453 -214.17 3.1628 -213.99
- Crimen 1 0.21416 3.3769 -213.36
- Credito 1 0.26771 3.4305 -212.01
- Am_lat 1 0.63017 3.7929 -203.37

Step: AIC=-219 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat

               Df Sum of Sq    RSS     AIC

- Valor_prom 1 0.00115 3.1640 -223.97
- Asia_Este 1 0.02787 3.1907 -223.25
- PIB_pc_PPA 1 0.03090 3.1937 -223.16
- ICH 1 0.06848 3.2313 -222.16
- Densidad_Neg 1 0.07503 3.2378 -221.98
- Debito 1 0.10313 3.2659 -221.24
- Europa 1 0.15030 3.3131 -220.01
- Densidad_Pob 1 0.16099 3.3238 -219.73 3.1628 -219.00
- Crimen 1 0.21968 3.3825 -218.23
- Credito 1 0.26985 3.4327 -216.96
- Pago_digital 1 0.36238 3.5252 -214.67
- Am_lat 1 0.66165 3.8245 -207.66

Step: AIC=-223.97 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este + Am_lat

               Df Sum of Sq    RSS     AIC

- Asia_Este 1 0.03059 3.1946 -228.15
- PIB_pc_PPA 1 0.03100 3.1950 -228.13
- ICH 1 0.07106 3.2350 -227.06
- Densidad_Neg 1 0.07622 3.2402 -226.93
- Debito 1 0.10479 3.2688 -226.17
- Europa 1 0.14915 3.3131 -225.01
- Densidad_Pob 1 0.16069 3.3247 -224.71 3.1640 -223.97
- Crimen 1 0.22033 3.3843 -223.18
- Credito 1 0.27350 3.4375 -221.84
- Pago_digital 1 0.37434 3.5383 -219.36
- Am_lat 1 0.66052 3.8245 -212.67

Step: AIC=-228.15 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Europa + Am_lat

               Df Sum of Sq    RSS     AIC

- PIB_pc_PPA 1 0.01871 3.2133 -232.65
- ICH 1 0.06808 3.2626 -231.34
- Densidad_Neg 1 0.06843 3.2630 -231.33 3.1946 -228.15
- Debito 1 0.20420 3.3988 -227.82
- Crimen 1 0.21130 3.4059 -227.64
- Credito 1 0.24313 3.4377 -226.84
- Pago_digital 1 0.40801 3.6026 -222.81
- Densidad_Pob 1 0.50549 3.7001 -220.52
- Am_lat 1 1.29140 4.4860 -203.95
- Europa 1 1.32046 4.5150 -203.40

Step: AIC=-232.65 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + ICH + Europa + Am_lat

               Df Sum of Sq    RSS     AIC

- ICH 1 0.07129 3.2846 -235.76
- Densidad_Neg 1 0.09320 3.3065 -235.19
- Debito 1 0.18684 3.4001 -232.79 3.2133 -232.65
- Crimen 1 0.19270 3.4060 -232.64
- Credito 1 0.23526 3.4485 -231.57
- Pago_digital 1 0.39015 3.6034 -227.80
- Densidad_Pob 1 0.53648 3.7498 -224.37
- Am_lat 1 1.27291 4.4862 -208.95
- Europa 1 1.60221 4.8155 -202.86

Step: AIC=-235.76 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Densidad_Neg + Europa + Am_lat

               Df Sum of Sq    RSS     AIC

- Densidad_Neg 1 0.11070 3.3953 -237.92
- Crimen 1 0.14778 3.4323 -236.98
- Debito 1 0.17861 3.4632 -236.21
- Credito 1 0.18816 3.4727 -235.98 3.2846 -235.76
- Pago_digital 1 0.50027 3.7848 -228.58
- Densidad_Pob 1 0.51001 3.7946 -228.35
- Am_lat 1 1.24762 4.5322 -213.08
- Europa 1 1.94730 5.2319 -200.73

Step: AIC=-237.92 Intercambio ~ Credito + Crimen + Pago_digital + Debito + Densidad_Pob + Europa + Am_lat

               Df Sum of Sq    RSS     AIC

- Crimen 1 0.10051 3.4958 -240.41
- Debito 1 0.13883 3.5341 -239.47 3.3953 -237.92
- Credito 1 0.24721 3.6425 -236.88
- Densidad_Pob 1 0.53876 3.9340 -230.25
- Pago_digital 1 0.58407 3.9793 -229.27
- Am_lat 1 1.33502 4.7303 -214.40
- Europa 1 1.86572 5.2610 -205.26

Step: AIC=-240.41 Intercambio ~ Credito + Pago_digital + Debito + Densidad_Pob + Europa + Am_lat

               Df Sum of Sq    RSS     AIC

3.4958 -240.41 - Debito 1 0.21517 3.7110 -240.28 - Credito 1 0.29487 3.7907 -238.45 - Densidad_Pob 1 0.51749 4.0133 -233.54 - Pago_digital 1 0.54740 4.0432 -232.91 - Am_lat 1 1.39956 4.8953 -216.46 - Europa 1 2.00139 5.4972 -206.49

    # Estimación del modelo seleccionado
    modelo_int_reg_con_cont_bic<-select.modelo
    #modelo_int_reg_con_cont_bic=lm(Intercambio ~ Debito + Credito + Densidad_Pob + Pago_digital + Am_lat + Europa, datos_int_reg)
    #summary(modelo_int_reg_con_cont_bic)
    # Pronóstico CR
    pred_int_reg_con_cont_bic<-predict(modelo_int_reg_con_cont_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #pred_int_reg_con_cont_bic
    modelo_int_reg_con_cont_bic_corr_hc<-coeftest(modelo_int_reg_con_cont_bic, vcov. = vcovHC(modelo_int_reg_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_reg_con_cont_bic_corr_hac<-coeftest(modelo_int_reg_con_cont_bic, vcov. = vcovHAC(modelo_int_reg_con_cont_bic, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_reg_con_cont_bic, modelo_int_reg_con_cont_bic_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Credito | 0.006** | 0.006**
| (0.002) | (0.003)
Pago_digital | -0.010*** | -0.010**
| (0.003) | (0.004)
Debito | 0.004** | 0.004**
| (0.002) | (0.002)
Densidad_Pob | -0.0004*** | -0.0004***
| (0.0001) | (0.0001)
Europa | -0.394*** | -0.394***
| (0.059) | (0.060)
Am_lat | 0.483*** | 0.483***
| (0.086) | (0.094)
Constant | 1.111*** | 1.111***
| (0.108) | (0.150)
Observations | 86 |
R2 | 0.807 |
Adjusted R2 | 0.793 |
Residual Std. Error | 0.210 (df = 79) |
F Statistic | 55.141*** (df = 6; 79) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    # Selección con AICc
    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_int_reg_con_cont_aicc_ef<-lm(Intercambio ~ Año_2010 + Año_2011 + Año_2012 +
                                          Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                          Año_2020 + Año_2021  + Año_2022 + Año_2023  + Cajero_Autom + Crimen + Cuenta +
                                          Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                          ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_int_reg)

    variables_controles<-c( "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014",
                           "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021",
                           "Año_2022","Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito",
                           "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este",
                           "Am_lat")
    controles<- datos_int_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables años
    nvar=12
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_reg_con_cont_aicc_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+nvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles
    # variables seleccionadas
    #variables_controles
    #print(paste0("Se deja la siguiente variable: ","'",variables_controles,"' "))
    #
    # Se dejan por fuera los años 2010 al 2012 y 2014 por problemas de colinealidad
    modelo_int_reg_con_cont_aicc_ef<-lm(Intercambio ~ Regulacion_intercambio + Año_2013 +
                                         Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                         Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                         Pago_digital + Debito + Credito + Densidad_Pob +
                                         Europa + Am_lat, datos_int_reg)
    modelo_int_reg_con_cont_aicc_ef_corr_hc<-coeftest(modelo_int_reg_con_cont_aicc_ef, vcov. = vcovHC(modelo_int_reg_con_cont_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_reg_con_cont_aicc_ef_corr_hac<-coeftest(modelo_int_reg_con_cont_aicc_ef, vcov. = vcovHAC(modelo_int_reg_con_cont_aicc_ef, adjust = TRUE, sandwich = TRUE))
    # visualización
    stargazer(modelo_int_reg_con_cont_aicc_ef, modelo_int_reg_con_cont_aicc_ef_corr_hc,
              type = "html", title = "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio |  |
Año_2013 | 0.420* | 0.420*
| (0.251) | (0.228)
Año_2015 | -0.044 | -0.044
| (0.161) | (0.230)
Año_2016 | -0.177 | -0.177
| (0.156) | (0.214)
Año_2017 | -0.115 | -0.115
| (0.130) | (0.215)
Año_2018 | -0.070 | -0.070
| (0.152) | (0.217)
Año_2019 | -0.196 | -0.196
| (0.146) | (0.209)
Año_2020 | -0.083 | -0.083
| (0.148) | (0.218)
Año_2021 | -0.006 | -0.006
| (0.153) | (0.259)
Año_2022 | -0.132 | -0.132
| (0.150) | (0.216)
Año_2023 | -0.124 | -0.124
| (0.166) | (0.246)
Pago_digital | -0.012*** | -0.012**
| (0.003) | (0.005)
Debito | 0.005** | 0.005**
| (0.002) | (0.002)
Credito | 0.007** | 0.007**
| (0.003) | (0.003)
Densidad_Pob | -0.0004*** | -0.0004***
| (0.0001) | (0.0001)
Europa | -0.413*** | -0.413***
| (0.066) | (0.072)
Am_lat | 0.442*** | 0.442***
| (0.088) | (0.104)
Constant | 1.268*** | 1.268***
| (0.170) | (0.247)
Observations | 86 |
R2 | 0.833 |
Adjusted R2 | 0.794 |
Residual Std. Error | 0.210 (df = 69) |
F Statistic | 21.504*** (df = 16; 69) |
Note: | p<0.1; p<0.05; p<0.01

    # Prónostico CR
    pred_int_reg_con_cont_ef_aicc<-predict(modelo_int_reg_con_cont_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_int_reg_con_cont_bic_ef<-lm(Intercambio ~ Año_2010 + Año_2011 + Año_2012 +
                                         Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                         Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                         Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                         ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_int_reg)

    variables_controles<-c("Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014",
                           "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022","Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg",
                           "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    # Cantidad de variables
    nvar<-12
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_reg_con_cont_bic_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+13)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int_reg))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int_reg))
    }

    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles
    #Variables a usar
    #print(paste0("Se deja la siguiente variable: ",variables_controles))

    # Se dejan por fuera los años 2010 al 2012 y 2014 por problemas de colinealidad
    modelo_int_reg_con_cont_bic_ef<-lm(Intercambio ~ Año_2013 +
                                         Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                         Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                         Pago_digital + Debito + Credito + Densidad_Pob +
                                         Europa + Am_lat, datos_int_reg)

    modelo_int_reg_con_cont_bic_ef_corr_hc<-coeftest(modelo_int_reg_con_cont_bic_ef, vcov. = vcovHC(modelo_int_reg_con_cont_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_reg_con_cont_bic_ef_corr_hac<-coeftest(modelo_int_reg_con_cont_bic_ef, vcov. = vcovHAC(modelo_int_reg_con_cont_bic_ef, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_reg_con_cont_bic_ef, modelo_int_reg_con_cont_bic_ef_corr_hc,
              type = "html", title = "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Año_2013 | 0.420* | 0.420*
| (0.251) | (0.228)
Año_2015 | -0.044 | -0.044
| (0.161) | (0.230)
Año_2016 | -0.177 | -0.177
| (0.156) | (0.214)
Año_2017 | -0.115 | -0.115
| (0.130) | (0.215)
Año_2018 | -0.070 | -0.070
| (0.152) | (0.217)
Año_2019 | -0.196 | -0.196
| (0.146) | (0.209)
Año_2020 | -0.083 | -0.083
| (0.148) | (0.218)
Año_2021 | -0.006 | -0.006
| (0.153) | (0.259)
Año_2022 | -0.132 | -0.132
| (0.150) | (0.216)
Año_2023 | -0.124 | -0.124
| (0.166) | (0.246)
Pago_digital | -0.012*** | -0.012**
| (0.003) | (0.005)
Debito | 0.005** | 0.005**
| (0.002) | (0.002)
Credito | 0.007** | 0.007**
| (0.003) | (0.003)
Densidad_Pob | -0.0004*** | -0.0004***
| (0.0001) | (0.0001)
Europa | -0.413*** | -0.413***
| (0.066) | (0.072)
Am_lat | 0.442*** | 0.442***
| (0.088) | (0.104)
Constant | 1.268*** | 1.268***
| (0.170) | (0.247)
Observations | 86 |
R2 | 0.833 |
Adjusted R2 | 0.794 |
Residual Std. Error | 0.210 (df = 69) |
F Statistic | 21.504*** (df = 16; 69) |
Note: | p<0.1; p<0.05; p<0.01

    # Prónostico CR
    pred_int_reg_con_cont_ef_bic<-predict(modelo_int_reg_con_cont_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #pred_int_reg_con_cont_ef_bic

## 2.9 Predicción de las comisiones de intercambio

Luego de la etapa de modelación, se realiza un pronóstico para conocer la tasa de intercambio esperada para Costa Rica. A continuación, se calcula un promedio para los valores esperados de cada modelo estimado:

    #Pronósticos sin logaritmo toda la muestra
    #Predicción con dicotómica sin regulación
    pred1_int_sin_reg <-predict(modelo_int_con_cont_aicc, newdata = datos,
                                interval = "prediction", level = 0.95,
                                type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred2_int_sin_reg<-predict(modelo_int_con_cont_bic, newdata = datos,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred3_int_sin_reg<-predict(modelo_int_con_cont_ef_aicc, newdata = datos,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred4_int_sin_reg<-predict(modelo_int_con_cont_ef_bic, newdata = datos,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_sin_reg<-mean(c(as.numeric(pred1_int_sin_reg),
                             as.numeric(pred2_int_sin_reg),
                             as.numeric(pred3_int_sin_reg),
                             as.numeric(pred4_int_sin_reg)))

    #Predicción con dicotómica con regulación
    # Se usa data_CR porque se le asignó a CR como regulado
    pred1_int_con_reg<-predict(modelo_int_con_cont_aicc, newdata = data_CR,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred2_int_con_reg<-predict(modelo_int_con_cont_bic, newdata = data_CR,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred3_int_con_reg<-predict(modelo_int_con_cont_ef_aicc, newdata = data_CR,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred4_int_con_reg<-predict(modelo_int_con_cont_ef_bic, newdata = data_CR,
                               interval = "prediction", level = 0.95,
                               type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    # promedio modelo de regresion (sin y con efectos fijos de tiempo)
    pred_int_con_reg<-mean(c(as.numeric(pred1_int_con_reg),
                             as.numeric(pred2_int_con_reg),
                             as.numeric(pred3_int_con_reg),
                             as.numeric(pred4_int_con_reg)))

    #Pronósticos con logaritmo toda la muestra

    #Predicción con dicotómica sin regulación
    pred1_log_int_sin_reg<-exp(predict(modelo_log_int_con_cont_aicc, newdata = datos,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(datos$Codigo_Pais=="CRI")])

    pred2_log_int_sin_reg<-exp(predict(modelo_log_int_con_cont_bic, newdata = datos,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(datos$Codigo_Pais=="CRI")])

    pred3_log_int_sin_reg<-exp(predict(modelo_log_int_con_cont_aicc_ef, newdata = datos,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(datos$Codigo_Pais=="CRI")])
    pred4_log_int_sin_reg<-exp(predict(modelo_log_int_con_cont_bic_ef, newdata = datos,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(datos$Codigo_Pais=="CRI")])
    # promedio con logaritmo
    pred_log_int_sin_reg<-mean(c(as.numeric(pred1_log_int_sin_reg),
                                 as.numeric(pred2_log_int_sin_reg),
                                 as.numeric(pred3_log_int_sin_reg),
                                 as.numeric(pred4_log_int_sin_reg)))

    pred_int_con_reg<-mean(c(as.numeric(pred1_int_con_reg),
                             as.numeric(pred2_int_con_reg),
                             as.numeric(pred3_int_con_reg),
                             as.numeric(pred4_int_con_reg)))

    #Predicción con dicotómica con regulación
    pred1_log_int_con_reg<- exp(predict(modelo_log_int_con_cont_aicc, newdata = data_CR,
                                        interval = "prediction", level = 0.95,
                                        type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred2_log_int_con_reg<-exp(predict(modelo_log_int_con_cont_bic, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred3_log_int_con_reg<-exp(predict(modelo_log_int_con_cont_aicc_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred4_log_int_con_reg<-exp(predict(modelo_log_int_con_cont_bic_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")])
    # promedio con logaritmo
    pred_log_int_con_reg<-mean(c(as.numeric(pred1_log_int_con_reg),
                                 as.numeric(pred2_log_int_con_reg),
                                 as.numeric(pred3_log_int_con_reg),
                                 as.numeric(pred4_log_int_con_reg)))

    ##########################################
    #Pronósticos sin logaritmo solo países regulados en la muestra
    pred1_int_reg<-predict(modelo_int_reg_con_cont_aicc, newdata = data_CR,
                           interval = "prediction", level = 0.95,
                           type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    pred2_int_reg<-predict(modelo_int_reg_con_cont_bic, newdata = data_CR,
                           interval = "prediction", level = 0.95,
                           type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    pred3_int_reg<-predict(modelo_int_reg_con_cont_aicc_ef, newdata = data_CR,
                           interval = "prediction", level = 0.95,
                           type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred4_int_reg<-predict(modelo_int_reg_con_cont_bic_ef, newdata = data_CR,
                           interval = "prediction", level = 0.95,
                           type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred_int_reg<-mean(c(as.numeric(pred1_int_reg),
                         as.numeric(pred2_int_reg),
                         as.numeric(pred3_int_reg),
                         as.numeric(pred4_int_reg)))

    #Tabla pronósticos intercambio -----

    pronosticos_int<-round(as.data.frame(cbind(
                                         c( pred_int_sin_cont_con_reg,
                                            #pred_int_con_cont_con_reg,
                                            #pred_int_con_cont_ef_con_reg,
                                            pred1_int_con_reg,
                                            pred2_int_con_reg,
                                            pred3_int_con_reg,
                                            pred4_int_con_reg,
                                            pred_int_con_reg)
    )),3)

    rownames(pronosticos_int)<-c("Estimación principal - Modelo sin controles",
    #                             "Estimación principal - Modelo con controles sin efectos fijos de tiempo",
    #                             "Estimación principal - Modelo con controles con efectos fijos de tiempo",
                                 "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
                                 "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
                                 "Estimación principal - Modelo AICc con efectos fijos de tiempo",
                                 "Estimación principal - Modelo BIC con efectos fijos de tiempo",
                                 "Estimación principal - Promedio modelos AICc y BIC")
    names(pronosticos_int)<-c("Predicción para Costa Rica")
    # Visualización
    DT::datatable(pronosticos_int, caption = "Comisión de intercambio esperada para Costa Rica de acuerdo con la estimación principal")

    #Ajustando el modelo Sin transformación logarítmica de la variable respuesta:
    #Con regulación
    pred_log_int_con_reg=mean(pred_log_int_con_cont_con_reg_aicc,
                              pred_log_int_con_cont_con_reg_aicc_ef,
                              pred_log_int_con_cont_con_reg_bic,
                              pred_log_int_con_cont_con_reg_bic_ef)

    #Ajustando el modelo Con transformación logarítmica de la variable respuesta:
    #Con regulación
    pred_log_int_con_reg=mean(c(pred_log_int_con_cont_con_reg_aicc,
                                pred_log_int_con_cont_con_reg_aicc_ef,
                                pred_log_int_con_cont_con_reg_bic,
                                pred_log_int_con_cont_con_reg_bic_ef)
                              )

    #Ajustando el modelo con datos de una Muestra de países que cuentan con regulación de intercambio:
    # promedio intercambio regulados restringido
    pred_int_reg=mean(c(pred_int_reg_con_cont_aicc,
                        pred_int_reg_con_cont_bic,
                        pred_int_reg_con_cont_ef_aicc,
                        pred_int_reg_con_cont_ef_bic)
                      )

    pred_log_int_con_cont_ef_sin_reg <- round(mean(c(pred_log_int_con_cont_sin_reg_aicc_ef,
                                                     pred_log_int_con_cont_sin_reg_bic_ef)),3)
    pred_log_int_con_cont_ef_con_reg <- round(mean(c(pred_log_int_con_cont_con_reg_aicc_ef,
                                                     pred_log_int_con_cont_con_reg_bic_ef)),3)

    #Tabla pronósticos alternativos con log
    pronosticos_int_alt_log<-round(as.data.frame(cbind(#c( #pred_log_int_sin_cont_sin_reg,
                                                          #pred_log_int_con_cont_sin_reg,
                                                          #pred_log_int_con_cont_ef_sin_reg,
                                                          #pred1_log_int_sin_reg,
                                                          #pred2_log_int_sin_reg,
                                                          #pred3_log_int_sin_reg,
                                                          #pred4_log_int_sin_reg,
                                                          #pred_log_int_sin_reg),
                                                       c( #pred_log_int_sin_cont_con_reg,
                                                          #pred_log_int_con_cont_con_reg,
                                                          #pred_log_int_con_cont_ef_con_reg,
                                                          pred1_log_int_con_reg,
                                                          pred2_log_int_con_reg,
                                                          pred3_log_int_con_reg,
                                                          pred4_log_int_con_reg,
                                                          pred_log_int_con_reg) )),3)

    rownames(pronosticos_int_alt_log)<-c(
                                         "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Promedio modelos AICc y BIC")
    names(pronosticos_int_alt_log)<-c("Predicción para Costa Rica")
    # Visualización
    DT::datatable(pronosticos_int_alt_log, caption = "Comisión de intercambio esperada para Costa Rica de acuerdo con el modelo con transformación logarítmica")

    #Tabla pronósticos alternativos solo muestra regulados
    pronosticos_int_alt_reg<-round(as.data.frame(cbind(c(
      #pred_int_reg_con_cont,
      #pred_int_reg_con_cont_ef,
      pred1_int_reg, pred2_int_reg,
      pred3_int_reg,
      pred4_int_reg,
      pred_int_reg) ) ), 3)

    rownames(pronosticos_int_alt_reg)<-c(
      #"Modelo con controles sin efectos fijos de tiempo",
      #"Modelo con controles con efectos fijos de tiempo",
      "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
      "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
      "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
      "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
      "Restringuido a países con regulación - Promedio modelos AICc y BIC")
    names(pronosticos_int_alt_reg)<-c("Pronóstico con solo muestra  de países regulados")

    # Visualización
    DT::datatable(pronosticos_int_alt_reg, caption = "Comisión de intercambio esperada para Costa Rica al restringir a países con regulación")

    #Pronósticos sin logaritmo toda la muestra sin EEE
    # Sin regulación
    pred_int_sin_cont_sin_EEE_sin_reg<-predict(modelo_int_sin_cont_sin_EEE, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_con_cont_sin_EEE_sin_reg<-predict(modelo_int_con_cont_sin_EEE, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_con_cont_sin_EEE_ef_sin_reg<-predict(modelo_int_con_cont_sin_EEE_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Con regulación
    pred_int_sin_cont_sin_EEE_con_reg<-predict(modelo_int_sin_cont_sin_EEE, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_con_cont_sin_EEE_con_reg<-predict(modelo_int_con_cont_sin_EEE, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_con_cont_sin_EEE_ef_con_reg<-predict(modelo_int_con_cont_sin_EEE_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Predicción con dicotómica sin regulación
    pred1_int_sin_EEE_sin_reg <-predict(modelo_int_con_cont_sin_EEE_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred2_int_sin_EEE_sin_reg<-predict(modelo_int_con_cont_sin_EEE_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred3_int_sin_EEE_sin_reg<-predict(modelo_int_con_cont_sin_EEE_aicc_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred4_int_sin_EEE_sin_reg<-predict(modelo_int_con_cont_sin_EEE_bic_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_sin_EEE_sin_reg<-mean(c(as.numeric(pred1_int_sin_EEE_sin_reg),
                                     as.numeric(pred2_int_sin_EEE_sin_reg),
                                     as.numeric(pred3_int_sin_EEE_sin_reg),
                                     as.numeric(pred4_int_sin_EEE_sin_reg)))

    #Predicción con dicotómica con regulación
    pred1_int_sin_EEE_con_reg <-predict(modelo_int_con_cont_sin_EEE_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred2_int_sin_EEE_con_reg<-predict(modelo_int_con_cont_sin_EEE_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred3_int_sin_EEE_con_reg<-predict(modelo_int_con_cont_sin_EEE_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred4_int_sin_EEE_con_reg<-predict(modelo_int_con_cont_sin_EEE_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    pred_int_sin_EEE_con_reg<-mean(c(as.numeric(pred1_int_sin_EEE_con_reg), as.numeric(pred2_int_sin_EEE_con_reg), as.numeric(pred3_int_sin_EEE_con_reg), as.numeric(pred4_int_sin_EEE_con_reg)))

    #Tabla pronósticos sin EEE
    pronosticos_int_sin_EEE<-round(as.data.frame(cbind(
      #c( #pred_int_sin_cont_sin_EEE_sin_reg,
         #pred_int_con_cont_sin_EEE_sin_reg,
         #pred_int_con_cont_sin_EEE_ef_sin_reg,
         #pred1_int_sin_EEE_sin_reg,
         #pred2_int_sin_EEE_sin_reg,
         #pred3_int_sin_EEE_sin_reg,
         #pred4_int_sin_EEE_sin_reg,
         #pred_int_sin_EEE_sin_reg),
      c( #pred_int_sin_cont_sin_EEE_con_reg,
         #pred_int_con_cont_sin_EEE_con_reg,
         #pred_int_con_cont_sin_EEE_ef_con_reg,
         pred1_int_sin_EEE_con_reg,
         pred2_int_sin_EEE_con_reg,
         pred3_int_sin_EEE_con_reg,
         pred4_int_sin_EEE_con_reg,
         pred_int_sin_EEE_con_reg) )),3)

    rownames(pronosticos_int_sin_EEE)<-c(#"Modelo sin controles sin EEE",
                                         #"Modelo con controles sin efectos fijos de tiempo sin EEE",
                                         #"Modelo con controles con efectos fijos de tiempo sin EEE",
                                         "Sin el EEE - Modelo AICc sin efectos fijos de tiempo",
                                         "Sin el EEE - Modelo BIC sin efectos fijos de tiempo",
                                         "Sin el EEE - Modelo AICc con efectos fijos de tiempo",
                                         "Sin el EEE - Modelo BIC con efectos fijos de tiempo",
                                         "Sin el EEE - Promedio modelos AICc y BIC")
    names(pronosticos_int_sin_EEE)<-c("Predicción para Costa Rica")

    # Visualización
    DT::datatable(pronosticos_int_sin_EEE, caption = "Comisión de intercambio esperada para Costa Rica sin considerar al EEE")

## 2.10 Ampliar la definición de regulación

En el análisis principal, la variable regulación hace referencia a regulación en las comisiones de intercambio. Esto se debe a que son relativamente pocos los países que regulan adquirencia. Sin embargo, es posible generar una variable dicotómica que haga referencia a que el país en cuestión tiene regulación sobre intercambio o adquirencia.

    # Creaci{on de la variable de regulación ampliada
    datos<-datos %>% mutate( Regulacion_inter_adq = if_else(datos$Regulacion_intercambio==1 | Regulacion_adquirencia == 1
                                                           ,1,0)
    )
    table(datos$Regulacion_inter_adq)

    ##
    ##   0   1
    ##  96 117

    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_inter_adq") ]<-1

- Selección de variables con AICc:

    # Selección con AICc
    datos_int<-datos %>% dplyr::select(-Adquirencia) %>% na.omit()
    # Estimación modelo
    modelo_int_con_cont_aicc_ampli<-lm(formula = Intercambio ~ Regulacion_inter_adq + Cajero_Autom +
                                   Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                   Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_inter_adq", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_aicc_ampli)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 13
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 8
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    ## [1] "El criterio deja las siguientes variables: 'Regulacion_inter_adq' "
    ## [2] "El criterio deja las siguientes variables: 'Cuenta' "
    ## [3] "El criterio deja las siguientes variables: 'Credito' "
    ## [4] "El criterio deja las siguientes variables: 'Asia_Este' "
    ## [5] "El criterio deja las siguientes variables: 'Am_lat' "

    # Estimación
    modelo_int_con_cont_aicc_ampli=lm(Intercambio ~ Regulacion_inter_adq + Cuenta + Credito + Asia_Este + Am_lat,datos_int)
    #Pronóstico para CR
    #Sin regulación
    pred_int_con_cont_aicc_sin_reg_ampli<-predict(modelo_int_con_cont_aicc_ampli, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_con_cont_aicc_con_reg_ampli<-predict(modelo_int_con_cont_aicc_ampli, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    modelo_int_con_cont_aicc_ampli_corr_hc<-coeftest(modelo_int_con_cont_aicc_ampli, vcov. = vcovHC(modelo_int_con_cont_aicc_ampli, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_aicc_ampli_corr_hac<-coeftest(modelo_int_con_cont_aicc_ampli, vcov. = vcovHAC(modelo_int_con_cont_aicc_ampli, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_con_cont_aicc_ampli, modelo_int_con_cont_aicc_ampli_corr_hc, type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.602*** | -0.602***
| (0.056) | (0.063)
Cuenta | -0.014*** | -0.014***
| (0.002) | (0.003)
Credito | 0.006*** | 0.006***
| (0.002) | (0.002)
Asia_Este | 0.501*** | 0.501***
| (0.089) | (0.075)
Am_lat | 0.556*** | 0.556***
| (0.082) | (0.089)
Constant | 2.062*** | 2.062***
| (0.171) | (0.193)
Observations | 149 |
R2 | 0.737 |
Adjusted R2 | 0.728 |
Residual Std. Error | 0.320 (df = 143) |
F Statistic | 80.197*** (df = 5; 143) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables con BIC:

    # Selección con AICc
    datos_int<-datos %>% dplyr::select(-Adquirencia) %>% na.omit()
    #modelo inicial
    modelo_int_con_cont_bic_ampli<-lm(Intercambio ~ Regulacion_inter_adq + Cajero_Autom +
                                  Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                  Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                  Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_inter_adq", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # método BIC
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_con_cont_bic_ampli)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 14
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 9
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }

    #min(BIC)<BIC[1]
    #Ya no se eliminan columnas
    controles2<-controles
    print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    ## [1] "Las variables que seleccionó el criterio son: Regulacion_inter_adq"
    ## [2] "Las variables que seleccionó el criterio son: Cuenta"
    ## [3] "Las variables que seleccionó el criterio son: Credito"
    ## [4] "Las variables que seleccionó el criterio son: Asia_Este"
    ## [5] "Las variables que seleccionó el criterio son: Am_lat"

    # Estimación
    modelo_int_con_cont_bic_ampli=lm(Intercambio ~ Regulacion_inter_adq + Cuenta + Credito + Asia_Este + Am_lat,datos_int)
    #Pronóstico para CR
    #Con regulación
    pred_int_con_cont_bic_con_reg_ampli<-predict(modelo_int_con_cont_bic_ampli, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    modelo_int_con_cont_bic_ampli_corr_hc<-coeftest(modelo_int_con_cont_bic_ampli, vcov. = vcovHC(modelo_int_con_cont_bic_ampli, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_bic_ampli_corr_hac<-coeftest(modelo_int_con_cont_bic_ampli, vcov. = vcovHAC(modelo_int_con_cont_bic_ampli, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_int_con_cont_bic_ampli, modelo_int_con_cont_bic_ampli_corr_hc, type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.602*** | -0.602***
| (0.056) | (0.063)
Cuenta | -0.014*** | -0.014***
| (0.002) | (0.003)
Credito | 0.006*** | 0.006***
| (0.002) | (0.002)
Asia_Este | 0.501*** | 0.501***
| (0.089) | (0.075)
Am_lat | 0.556*** | 0.556***
| (0.082) | (0.089)
Constant | 2.062*** | 2.062***
| (0.171) | (0.193)
Observations | 149 |
R2 | 0.737 |
Adjusted R2 | 0.728 |
Residual Std. Error | 0.320 (df = 143) |
F Statistic | 80.197*** (df = 5; 143) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_int_con_cont_ef_aicc_amp<-lm(Intercambio ~ Regulacion_inter_adq + Año_2010 +
                                      Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                      Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                      Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                      Debito + Credito + Densidad_Pob + Densidad_Neg +
                                      PIB_pc_PPA + ICH + Valor_prom + Europa +
                                      Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_inter_adq", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022", "Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de años + regulación
    cvar<-14
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_con_cont_ef_aicc_amp)

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 15
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 19
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))

    # Estimación del modelo:
    modelo_int_con_cont_ef_aicc_amp=lm(Intercambio ~ Regulacion_inter_adq + Cuenta + Credito + Asia_Este + Am_lat +
                                     Año_2013 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                     Año_2021 + Año_2022 + Año_2023,
                                   data = datos_int)

    modelo_int_con_cont_ef_aicc_amp_corr_hc<-coeftest(modelo_int_con_cont_ef_aicc_amp, vcov. = vcovHC(modelo_int_con_cont_ef_aicc_amp, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_ef_aicc_amp_corr_hac<-coeftest(modelo_int_con_cont_ef_aicc_amp, vcov. = vcovHAC(modelo_int_con_cont_ef_aicc_amp,
                                                                                                        adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_int_con_cont_ef_aicc_amp, modelo_int_con_cont_ef_aicc_amp_corr_hc,type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.612*** | -0.612***
| (0.073) | (0.090)
Cuenta | -0.012*** | -0.012***
| (0.002) | (0.003)
Credito | 0.005** | 0.005***
| (0.002) | (0.002)
Asia_Este | 0.434*** | 0.434***
| (0.097) | (0.080)
Am_lat | 0.526*** | 0.526***
| (0.090) | (0.097)
Año_2013 | -0.076 | -0.076
| (0.155) | (0.143)
Año_2015 | 0.069 | 0.069
| (0.188) | (0.151)
Año_2016 | 0.189 | 0.189
| (0.177) | (0.222)
Año_2017 | -0.068 | -0.068
| (0.146) | (0.131)
Año_2018 | 0.049 | 0.049
| (0.165) | (0.143)
Año_2019 | 0.024 | 0.024
| (0.163) | (0.154)
Año_2020 | 0.087 | 0.087
| (0.155) | (0.139)
Año_2021 | 0.043 | 0.043
| (0.168) | (0.154)
Año_2022 | -0.066 | -0.066
| (0.172) | (0.144)
Año_2023 | 0.113 | 0.113
| (0.189) | (0.211)
Constant | 1.996*** | 1.996***
| (0.220) | (0.220)
Observations | 149 |
R2 | 0.751 |
Adjusted R2 | 0.723 |
Residual Std. Error | 0.323 (df = 133) |
F Statistic | 26.720*** (df = 15; 133) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    pred_modelo_int_con_cont_aicc_ef_amp_con_reg<-predict(modelo_int_con_cont_ef_aicc_amp, newdata = data_CR, interval = "prediction",
                                                         level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_int_con_cont_bic_ef_amp<-lm(Intercambio ~ Regulacion_inter_adq + Año_2010 + Año_2011 +
                                     Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
                                     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                     Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                     Debito + Credito + Densidad_Pob + Densidad_Neg +
                                     PIB_pc_PPA + ICH + Valor_prom + Europa +
                                     Asia_Este + Am_lat, datos_int)

    variables_controles<-c("Regulacion_inter_adq", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020", "Año_2021","Año_2022","Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables año y regulación
    cvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_con_cont_bic_ef_amp)

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]
    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+cvar+1)], datos_int))
    }
    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo
    modelo_int_con_cont_ef_bic=lm(Intercambio ~ Regulacion_inter_adq + Cuenta + Credito +
                                    Asia_Este + Am_lat + Año_2013 + Año_2015 + Año_2016 +
                                    Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                    Año_2022 + Año_2023,
                                  data = datos_int)

    modelo_int_con_cont_ef_bic_corr_hc<-coeftest(modelo_int_con_cont_ef_bic, vcov. = vcovHC(modelo_int_con_cont_ef_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_con_cont_ef_bic_corr_hac<-coeftest(modelo_int_con_cont_ef_bic, vcov. = vcovHAC(modelo_int_con_cont_ef_bic, adjust = TRUE, sandwich = TRUE))
    # Visualización de resultados
    stargazer(modelo_int_con_cont_ef_bic, modelo_int_con_cont_ef_bic_corr_hc,type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.612*** | -0.612***
| (0.073) | (0.090)
Cuenta | -0.012*** | -0.012***
| (0.002) | (0.003)
Credito | 0.005** | 0.005***
| (0.002) | (0.002)
Asia_Este | 0.434*** | 0.434***
| (0.097) | (0.080)
Am_lat | 0.526*** | 0.526***
| (0.090) | (0.097)
Año_2013 | -0.076 | -0.076
| (0.155) | (0.143)
Año_2015 | 0.069 | 0.069
| (0.188) | (0.151)
Año_2016 | 0.189 | 0.189
| (0.177) | (0.222)
Año_2017 | -0.068 | -0.068
| (0.146) | (0.131)
Año_2018 | 0.049 | 0.049
| (0.165) | (0.143)
Año_2019 | 0.024 | 0.024
| (0.163) | (0.154)
Año_2020 | 0.087 | 0.087
| (0.155) | (0.139)
Año_2021 | 0.043 | 0.043
| (0.168) | (0.154)
Año_2022 | -0.066 | -0.066
| (0.172) | (0.144)
Año_2023 | 0.113 | 0.113
| (0.189) | (0.211)
Constant | 1.996*** | 1.996***
| (0.220) | (0.220)
Observations | 149 |
R2 | 0.751 |
Adjusted R2 | 0.723 |
Residual Std. Error | 0.323 (df = 133) |
F Statistic | 26.720*** (df = 15; 133) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    pred_modelo_int_con_cont_bic_ef_amp_con_reg<-predict(modelo_int_con_cont_ef_bic, newdata = data_CR, interval = "prediction",
                                                         level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

## 2.11 Regresión sin variables uso de tarjetas

A continuación se muestran los modelos para tasa de intercambio sin considerar las variables control relacionadas con tarjetas. Siguiendo la metodología anterior, se procede a seleccionar las variables con los criterios de información AICc y BIC.

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # Selección con AICc
    variables_controles<-c("Regulacion_intercambio","Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Europa", "Asia_Este", "Am_lat")
    datos_int<-datos %>% dplyr::select(c("Intercambio",variables_controles)) %>% na.omit()
    #dim(datos_int)
    # Estimación modelo inicial
    modelo_int_sin_tarj_aicc<-lm(Intercambio ~ Regulacion_intercambio + Crimen + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =  datos_int)
    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_sin_tarj_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_int_sin_tarj_aicc<-lm(Intercambio ~ Regulacion_intercambio + Crimen + Densidad_Neg + Europa + Asia_Este + Am_lat, data =  datos_int)
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_int_sin_tarj_aicc_sin_reg<-predict(modelo_int_sin_tarj_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_sin_tarj_aicc_con_reg<-predict(modelo_int_sin_tarj_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Errores robustos
    modelo_int_sin_tarj_aicc_corr_hc<-coeftest(modelo_int_sin_tarj_aicc, vcov. = vcovHC(modelo_int_sin_tarj_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_tarj_aicc_corr_hac<-coeftest(modelo_int_sin_tarj_aicc, vcov. = vcovHAC(modelo_int_sin_tarj_aicc, adjust = TRUE, sandwich = TRUE))

    # Visualización
    #summary(modelo_int_sin_tarj_aicc)
    stargazer(modelo_int_sin_tarj_aicc,modelo_int_sin_tarj_aicc_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.608*** | -0.608***
| (0.055) | (0.057)
Crimen | -0.00005* | -0.00005*
| (0.00003) | (0.00003)
Densidad_Neg | -0.014** | -0.014***
| (0.007) | (0.005)
Europa | -0.159* | -0.159***
| (0.083) | (0.059)
Asia_Este | 0.347*** | 0.347***
| (0.113) | (0.087)
Am_lat | 0.602*** | 0.602***
| (0.094) | (0.080)
Constant | 1.368*** | 1.368***
| (0.094) | (0.080)
Observations | 165 |
R2 | 0.708 |
Adjusted R2 | 0.697 |
Residual Std. Error | 0.328 (df = 158) |
F Statistic | 63.766*** (df = 6; 158) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    # Selección con BIC
    variables_controles<-c("Regulacion_intercambio","Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Europa", "Asia_Este", "Am_lat")
    datos_int<-datos %>% dplyr::select(c("Intercambio",variables_controles)) %>% na.omit()

    # Estimación modelo inicial
    modelo_int_sin_tarj_bic<-lm(Intercambio ~ Regulacion_intercambio + Crimen + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =  datos_int)
    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_sin_tarj_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]
    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i)], datos_int))
    }
    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_int_sin_tarj_bic<-lm(Intercambio ~ Regulacion_intercambio + Densidad_Neg + Asia_Este + Am_lat, data =  datos_int)
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_int_sin_tarj_bic_sin_reg<-predict(modelo_int_sin_tarj_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_sin_tarj_bic_con_reg<-predict(modelo_int_sin_tarj_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Errores robustos
    modelo_int_sin_tarj_bic_corr_hc<-coeftest(modelo_int_sin_tarj_bic, vcov. = vcovHC(modelo_int_sin_tarj_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_tarj_bic_corr_hac<-coeftest(modelo_int_sin_tarj_bic, vcov. = vcovHAC(modelo_int_sin_tarj_bic, adjust = TRUE, sandwich = TRUE))

    # Visualización
    #summary(modelo_int_sin_tarj_BIC)
    stargazer(modelo_int_sin_tarj_bic, modelo_int_sin_tarj_bic_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.591*** | -0.591***
| (0.055) | (0.057)
Densidad_Neg | -0.018*** | -0.018***
| (0.006) | (0.005)
Asia_Este | 0.476*** | 0.476***
| (0.093) | (0.079)
Am_lat | 0.760*** | 0.760***
| (0.063) | (0.072)
Constant | 1.184*** | 1.184***
| (0.055) | (0.062)
Observations | 165 |
R2 | 0.695 |
Adjusted R2 | 0.688 |
Residual Std. Error | 0.333 (df = 160) |
F Statistic | 91.202*** (df = 4; 160) |
Note: | p<0.1; p<0.05; p<0.01

A continuación se presentan los resultados de usar los criterios de información AICc y BIC incluyendo efectos fijos en los modelos:

- Selección de variables mediante AICc con efectos fijos de tiempo:

    # Selección con AICc
    variables_controles<-c("Regulacion_intercambio","Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022", "Año_2023",
                           "Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA",
                           "ICH", "Europa", "Asia_Este", "Am_lat")

    datos_int<-datos %>% dplyr::select(c("Intercambio",variables_controles)) %>% na.omit()
    # Estimación modelo inicial
    modelo_int_sin_tarj_aicc_ef<-lm(Intercambio ~ Regulacion_intercambio  + Año_2010 +
                                   Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                   Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                   Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                   Crimen + Densidad_Pob + Densidad_Neg +
                                   PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =  datos_int)

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables
    nvar<-13
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_int_sin_tarj_aicc_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    min(AICC)<AICC[1]

[1] FALSE

    # El AICc ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo:
    modelo_int_sin_tarj_aicc_ef<-lm(Intercambio ~ Regulacion_intercambio  + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 + Densidad_Neg +
                                      Asia_Este + Am_lat, data =  datos_int)
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_int_sin_tarj_aicc_ef_sin_reg<-predict(modelo_int_sin_tarj_aicc_ef, newdata = datos, interval = "prediction",
                                            level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_sin_tarj_aicc_ef_con_reg<-predict(modelo_int_sin_tarj_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Errores robustos
    modelo_int_sin_tarj_aicc_ef_corr_hc<-coeftest(modelo_int_sin_tarj_aicc_ef, vcov. = vcovHC(modelo_int_sin_tarj_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_tarj_aicc_ef_corr_hac<-coeftest(modelo_int_sin_tarj_aicc_ef, vcov. = vcovHAC(modelo_int_sin_tarj_aicc_ef, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_int_sin_tarj_aicc_ef, modelo_int_sin_tarj_aicc_ef_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.642*** | -0.642***
| (0.069) | (0.080)
Año_2011 | 0.494 | 0.494**
| (0.384) | (0.243)
Año_2012 | 0.280 | 0.280
| (0.406) | (0.248)
Año_2013 | 0.185 | 0.185*
| (0.342) | (0.097)
Año_2014 | 0.360 | 0.360***
| (0.356) | (0.117)
Año_2015 | 0.479 | 0.479***
| (0.354) | (0.144)
Año_2016 | 0.511 | 0.511***
| (0.351) | (0.170)
Año_2017 | 0.265 | 0.265**
| (0.341) | (0.114)
Año_2018 | 0.452 | 0.452***
| (0.347) | (0.129)
Año_2019 | 0.427 | 0.427***
| (0.345) | (0.129)
Año_2020 | 0.434 | 0.434***
| (0.343) | (0.102)
Año_2021 | 0.340 | 0.340***
| (0.347) | (0.112)
Año_2022 | 0.254 | 0.254**
| (0.352) | (0.118)
Año_2023 | 0.480 | 0.480***
| (0.362) | (0.165)
Densidad_Neg | -0.013** | -0.013**
| (0.006) | (0.005)
Asia_Este | 0.382*** | 0.382***
| (0.099) | (0.082)
Am_lat | 0.697*** | 0.697***
| (0.072) | (0.077)
Constant | 0.877** | 0.877***
| (0.338) | (0.080)
Observations | 165 |
R2 | 0.725 |
Adjusted R2 | 0.693 |
Residual Std. Error | 0.330 (df = 147) |
F Statistic | 22.778*** (df = 17; 147) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    # Selección con BIC
    variables_controles<-c("Regulacion_intercambio","Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022","Año_2023",
                           "Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA",
                           "ICH", "Europa", "Asia_Este", "Am_lat")

    datos_int<-datos %>% dplyr::select(c("Intercambio",variables_controles)) %>% na.omit()

    # Estimación modelo inicial
    modelo_int_sin_tarj_bic_ef<-lm(Intercambio ~ Regulacion_intercambio  + Año_2010 +
                                      Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                      Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                      Crimen + Densidad_Pob + Densidad_Neg +
                                      PIB_pc_PPA + ICH + Europa + Asia_Este +
                                      Am_lat, data =  datos_int)

    controles<- datos_int %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables
    nvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_int_sin_tarj_bic_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Intercambio ~ controles, datos_int))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Intercambio ~ controles[,-c(i+nvar+1)], datos_int))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo:
    modelo_int_sin_tarj_bic_ef<-lm(Intercambio ~ Regulacion_intercambio  + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 + Asia_Este + Am_lat,
                                   data =  datos_int)
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_int_sin_tarj_bic_ef_sin_reg<-predict(modelo_int_sin_tarj_bic_ef, newdata = datos, interval = "prediction",
                                               level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_int_sin_tarj_bic_ef_con_reg<-predict(modelo_int_sin_tarj_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Errores robustos
    modelo_int_sin_tarj_bic_ef_corr_hc<-coeftest(modelo_int_sin_tarj_bic_ef, vcov. = vcovHC(modelo_int_sin_tarj_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_int_sin_tarj_bic_ef_corr_hac<-coeftest(modelo_int_sin_tarj_bic_ef, vcov. = vcovHAC(modelo_int_sin_tarj_bic_ef, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_int_sin_tarj_bic_ef, modelo_int_sin_tarj_bic_ef_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio","Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.644*** | -0.644***
| (0.069) | (0.082)
Año_2011 | 0.498 | 0.498**
| (0.388) | (0.244)
Año_2012 | 0.291 | 0.291
| (0.410) | (0.253)
Año_2013 | 0.167 | 0.167*
| (0.346) | (0.098)
Año_2014 | 0.380 | 0.380***
| (0.360) | (0.112)
Año_2015 | 0.485 | 0.485***
| (0.357) | (0.141)
Año_2016 | 0.515 | 0.515***
| (0.355) | (0.172)
Año_2017 | 0.248 | 0.248**
| (0.345) | (0.113)
Año_2018 | 0.461 | 0.461***
| (0.351) | (0.130)
Año_2019 | 0.433 | 0.433***
| (0.348) | (0.130)
Año_2020 | 0.451 | 0.451***
| (0.347) | (0.104)
Año_2021 | 0.340 | 0.340***
| (0.351) | (0.112)
Año_2022 | 0.232 | 0.232**
| (0.355) | (0.108)
Año_2023 | 0.505 | 0.505***
| (0.366) | (0.179)
Asia_Este | 0.324*** | 0.324***
| (0.096) | (0.078)
Am_lat | 0.718*** | 0.718***
| (0.072) | (0.079)
Constant | 0.822** | 0.822***
| (0.341) | (0.079)
Observations | 165 |
R2 | 0.717 |
Adjusted R2 | 0.687 |
Residual Std. Error | 0.333 (df = 148) |
F Statistic | 23.457*** (df = 16; 148) |
Note: | p<0.1; p<0.05; p<0.01

## 2.12 Regresión con variables instrumentales:

    datos_int<-datos %>% dplyr::select(-Adquirencia) %>% na.omit()
    #Sin los efectos del tiempo:
    modelo_iv_int<-ivreg(formula = Intercambio ~ Valor_prom + Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg +  PIB_pc_PPA + Europa + Asia_Este + Am_lat | Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat + ICH, data = datos_int)

    # Prueba de Hausman:
    # Al realizar la prueba de Hausman vemos que el valor en p-value es menor a 0.05,lo cual aceptamos la hipótesis alternativa, esto quiere decir que existe endogenidad.
    #summary(modelo_iv_int, diagnostics = TRUE)
    # Errores robustos
    modelo_iv_int_corr_hc<-coeftest(modelo_iv_int, vcov. = vcovHC(modelo_iv_int, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_iv_int_corr_hac<-coeftest(modelo_iv_int, vcov. = vcovHAC(modelo_iv_int, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_iv_int, modelo_iv_int_corr_hc, type = "html",
              title = "Regresión sobre la tasa de intercambio variables instrumentales",
              column.labels = c("Instrumental","Instrumental HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Regresión sobre la tasa de intercambio variables instrumentales
| Variable dependiente
| Tasa intercambio | Tasa intercambio
| Instrumental | Instrumental HC
| (1) | (2)
Valor_prom | 0.004 | 0.004
| (0.008) | (0.009)
Regulacion_intercambio | -0.598*** | -0.598***
| (0.109) | (0.150)
Crimen | 0.00000 | 0.00000
| (0.0001) | (0.0002)
Densidad_Pob | -0.0004 | -0.0004
| (0.0005) | (0.001)
Densidad_Neg | -0.008 | -0.008
| (0.011) | (0.013)
PIB_pc_PPA | 0.00000 | 0.00000
| (0.00000) | (0.00000)
Europa | -0.326 | -0.326
| (0.229) | (0.237)
Asia_Este | 0.068 | 0.068
| (0.450) | (0.573)
Am_lat | 0.531*** | 0.531***
| (0.182) | (0.161)
Constant | 1.158 | 1.158
| (0.719) | (0.795)
Observations | 149 |
R2 | 0.626 |
Adjusted R2 | 0.601 |
Residual Std. Error | 0.387 (df = 139) |
Note: | p<0.1; p<0.05; p<0.01

    #Como la probabilidad asociada es menor al nivel de significancia de la prueba de Wu-Hausman, determina que hay #endogenidad. Es decir, hay correlación entre las variables y el término de error y por lo tanto, la variable ICH #no es un instrumento débil.
    #Pronósticos para Costa Rica
    #Con regulación
    # data_CR: se le asigna a CR la regulación.
    pred_iv_int_con_reg <- predict(modelo_iv_int, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    # Agregando efectos fijos de tiempo:
    modelo_iv_int_ef<-ivreg(formula = Intercambio ~ Valor_prom + Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg +  PIB_pc_PPA + Europa + Asia_Este + Am_lat + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 | Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat + ICH + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023, data = datos)

    # Prueba de Hausman:
    # Al realizar la prueba de Hausman vemos que el valor en p-value es menor a 0.05,lo cual aceptamos la hipótesis alternativa, esto quiere decir que existe endogenidad.
    #summary(modelo_iv_int_ef, diagnostics = TRUE)

    #coeftest(modelo_iv_int_ef, vcov.=vcovHAC(modelo_iv_int_ef))

    # Errores robustos
    modelo_iv_int_ef_corr_hc<-coeftest(modelo_iv_int_ef, vcov. = vcovHC(modelo_iv_int_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_iv_int_ef_corr_hac<-coeftest(modelo_iv_int_ef, vcov. = vcovHAC(modelo_iv_int_ef, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_iv_int_ef, modelo_iv_int_ef_corr_hc, type = "html",
              title = "Regresión sobre la tasa de intercambio variables instrumentales con efectos fijos de tiempo",
              column.labels = c("Instrumental","Instrumental HC"), model.names = F,
              dep.var.labels = c("Tasa intercambio", "Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

    ##
    ## <table style="text-align:center"><caption><strong>Regresión sobre la tasa de intercambio variables instrumentales con efectos fijos de tiempo</strong></caption>
    ## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="2">Variable dependiente</td></tr>
    ## <tr><td></td><td colspan="2" style="border-bottom: 1px solid black"></td></tr>
    ## <tr><td style="text-align:left"></td><td>Tasa intercambio</td><td>Tasa intercambio</td></tr>
    ## <tr><td style="text-align:left"></td><td>Instrumental</td><td>Instrumental HC</td></tr>
    ## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td></tr>
    ## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Valor_prom</td><td>0.002</td><td>0.002</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.007)</td><td>(0.008)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Regulacion_intercambio</td><td>-0.648<sup>***</sup></td><td>-0.648<sup>***</sup></td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.132)</td><td>(0.185)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Crimen</td><td>-0.00000</td><td>-0.00000</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.0001)</td><td>(0.0001)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Densidad_Pob</td><td>-0.0003</td><td>-0.0003</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.0004)</td><td>(0.0004)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Densidad_Neg</td><td>-0.008</td><td>-0.008</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.009)</td><td>(0.010)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">PIB_pc_PPA</td><td>0.00000</td><td>0.00000</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.00000)</td><td>(0.00000)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Europa</td><td>-0.182</td><td>-0.182</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.159)</td><td>(0.170)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Asia_Este</td><td>0.188</td><td>0.188</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.311)</td><td>(0.394)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Am_lat</td><td>0.585<sup>***</sup></td><td>0.585<sup>***</sup></td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.223)</td><td>(0.217)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2012</td><td>-0.540</td><td>-0.540<sup>***</sup></td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.387)</td><td>(0.180)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2013</td><td>-0.273</td><td>-0.273</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.259)</td><td>(0.226)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2014</td><td>-0.279</td><td>-0.279</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.754)</td><td>(0.757)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2015</td><td>-0.037</td><td>-0.037</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.335)</td><td>(0.290)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2016</td><td>0.0004</td><td>0.0004</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.297)</td><td>(0.268)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2017</td><td>-0.210</td><td>-0.210</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.320)</td><td>(0.280)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2018</td><td>-0.070</td><td>-0.070</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.274)</td><td>(0.228)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2019</td><td>-0.078</td><td>-0.078</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.243)</td><td>(0.198)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2020</td><td>-0.068</td><td>-0.068</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.194)</td><td>(0.181)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2021</td><td>-0.133</td><td>-0.133</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.189)</td><td>(0.193)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2022</td><td>-0.244</td><td>-0.244</td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.237)</td><td>(0.191)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Año_2023</td><td></td><td></td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td style="text-align:left">Constant</td><td>1.388<sup>**</sup></td><td>1.388<sup>*</sup></td></tr>
    ## <tr><td style="text-align:left"></td><td>(0.654)</td><td>(0.800)</td></tr>
    ## <tr><td style="text-align:left"></td><td></td><td></td></tr>
    ## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>150</td><td></td></tr>
    ## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.721</td><td></td></tr>
    ## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.678</td><td></td></tr>
    ## <tr><td style="text-align:left">Residual Std. Error</td><td>0.348 (df = 129)</td><td></td></tr>
    ## <tr><td colspan="3" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="2" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
    ## </table>

    #Pronósticos para Costa Rica
    #Con regulación
    # data_CR: se le asigna a CR la regulación.
    pred_iv_int_ef_con_reg <- predict(modelo_iv_int_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]

## 2.13 Modelo de panel de datos con efectos aleatorios

A continuación modelo seleccionado con el AICc:

    # se usa el modelo seleccionado por el AICC
    modelo_int_con_cont_aicc_ef_al<-lmer(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat + (1 | Codigo_Pais),
                                         data = datos_int )

    #summary(modelo_int_con_cont_aicc_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_int_con_cont_aicc_ef_al)

    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_int_con_cont_aicc_ef_al@frame)[2:(length(names(modelo_int_con_cont_aicc_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_int_con_cont_aicc_ef_al<-sum(resultado$coefficients*Caso_CR)
    #pre_int_con_cont_aicc_ef_al

    # Visualización
    stargazer(modelo_int_con_cont_aicc_ef_al, type = "html",
              title = "Modelo efectos aleatorios - AICc sin efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios AICc"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios AICc
Regulacion_intercambio | -0.658***
| (0.042)
Cuenta | -0.013***
| (0.003)
Credito | 0.007***
| (0.002)
Asia_Este | 0.575***
| (0.150)
Am_lat | 0.616***
| (0.127)
Constant | 2.000***
| (0.179)
Observations | 149
Log Likelihood | -17.970
Akaike Inf. Crit. | 51.940
Bayesian Inf. Crit. | 75.971
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con el BIC:

    # se usa el modelo seleccionado por el BIC
    modelo_int_con_cont_bic_ef_al<-lmer(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat + (1 | Codigo_Pais),
                                         data = datos_int )

    #summary(modelo_int_con_cont_bic_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_int_con_cont_bic_ef_al)

    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_int_con_cont_bic_ef_al@frame)[2:(length(names(modelo_int_con_cont_bic_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_int_con_cont_bic_ef_al<-sum(resultado$coefficients*Caso_CR)
    #pre_int_con_cont_bic_ef_al

    # Visualización
    stargazer(modelo_int_con_cont_bic_ef_al, type = "html",
              title = "Modelo efectos aleatorios - BIC sin efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios BIC"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios BIC
Regulacion_intercambio | -0.658***
| (0.042)
Cuenta | -0.013***
| (0.003)
Credito | 0.007***
| (0.002)
Asia_Este | 0.575***
| (0.150)
Am_lat | 0.616***
| (0.127)
Constant | 2.000***
| (0.179)
Observations | 149
Log Likelihood | -17.970
Akaike Inf. Crit. | 51.940
Bayesian Inf. Crit. | 75.971
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con AICc y efectos fijos de tiempo:

    # se usa el modelo seleccionado por el AICC y variables de tiempo
    modelo_int_con_cont_aicc_tiem_ef_al<-lmer(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat +
                                          Año_2013 + Año_2014 + Año_2015 +  Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                          Año_2021 + Año_2022 + Año_2023 + (1 | Codigo_Pais),
                                         data = datos_int )

    summary(modelo_int_con_cont_aicc_tiem_ef_al)

Linear mixed model fit by REML [‘lmerMod’] Formula: Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este +
Am_lat + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
Año_2022 + Año_2023 + (1 | Codigo_Pais) Data: datos_int

REML criterion at convergence: 65.8

Scaled residuals: Min 1Q Median 3Q Max -2.0630 -0.4330 -0.0190 0.3871 2.7483

Random effects: Groups Name Variance Std.Dev. Codigo_Pais (Intercept) 0.05923 0.2434
Residual 0.03718 0.1928
Number of obs: 149, groups: Codigo_Pais, 53

Fixed effects: Estimate Std. Error t value (Intercept) 1.975947 0.212847 9.283 Regulacion_intercambio -0.674704 0.071640 -9.418 Cuenta -0.012626 0.002750 -4.591 Credito 0.006740 0.002501 2.695 Asia_Este 0.542499 0.153347 3.538 Am_lat 0.577294 0.129584 4.455 Año_2013 -0.032639 0.133955 -0.244 Año_2014 0.052976 0.135425 0.391 Año_2015 0.068093 0.131375 0.518 Año_2016 0.111829 0.125012 0.895 Año_2017 -0.004985 0.109264 -0.046 Año_2018 0.062065 0.117779 0.527 Año_2019 0.046366 0.116008 0.400 Año_2020 0.046448 0.115801 0.401 Año_2021 0.063944 0.119618 0.535 Año_2022 0.040599 0.119857 0.339 fit warnings: fixed-effect model matrix is rank deficient so dropping 1 column / coefficient

    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_int_con_cont_aicc_tiem_ef_al)

    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_int_con_cont_aicc_tiem_ef_al@frame)[2:(length(names(modelo_int_con_cont_aicc_tiem_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_int_con_cont_aicc_tiem_ef_al<-sum(resultado$coefficients*Caso_CR)
    #pre_int_con_cont_aicc_tiem_ef_al

    # Visualización
    stargazer(modelo_int_con_cont_aicc_tiem_ef_al, type = "html",
              title = "Modelo efectos aleatorios - AICc con efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios AICc"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios AICc
Regulacion_intercambio | -0.675***
| (0.072)
Cuenta | -0.013***
| (0.003)
Credito | 0.007***
| (0.003)
Asia_Este | 0.542***
| (0.153)
Am_lat | 0.577***
| (0.130)
Año_2013 | -0.033
| (0.134)
Año_2014 | 0.053
| (0.135)
Año_2015 | 0.068
| (0.131)
Año_2016 | 0.112
| (0.125)
Año_2017 | -0.005
| (0.109)
Año_2018 | 0.062
| (0.118)
Año_2019 | 0.046
| (0.116)
Año_2020 | 0.046
| (0.116)
Año_2021 | 0.064
| (0.120)
Año_2022 | 0.041
| (0.120)
Constant | 1.976***
| (0.213)
Observations | 149
Log Likelihood | -32.914
Akaike Inf. Crit. | 101.828
Bayesian Inf. Crit. | 155.899
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con BIC y efectos fijos de tiempo:

    # se usa el modelo seleccionado por el BIC y variables de tiempo
    modelo_int_con_cont_bic_tiem_ef_al<-lmer(Intercambio ~ Regulacion_intercambio + Cuenta + Credito + Asia_Este + Am_lat +
                                               Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                               Año_2021 + Año_2022 + Año_2023 + (1 | Codigo_Pais),
                                             data = datos_int)

    #summary(modelo_int_con_cont_bic_tiem_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_int_con_cont_bic_tiem_ef_al)

    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_int_con_cont_bic_tiem_ef_al@frame)[2:(length(names(modelo_int_con_cont_bic_tiem_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_int_con_cont_bic_tiem_ef_al<-sum(resultado$coefficients*Caso_CR)
    #pre_int_con_cont_bic_tiem_ef_al
    # Visualización
    stargazer(modelo_int_con_cont_bic_tiem_ef_al, type = "html",
              title = "Modelo efectos aleatorios - BIC con efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios BIC"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios BIC
Regulacion_intercambio | -0.675***
| (0.072)
Cuenta | -0.013***
| (0.003)
Credito | 0.007***
| (0.003)
Asia_Este | 0.542***
| (0.153)
Am_lat | 0.577***
| (0.130)
Año_2013 | -0.033
| (0.134)
Año_2014 | 0.053
| (0.135)
Año_2015 | 0.068
| (0.131)
Año_2016 | 0.112
| (0.125)
Año_2017 | -0.005
| (0.109)
Año_2018 | 0.062
| (0.118)
Año_2019 | 0.046
| (0.116)
Año_2020 | 0.046
| (0.116)
Año_2021 | 0.064
| (0.120)
Año_2022 | 0.041
| (0.120)
Constant | 1.976***
| (0.213)
Observations | 149
Log Likelihood | -32.914
Akaike Inf. Crit. | 101.828
Bayesian Inf. Crit. | 155.899
Note: | p<0.1; p<0.05; p<0.01

## 2.14 Pruebas estadísticas a regresiones tasa de intercambio

### 2.14.1 Modelo sin controles

    ### Modelo sin controles.
    #modelo_int_sin_cont

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_int_sin_cont<-resid(modelo_int_sin_cont)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_int_sin_cont)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_int_sin_cont
    ## JB = 16.486, p-value = 0.0002631
    ## alternative hypothesis: greater

    car::qqPlot(modelo_int_sin_cont)

    ## [1] 5 6

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values no tiene sentido sin controles
    #vif(modelo_int_sin_cont)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    library(skedastic)
    #white_lm(modelo_int_sin_cont, interactions = TRUE)
    white(modelo_int_sin_cont, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
1.088018 | 0.5804168 | 2 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal.
    #resettest(modelo_int_sin_cont, power = 2:3, type = c("fitted"), data = datos)#No se realiza porque solo tiene una dummy

### 2.14.2 Modelo AICc sin efectos fijos de tiempo

    #modelo_int_con_cont_aicc

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_int_con_cont_aicc<-resid(modelo_int_con_cont_aicc)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_int_con_cont_aicc)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_int_con_cont_aicc
    ## JB = 12.636, p-value = 0.001804
    ## alternative hypothesis: greater

    car::qqPlot(modelo_int_con_cont_aicc)

    ## [1] 34 51

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    vif(modelo_int_con_cont_aicc)

    ## Regulacion_intercambio                 Cuenta                Credito
    ##               1.118888               3.264071               2.166566
    ##              Asia_Este                 Am_lat
    ##               1.096459               1.899514

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_int_con_cont_aicc, interactions = TRUE)
    white(modelo_int_con_cont_aicc, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
30.82372 | 0.0575611 | 20 | White’s Test | greater

    plot(modelo_int_con_cont_aicc$fit,modelo_int_con_cont_aicc$res,xlab="Valores ajustados",ylab="Residuales")

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_int_con_cont_aicc, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#Corregido por heterocedasticidad)

    ##
    ##  RESET test
    ##
    ## data:  modelo_int_con_cont_aicc
    ## RESET = 0.39273, df1 = 2, df2 = 143, p-value = 0.6759

### 2.14.3 Modelo AICc con efectos fijos de tiempo:

    #modelo_int_con_cont_ef_aicc

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_int_con_cont_ef_aicc<-resid(modelo_int_con_cont_ef_aicc)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_int_con_cont_ef_aicc)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_int_con_cont_ef_aicc
    ## JB = 13.906, p-value = 0.0009556
    ## alternative hypothesis: greater

    car::qqPlot(residuos_modelo_int_con_cont_ef_aicc)

    ## [1] 51 34

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica para dummies extra
    #create vector of VIF values
    #vif(modelo_int_con_cont_ef_aicc)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_int_con_cont_ef_aicc, interactions = TRUE)
    white(modelo_int_con_cont_ef_aicc, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
75.62988 | 0.9999914 | 135 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_int_con_cont_ef_aicc, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

### 2.14.4 Modelo BIC sin efectos fijos de tiempo

    #modelo_int_con_cont_bic
    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_int_con_cont_bic<-resid(modelo_int_con_cont_bic)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_int_con_cont_bic)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_int_con_cont_bic
    ## JB = 12.636, p-value = 0.001804
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    vif(modelo_int_con_cont_bic)

    ## Regulacion_intercambio                 Cuenta                Credito
    ##               1.118888               3.264071               2.166566
    ##              Asia_Este                 Am_lat
    ##               1.096459               1.899514

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_int_con_cont_bic, interactions = TRUE)
    white(modelo_int_con_cont_bic, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
30.82372 | 0.0575611 | 20 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_int_con_cont_bic, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#Corregido por heterocedasticidad)

    ##
    ##  RESET test
    ##
    ## data:  modelo_int_con_cont_bic
    ## RESET = 0.39273, df1 = 2, df2 = 143, p-value = 0.6759

### 2.14.5 Modelo BIC con efectos fijos de tiempo

    modelo_int_con_cont_bic_ef=modelo_int_con_cont_ef_bic

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_int_con_cont_bic_ef<-resid(modelo_int_con_cont_bic_ef)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_int_con_cont_bic_ef)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_int_con_cont_bic_ef
    ## JB = 39.93, p-value = 2.135e-09
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica para dummies extra
    #create vector of VIF values
    #vif(modelo_int_con_cont_bic_ef)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_int_con_cont_bic_ef, interactions = TRUE)
    white(modelo_int_con_cont_bic_ef, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
87.77339 | 0.9994401 | 135 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_int_con_cont_bic_ef, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

### 2.14.6 Modelo con variables instrumentales sin efectos fijos de tiempo

    #modelo_iv_int

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_iv_int<-resid(modelo_iv_int)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_iv_int)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_iv_int
    ## JB = 44.55, p-value = 2.119e-10
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    vif(modelo_iv_int)

    ##             Valor_prom Regulacion_intercambio                 Crimen
    ##              29.360737               2.887948              18.327819
    ##           Densidad_Pob           Densidad_Neg             PIB_pc_PPA
    ##               8.825261               2.489607               3.065605
    ##                 Europa              Asia_Este                 Am_lat
    ##              12.873904              19.272657               6.382436

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad (no aplica para IVreg). Se usaron errores estándar robustos anteriormente
    #white_lm(modelo_iv_int, interactions = TRUE)

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_iv_int, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#Corregido por heterocedasticidad)

    ##
    ##  RESET test
    ##
    ## data:  modelo_iv_int
    ## RESET = 4.0183, df1 = 2, df2 = 139, p-value = 0.02014

### 2.14.7 Modelo con variables instrumentales con efectos fijos de tiempo

    #modelo_iv_int_ef

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_iv_int_ef<-resid(modelo_iv_int_ef)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_iv_int_ef)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_iv_int_ef
    ## JB = 9.5722, p-value = 0.008345
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica a dummies extra
    #create vector of VIF values
    #vif(modelo_iv_int_ef)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad no aplica a IVreg. Se usaron errores estándar robustos anteriormente
    #white_lm(modelo_iv_int_ef, interactions = TRUE)

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_iv_int_ef, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

# 3 Regresiones tasa de adquirencia

De manera similar al caso de la comisión de intercambio, se llevan a cabo múltiples especificaciones de regresión lineal para determinar la tasa de adquirencia esperada para Costa Rica. Primero, se realizan estimaciones sin variables de control. Posteriormente, se utilizan criterios de información para seleccionar los controles a partir de una comparación entre la bondad de ajuste y la complejidad del modelo. En particular, estos criterios de información son el criterio de información de Akaike con una corrección para tamaños de muestra pequeños (AICc) y el criterio de información bayesiana (BIC).

    # Se carga la base otra vez para analizar adquirencia.
    #datos <- read_excel("Base_datos_adquirencia_intercambio.xlsx")
    direccion1<-direccion
    datos <- read_excel(paste0(direccion1,"Base_datos_adquirencia_intercambio.xlsx"))

## 3.1 Modelos base, AICc y BIC

La cantidad de países con información de la tasa de adquierencia en la muestra es la siguiente:

    misc<-datos %>% dplyr::select(c("Pais","Codigo_Pais","Año","Adquirencia")) %>% na.omit()
    misc<-misc[!duplicated(misc[,1]),]
    #Se elimina Costa Rica
    misc<-misc[misc$Codigo_Pais!="CRI",]
    #Cantidad de países con información de la tasa de adquirencia en la muestra
    nrow(misc)

    ## [1] 40

    #Con toda la muestra sin logaritmo

    #Regresión sin controles ----
    modelo_adq_sin_cont<-lm(Adquirencia ~ Regulacion_intercambio, datos)

    modelo_adq_sin_cont_corr_hc<-coeftest(modelo_adq_sin_cont, vcov. = vcovHC(modelo_adq_sin_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_sin_cont_corr_hac<-coeftest(modelo_adq_sin_cont, vcov. = vcovHAC(modelo_adq_sin_cont, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_sin_cont, modelo_adq_sin_cont_corr_hc, type = "html", title = "Estimación principal - Modelo sin controles",
              column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Estimación principal - Modelo sin controles
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -1.095*** | -1.095***
| (0.131) | (0.132)
Constant | 2.358*** | 2.358***
| (0.095) | (0.098)
Observations | 118 |
R2 | 0.374 |
Adjusted R2 | 0.369 |
Residual Std. Error | 0.714 (df = 116) |
F Statistic | 69.371*** (df = 1; 116) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    #Sin regulación
    pred_adq_sin_cont_sin_reg<-predict(modelo_adq_sin_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1 # le pone a CRI reg por adquirencia para generar un pronóstico.
    pred_adq_sin_cont_con_reg<-predict(modelo_adq_sin_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[ which(data_CR$Codigo_Pais=="CRI")]

    #Regresión con todos los controles ----
    attach(datos)
    modelo_adq_con_cont<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                              Am_lat + Valor_prom + Pago_digital, data = datos)

    modelo_adq_con_cont_corr_hc<-coeftest(modelo_adq_con_cont, vcov. = vcovHC(modelo_adq_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_corr_hac<-coeftest(modelo_adq_con_cont, vcov. = vcovHAC(modelo_adq_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_adq_con_cont, modelo_adq_con_cont_corr_hc, modelo_adq_con_cont_corr_hac, type = "html", title = "Regresión sobre la tasa de adquirencia para con todos los controles",
    #          column.labels = c("MCO","MCO HC", "MCO HAC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_adq_con_cont_sin_reg<-predict(modelo_adq_con_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_con_cont_con_reg<-predict(modelo_adq_con_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Regresión con todos los controles más efectos fijos de tiempo
    modelo_adq_con_cont_ef<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                Asia_Este + Am_lat + Año_2010 + Año_2011 + Año_2012 +
                                Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022  + Año_2023,
                                datos)

    modelo_adq_con_cont_ef_corr_hc<-coeftest(modelo_adq_con_cont_ef, vcov. = vcovHC(modelo_adq_con_cont_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_ef_corr_hac<-coeftest(modelo_adq_con_cont_ef, vcov. = vcovHAC(modelo_adq_con_cont_ef, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_adq_con_cont_ef, modelo_adq_con_cont_ef_corr_hc, type = "html",
    #          title = "Regresión sobre la tasa de adquirencia con controles y efectos fijos de tiempo",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_adq_con_cont_ef_sin_reg<-predict(modelo_adq_con_cont_ef, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_con_cont_ef_con_reg<-predict(modelo_adq_con_cont_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña)
    #Se elimina la variable intercambio de los datos para evitar sus NAs
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    modelo_adq_con_cont_aicc<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor se debe eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))
    #variables a usar
    modelo_adq_con_cont_aicc<-lm(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa, datos_adq)

    modelo_adq_con_cont_aicc_corr_hc<-coeftest(modelo_adq_con_cont_aicc, vcov. = vcovHC(modelo_adq_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_aicc_corr_hac<-coeftest(modelo_adq_con_cont_aicc, vcov. = vcovHAC(modelo_adq_con_cont_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_con_cont_aicc, modelo_adq_con_cont_aicc_corr_hc, type = "html",
              title = "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Estimación principal - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.658*** | -0.658***
| (0.117) | (0.110)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.002)
Valor_prom | -0.003** | -0.003**
| (0.001) | (0.001)
Europa | -0.565*** | -0.565***
| (0.131) | (0.104)
Constant | 3.844*** | 3.844***
| (0.241) | (0.230)
Observations | 93 |
R2 | 0.716 |
Adjusted R2 | 0.703 |
Residual Std. Error | 0.488 (df = 88) |
F Statistic | 55.360*** (df = 4; 88) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC
    modelo_adq_con_cont_bic<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 14
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 9
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 8
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 2
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 2
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 3
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #Ya no se eliminan columnas
    controles2<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))
    # Estimación del modelo con lsa variables seleccionadas con BIC
    modelo_adq_con_cont_bic<-lm(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa, datos_adq)

    modelo_adq_con_cont_bic_corr_hc<-coeftest(modelo_adq_con_cont_bic, vcov. = vcovHC(modelo_adq_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_bic_corr_hac<-coeftest(modelo_adq_con_cont_bic, vcov. = vcovHAC(modelo_adq_con_cont_bic, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_con_cont_bic, modelo_adq_con_cont_bic_corr_hc, type = "html", title = "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Estimación principal - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.658*** | -0.658***
| (0.117) | (0.110)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.002)
Valor_prom | -0.003** | -0.003**
| (0.001) | (0.001)
Europa | -0.565*** | -0.565***
| (0.131) | (0.104)
Constant | 3.844*** | 3.844***
| (0.241) | (0.230)
Observations | 93 |
R2 | 0.716 |
Adjusted R2 | 0.703 |
Residual Std. Error | 0.488 (df = 88) |
F Statistic | 55.360*** (df = 4; 88) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_adq_con_cont_aicc_ef<-lm(Adquirencia ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen +
                                      Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                      Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                      Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013",
                           "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020",
                           "Año_2021", "Año_2022", "Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom",
                           "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # Cantidad de variables
    nvar<-12
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_con_cont_aicc_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 15
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 19
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))

    # Estimación del modelo seleccionado
    # sin las variables 2010 al 2012 y 2013 por problemas de multicolinealidad
    modelo_adq_con_cont_aicc_ef<-lm(Adquirencia ~ Regulacion_intercambio + #Año_2010 + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + #Año_2023 +
                                      Cuenta +
                                      Valor_prom + Europa, datos_adq)

    modelo_adq_con_cont_aicc_ef_corr_hc<-coeftest(modelo_adq_con_cont_aicc_ef, vcov. = vcovHC(modelo_adq_con_cont_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_aicc_ef_corr_hac<-coeftest(modelo_adq_con_cont_aicc_ef, vcov. = vcovHAC(modelo_adq_con_cont_aicc_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_con_cont_aicc_ef, modelo_adq_con_cont_aicc_ef_corr_hc,
              type = "html", title = "Estimación principal - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Estimación principal - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.650*** | -0.650***
| (0.130) | (0.120)
Año_2013 | 0.226 | 0.226
| (0.618) | (0.206)
Año_2014 | -0.073 | -0.073
| (0.581) | (0.152)
Año_2015 | 0.068 | 0.068
| (0.562) | (0.137)
Año_2016 | 0.042 | 0.042
| (0.553) | (0.181)
Año_2017 | -0.001 | -0.001
| (0.537) | (0.168)
Año_2018 | 0.030 | 0.030
| (0.547) | (0.180)
Año_2019 | -0.297 | -0.297
| (0.550) | (0.181)
Año_2020 | -0.187 | -0.187
| (0.547) | (0.222)
Año_2021 | -0.304 | -0.304
| (0.562) | (0.198)
Año_2022 | 0.028 | 0.028
| (0.564) | (0.431)
Cuenta | -0.017*** | -0.017***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004**
| (0.002) | (0.002)
Europa | -0.639*** | -0.639***
| (0.152) | (0.143)
Constant | 3.946*** | 3.946***
| (0.548) | (0.172)
Observations | 93 |
R2 | 0.738 |
Adjusted R2 | 0.691 |
Residual Std. Error | 0.498 (df = 78) |
F Statistic | 15.663*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_adq_con_cont_bic_ef<-lm(Adquirencia ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen +
                                      Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                      Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                      Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013",
                           "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020",
                           "Año_2021", "Año_2022", "Año_2023", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom",
                           "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # Cantidad de variables
    nvar<-12
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_con_cont_bic_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente vairable
    controles<-controles[,-(which.min(BIC)+nvar)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))

    modelo_adq_con_cont_bic_ef<-lm(Adquirencia ~ Regulacion_intercambio + #Año_2010 + Año_2011 + Año_2012 +
                                     Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                     Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                     Cuenta + Valor_prom +
                                     Europa, datos_adq)

    modelo_adq_con_cont_bic_ef_corr_hc<-coeftest(modelo_adq_con_cont_bic_ef, vcov. = vcovHC(modelo_adq_con_cont_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_bic_ef_corr_hac<-coeftest(modelo_adq_con_cont_bic_ef, vcov. = vcovHAC(modelo_adq_con_cont_bic_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_con_cont_bic_ef, modelo_adq_con_cont_bic_ef_corr_hc,
              type = "html", title = "Estimación principal - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Estimación principal - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.650*** | -0.650***
| (0.130) | (0.120)
Año_2013 | 0.226 | 0.226
| (0.618) | (0.206)
Año_2014 | -0.073 | -0.073
| (0.581) | (0.152)
Año_2015 | 0.068 | 0.068
| (0.562) | (0.137)
Año_2016 | 0.042 | 0.042
| (0.553) | (0.181)
Año_2017 | -0.001 | -0.001
| (0.537) | (0.168)
Año_2018 | 0.030 | 0.030
| (0.547) | (0.180)
Año_2019 | -0.297 | -0.297
| (0.550) | (0.181)
Año_2020 | -0.187 | -0.187
| (0.547) | (0.222)
Año_2021 | -0.304 | -0.304
| (0.562) | (0.198)
Año_2022 | 0.028 | 0.028
| (0.564) | (0.431)
Cuenta | -0.017*** | -0.017***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004**
| (0.002) | (0.002)
Europa | -0.639*** | -0.639***
| (0.152) | (0.143)
Constant | 3.946*** | 3.946***
| (0.548) | (0.172)
Observations | 93 |
R2 | 0.738 |
Adjusted R2 | 0.691 |
Residual Std. Error | 0.498 (df = 78) |
F Statistic | 15.663*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

## 3.2 Regresiones con truncamiento tasa de adquirencia

Al igual que con la tasa de intercambio, se estiman modelos con truncamiento. Se utilizan valores mínimos de 0 y 0.35 (tasa de adquirencia mínima en la muestra, dada en España).

    #Se realiza modelos truncados

    #Adquirencia

    #AICc
    #Truncamiento en 0

    modelo_truncado_adq_0_aicc<-truncreg(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa,
                                         data = datos_adq, point = 0, direction = "left", model = TRUE,
                                         y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0_aicc)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 3.58E-12
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             3.8847366  0.2501318 15.5308 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6722307  0.1195298 -5.6240 1.866e-08 ***
    ## Cuenta                 -0.0180373  0.0028151 -6.4074 1.481e-10 ***
    ## Valor_prom             -0.0034776  0.0014832 -2.3447   0.01904 *
    ## Europa                 -0.6214083  0.1416898 -4.3857 1.156e-05 ***
    ## sigma                   0.4963553  0.0402518 12.3313 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -60.643 on 6 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0_aicc_sin_reg<-predict(modelo_truncado_adq_0_aicc, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0_aicc_con_reg<-predict(modelo_truncado_adq_0_aicc, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #Truncamiento en 0.35 tasa adquirencia mínima en la muestra de España

    modelo_truncado_adq_0.35_aicc<-truncreg(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa,
                                            data = datos_adq, point = 0.35, direction = "left", model = TRUE,
                                           y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0.35_aicc)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0.35, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 9.83E-10
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             4.0300867  0.2901538 13.8895 < 2.2e-16 ***
    ## Regulacion_intercambio -0.7343841  0.1340610 -5.4780 4.302e-08 ***
    ## Cuenta                 -0.0198509  0.0032482 -6.1114 9.879e-10 ***
    ## Valor_prom             -0.0036752  0.0017243 -2.1314   0.03306 *
    ## Europa                 -0.8140843  0.1842029 -4.4195 9.893e-06 ***
    ## sigma                   0.5338015  0.0476409 11.2047 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -52.53 on 6 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0.35_aicc_sin_reg<-predict(modelo_truncado_adq_0.35_aicc, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0.35_aicc_con_reg<-predict(modelo_truncado_adq_0.35_aicc, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #BIC
    #Truncamiento en 0

    modelo_truncado_adq_0_bic<-truncreg(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa,
                                        data = datos_adq, point = 0, direction = "left", model = TRUE, y = FALSE,
                                        x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0_bic)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 3.58E-12
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             3.8847366  0.2501318 15.5308 < 2.2e-16 ***
    ## Regulacion_intercambio -0.6722307  0.1195298 -5.6240 1.866e-08 ***
    ## Cuenta                 -0.0180373  0.0028151 -6.4074 1.481e-10 ***
    ## Valor_prom             -0.0034776  0.0014832 -2.3447   0.01904 *
    ## Europa                 -0.6214083  0.1416898 -4.3857 1.156e-05 ***
    ## sigma                   0.4963553  0.0402518 12.3313 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -60.643 on 6 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0_bic_sin_reg<-predict(modelo_truncado_adq_0_bic, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0_bic_con_reg<-predict(modelo_truncado_adq_0_bic, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #Truncamiento en 0.35 tasa adquirencia mínima en la muestra de España

    modelo_truncado_adq_0.35_bic<-truncreg(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa,
                                           data = datos_adq, point = 0.35, direction = "left", model = TRUE,
                                           y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0.35_bic)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0.35, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 9.83E-10
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             4.0300867  0.2901538 13.8895 < 2.2e-16 ***
    ## Regulacion_intercambio -0.7343841  0.1340610 -5.4780 4.302e-08 ***
    ## Cuenta                 -0.0198509  0.0032482 -6.1114 9.879e-10 ***
    ## Valor_prom             -0.0036752  0.0017243 -2.1314   0.03306 *
    ## Europa                 -0.8140843  0.1842029 -4.4195 9.893e-06 ***
    ## sigma                   0.5338015  0.0476409 11.2047 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -52.53 on 6 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0.35_bic_sin_reg<-predict(modelo_truncado_adq_0.35_bic, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0.35_bic_con_reg<-predict(modelo_truncado_adq_0.35_bic, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #AICc con efectos fijos de tiempo
    #Truncamiento en 0
    # los años 2010 al 2012 y 2023 no se ponen por problemas de multicolinealidad
    modelo_truncado_adq_0_aicc_ef<-truncreg(Adquirencia ~  Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                              Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                              Cuenta + Valor_prom + Europa, data = datos_adq, point = 0,
                                            direction = "left", model = TRUE, y = FALSE,
                                            x = FALSE, scaled = TRUE, fixed = TRUE)

    summary(modelo_truncado_adq_0_aicc_ef)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
    ##     Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
    ##     Año_2019 + Año_2020 + Año_2021 + Año_2022 + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE, fixed = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.3E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             3.9676338  0.5246800  7.5620 3.975e-14 ***
    ## Regulacion_intercambio -0.6587174  0.1252323 -5.2600 1.441e-07 ***
    ## Año_2013                0.2796151  0.5906715  0.4734  0.635938
    ## Año_2014               -0.0692587  0.5582707 -0.1241  0.901268
    ## Año_2015                0.0787748  0.5382351  0.1464  0.883639
    ## Año_2016                0.0565330  0.5279613  0.1071  0.914727
    ## Año_2017                0.0237436  0.5140546  0.0462  0.963160
    ## Año_2018                0.0441439  0.5223991  0.0845  0.932657
    ## Año_2019               -0.2980173  0.5259544 -0.5666  0.570971
    ## Año_2020               -0.1757929  0.5228271 -0.3362  0.736693
    ## Año_2021               -0.3067773  0.5388199 -0.5694  0.569118
    ## Año_2022                0.0418440  0.5391826  0.0776  0.938141
    ## Cuenta                 -0.0178742  0.0028174 -6.3442 2.236e-10 ***
    ## Valor_prom             -0.0039167  0.0014831 -2.6408  0.008271 **
    ## Europa                 -0.7040984  0.1547276 -4.5506 5.350e-06 ***
    ## sigma                   0.4750163  0.0381890 12.4386 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -56.943 on 16 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0_aicc_ef_sin_reg<-predict(modelo_truncado_adq_0_aicc_ef, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0_aicc_ef_con_reg<-predict(modelo_truncado_adq_0_aicc_ef, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #Truncamiento en 0.35 tasa adquirencia mínima en la muestra de España
    # los años 2010 al 2012 y 2023 no se ponen por problemas de multicolinealidad
    modelo_truncado_adq_0.35_aicc_ef<-truncreg(Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                              Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                              Cuenta + Valor_prom + Europa, data = datos_adq, point = 0.35,
                                              direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0.35_aicc_ef)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
    ##     Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
    ##     Año_2019 + Año_2020 + Año_2021 + Año_2022 + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0.35, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 3.43E-09
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             4.0455924  0.5703782  7.0928 1.314e-12 ***
    ## Regulacion_intercambio -0.6968059  0.1381950 -5.0422 4.602e-07 ***
    ## Año_2013                0.4599199  0.6394840  0.7192   0.47201
    ## Año_2014               -0.0528413  0.6052979 -0.0873   0.93043
    ## Año_2015                0.0970583  0.5822096  0.1667   0.86760
    ## Año_2016                0.0919674  0.5693543  0.1615   0.87168
    ## Año_2017                0.0741843  0.5553467  0.1336   0.89373
    ## Año_2018                0.0805516  0.5624266  0.1432   0.88612
    ## Año_2019               -0.2864916  0.5663277 -0.5059   0.61294
    ## Año_2020               -0.1337185  0.5628156 -0.2376   0.81220
    ## Año_2021               -0.2897464  0.5825715 -0.4974   0.61894
    ## Año_2022                0.0821741  0.5819099  0.1412   0.88770
    ## Cuenta                 -0.0194348  0.0031979 -6.0773 1.222e-09 ***
    ## Valor_prom             -0.0039813  0.0016986 -2.3440   0.01908 *
    ## Europa                 -0.9254312  0.2004059 -4.6178 3.879e-06 ***
    ## sigma                   0.5088371  0.0449729 11.3143 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -48.75 on 16 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0.35_aicc_ef_sin_reg<-predict(modelo_truncado_adq_0.35_aicc_ef, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0.35_aicc_ef_con_reg<-predict(modelo_truncado_adq_0.35_aicc_ef, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #BIC con efectos fijos de tiempo
    #Truncamiento en 0
    # los años 2010 al 2012 y 2023 no se ponen por problemas de multicolinealidad
    modelo_truncado_adq_0_bic_ef<-truncreg(Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                             Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                             Cuenta + Valor_prom + Europa, data = datos_adq, point = 0,
                                           direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0_bic_ef)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
    ##     Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
    ##     Año_2019 + Año_2020 + Año_2021 + Año_2022 + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 1.3E-08
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             3.9676338  0.5246800  7.5620 3.975e-14 ***
    ## Regulacion_intercambio -0.6587174  0.1252323 -5.2600 1.441e-07 ***
    ## Año_2013                0.2796151  0.5906715  0.4734  0.635938
    ## Año_2014               -0.0692587  0.5582707 -0.1241  0.901268
    ## Año_2015                0.0787748  0.5382351  0.1464  0.883639
    ## Año_2016                0.0565330  0.5279613  0.1071  0.914727
    ## Año_2017                0.0237436  0.5140546  0.0462  0.963160
    ## Año_2018                0.0441439  0.5223991  0.0845  0.932657
    ## Año_2019               -0.2980173  0.5259544 -0.5666  0.570971
    ## Año_2020               -0.1757929  0.5228271 -0.3362  0.736693
    ## Año_2021               -0.3067773  0.5388199 -0.5694  0.569118
    ## Año_2022                0.0418440  0.5391826  0.0776  0.938141
    ## Cuenta                 -0.0178742  0.0028174 -6.3442 2.236e-10 ***
    ## Valor_prom             -0.0039167  0.0014831 -2.6408  0.008271 **
    ## Europa                 -0.7040984  0.1547276 -4.5506 5.350e-06 ***
    ## sigma                   0.4750163  0.0381890 12.4386 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -56.943 on 16 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0_bic_ef_sin_reg<-predict(modelo_truncado_adq_0_bic_ef, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0_bic_ef_con_reg<-predict(modelo_truncado_adq_0_bic_ef, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    #Truncamiento en 0.35 tasa adquirencia mínima en la muestra de España
    # los años 2010 al 2012 y 2023 no se ponen por problemas de multicolinealidad
    modelo_truncado_adq_0.35_bic_ef<-truncreg(Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                             Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                             Cuenta + Valor_prom + Europa, data = datos_adq, point = 0.35,
                                             direction = "left", model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)

    summary(modelo_truncado_adq_0.35_bic_ef)

    ##
    ## Call:
    ## truncreg(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
    ##     Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
    ##     Año_2019 + Año_2020 + Año_2021 + Año_2022 + Cuenta +
    ##     Valor_prom + Europa, data = datos_adq, point = 0.35, direction = "left",
    ##     model = TRUE, y = FALSE, x = FALSE, scaled = TRUE)
    ##
    ## BFGS maximization method
    ## 0 iterations, 0h:0m:0s
    ## g'(-H)^-1g = 3.43E-09
    ##
    ##
    ##
    ## Coefficients :
    ##                          Estimate Std. Error t-value  Pr(>|t|)
    ## (Intercept)             4.0455924  0.5703782  7.0928 1.314e-12 ***
    ## Regulacion_intercambio -0.6968059  0.1381950 -5.0422 4.602e-07 ***
    ## Año_2013                0.4599199  0.6394840  0.7192   0.47201
    ## Año_2014               -0.0528413  0.6052979 -0.0873   0.93043
    ## Año_2015                0.0970583  0.5822096  0.1667   0.86760
    ## Año_2016                0.0919674  0.5693543  0.1615   0.87168
    ## Año_2017                0.0741843  0.5553467  0.1336   0.89373
    ## Año_2018                0.0805516  0.5624266  0.1432   0.88612
    ## Año_2019               -0.2864916  0.5663277 -0.5059   0.61294
    ## Año_2020               -0.1337185  0.5628156 -0.2376   0.81220
    ## Año_2021               -0.2897464  0.5825715 -0.4974   0.61894
    ## Año_2022                0.0821741  0.5819099  0.1412   0.88770
    ## Cuenta                 -0.0194348  0.0031979 -6.0773 1.222e-09 ***
    ## Valor_prom             -0.0039813  0.0016986 -2.3440   0.01908 *
    ## Europa                 -0.9254312  0.2004059 -4.6178 3.879e-06 ***
    ## sigma                   0.5088371  0.0449729 11.3143 < 2.2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ##
    ## Log-Likelihood: -48.75 on 16 Df

    #Pronóstico para CR
    #Sin regulación
    pred_adq_trunc_0.35_bic_ef_sin_reg<-predict(modelo_truncado_adq_0.35_bic_ef, newdata = datos, type = c("response"))[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_trunc_0.35_bic_ef_con_reg<-predict(modelo_truncado_adq_0.35_bic_ef, newdata = data_CR, type = c("response"))[which(datos$Codigo_Pais=="CRI")]

    # promedio de las estimaciones sin regulación en 0
    pred_adq_trunc_0_todos_sin_reg<-mean(c(as.numeric(pred_adq_trunc_0_aicc_sin_reg), as.numeric(pred_adq_trunc_0_bic_sin_reg), as.numeric(pred_adq_trunc_0_aicc_ef_sin_reg), as.numeric(pred_adq_trunc_0_bic_ef_sin_reg)))

    # promedio de las estimaciones con regulación truncado en 0
    pred_adq_trunc_0_todos_con_reg<-mean(c(as.numeric(pred_adq_trunc_0_aicc_con_reg), as.numeric(pred_adq_trunc_0_bic_con_reg), as.numeric(pred_adq_trunc_0_aicc_ef_con_reg), as.numeric(pred_adq_trunc_0_bic_ef_con_reg)))

    # promedio de las estimaciones sin regulación en 0.35
    pred_adq_trunc_0.35_todos_sin_reg<-mean(c(as.numeric(pred_adq_trunc_0.35_aicc_sin_reg), as.numeric(pred_adq_trunc_0.35_bic_sin_reg), as.numeric(pred_adq_trunc_0.35_aicc_ef_sin_reg), as.numeric(pred_adq_trunc_0.35_bic_ef_sin_reg)))

    # promedio de las estimaciones con regulación truncado en 0.35
    pred_adq_trunc_0.35_todos_con_reg<-mean(c(as.numeric(pred_adq_trunc_0.35_aicc_con_reg), as.numeric(pred_adq_trunc_0.35_bic_con_reg), as.numeric(pred_adq_trunc_0.35_aicc_ef_con_reg), as.numeric(pred_adq_trunc_0.35_bic_ef_con_reg)))

    # Pronósticos con regulación y ajuste:
    pred_adq_trunc_0_todos_con_reg_ajus<-(pred_adq_trunc_0_todos_con_reg+(-0.25*0.03) - (1*0.06) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08)
      pred_adq_trunc_0_todos_con_reg_ajus

    ## [1] 2.065634

    pred_adq_trunc_0.35_todos_con_reg_ajus<-(pred_adq_trunc_0.35_todos_con_reg+(-0.25*0.03) - (1*0.06) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08)

## 3.3 Transformación logarítmica de la variable dependiente

    #Con toda la muestra con logaritmo
    #Regresión sin controles
    modelo_log_adq_sin_cont<-lm(log(Adquirencia) ~ Regulacion_intercambio, datos)

    modelo_log_adq_sin_cont_corr_hc<-coeftest(modelo_log_adq_sin_cont, vcov. = vcovHC(modelo_log_adq_sin_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_sin_cont_corr_hac<-coeftest(modelo_log_adq_sin_cont, vcov. = vcovHAC(modelo_log_adq_sin_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_log_adq_sin_cont, modelo_log_adq_sin_cont_corr_hc,
    #          type = "html", title = "Regresión sobre el logaritmo de la tasa de adquirencia sin controles",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")
    #
    #Pronóstico para CR
    #Sin regulación
    pred_log_adq_sin_cont_sin_reg<-exp(predict(modelo_log_adq_sin_cont, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_log_adq_sin_cont_con_reg<-exp(predict(modelo_log_adq_sin_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")])

    #Regresión con todos los controles
    modelo_log_adq_con_cont<-lm(log(Adquirencia) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta + Debito +
                                  Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                                  Am_lat +Valor_prom + Pago_digital, datos)

    modelo_log_adq_con_cont_corr_hc<-coeftest(modelo_log_adq_con_cont, vcov. = vcovHC(modelo_log_adq_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_corr_hac<-coeftest(modelo_log_adq_con_cont, vcov. = vcovHAC(modelo_log_adq_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_log_adq_con_cont, modelo_log_adq_con_cont_corr_hc, type = "html",
    #          title = "Regresión sobre el logaritmo de la tasa de adquirencia con todos los controles",
    #          column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable #dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_log_adq_con_cont_sin_reg<-exp(predict(modelo_log_adq_con_cont, newdata = datos,
                                               interval = "prediction", level = 0.95,
                                               type = "response")[which(datos$Codigo_Pais=="CRI")])
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_log_adq_con_cont_con_reg<-exp(predict(modelo_log_adq_con_cont, newdata = data_CR,
                                               interval = "prediction", level = 0.95,
                                               type = "response")[which(datos$Codigo_Pais=="CRI")])

    #Regresión con todos los controles más efectos fijos de tiempo
    modelo_log_adq_con_cont_ef<-lm(log(Adquirencia) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                     Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                     ICH + Valor_prom + Europa + Asia_Este + Am_lat + Año_2010 + Año_2011 + Año_2012 +
                                     Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                     Año_2020 + Año_2021 + Año_2022  + Año_2023, datos)

    modelo_log_adq_con_cont_ef_corr_hc<-coeftest(modelo_log_adq_con_cont_ef, vcov. = vcovHC(modelo_log_adq_con_cont_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_ef_corr_hac<-coeftest(modelo_log_adq_con_cont_ef, vcov. = vcovHAC(modelo_log_adq_con_cont_ef, adjust = TRUE, sandwich = TRUE))#

    #stargazer(modelo_log_adq_con_cont_ef, modelo_log_adq_con_cont_ef_corr_hc, type = "html", title = "Regresión sobre el logaritmo de la tasa de #adquirencia con controles y efectos fijos de tiempo",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Sin regulación
    pred_log_adq_con_cont_ef_sin_reg<-exp(predict(modelo_log_adq_con_cont_ef, newdata = datos,
                                                  interval = "prediction", level = 0.95,
                                                  type = "response")[which(datos$Codigo_Pais=="CRI")])
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    pred_log_adq_con_cont_ef_con_reg<-exp(predict(modelo_log_adq_con_cont_ef, newdata = data_CR,
                                                  interval = "prediction", level = 0.95,
                                                  type = "response")[which(datos$Codigo_Pais=="CRI")])

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña)
    #Se elimina la tasa de adquirencia en los datos para evitar sus NAs

    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    modelo_log_adq_con_cont_aicc<-lm(log(Adquirencia) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                       Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                       ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_log_adq_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimna la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles1<-controles

    #variables a usar
    #variables_controles

    # Estimación del modelo seleccionado

    modelo_log_adq_con_cont_aicc<-lm(log(Adquirencia) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Pago_digital +
                                       Valor_prom + Europa + Asia_Este, datos_adq)

    modelo_log_adq_con_cont_aicc_corr_hc<-coeftest(modelo_log_adq_con_cont_aicc, vcov. = vcovHC(modelo_log_adq_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_aicc_corr_hac<-coeftest(modelo_log_adq_con_cont_aicc, vcov. = vcovHAC(modelo_log_adq_con_cont_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_log_adq_con_cont_aicc, modelo_log_adq_con_cont_aicc_corr_hc,
              type = "html", title = "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.396*** | -0.396***
| (0.085) | (0.072)
Cajero_Autom | -0.001* | -0.001*
| (0.001) | (0.001)
Crimen | 0.0001* | 0.0001*
| (0.00004) | (0.00004)
Pago_digital | -0.013*** | -0.013***
| (0.002) | (0.003)
Valor_prom | -0.004*** | -0.004***
| (0.001) | (0.001)
Europa | -0.404*** | -0.404***
| (0.113) | (0.128)
Asia_Este | 0.335** | 0.335**
| (0.143) | (0.130)
Constant | 1.878*** | 1.878***
| (0.187) | (0.174)
Observations | 93 |
R2 | 0.777 |
Adjusted R2 | 0.759 |
Residual Std. Error | 0.309 (df = 85) |
F Statistic | 42.295*** (df = 7; 85) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el BIC
    modelo_log_adq_con_cont_bic<-lm(log(Adquirencia) ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                       Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH +
                                       Valor_prom + Europa + Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_log_adq_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    ##El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i)], datos_adq))
    }

    min(BIC)<BIC[1]

[1] FALSE

    #Ya no se eliminan columnas
    controles2<-controles
    #variables a usar
    #variables_controles
    # Estimación
    modelo_log_adq_con_cont_bic<-lm(log(Adquirencia) ~ Regulacion_intercambio + Pago_digital + Valor_prom + Europa, datos_adq)

    modelo_log_adq_con_cont_bic_corr_hc<-coeftest(modelo_log_adq_con_cont_bic, vcov. = vcovHC(modelo_log_adq_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_bic_corr_hac<-coeftest(modelo_log_adq_con_cont_bic, vcov. = vcovHAC(modelo_log_adq_con_cont_bic, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_log_adq_con_cont_bic, modelo_log_adq_con_cont_bic_corr_hc,
              type = "html", title = "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.314*** | -0.314***
| (0.079) | (0.058)
Pago_digital | -0.010*** | -0.010***
| (0.002) | (0.001)
Valor_prom | -0.003*** | -0.003***
| (0.001) | (0.001)
Europa | -0.568*** | -0.568***
| (0.086) | (0.097)
Constant | 1.558*** | 1.558***
| (0.136) | (0.092)
Observations | 93 |
R2 | 0.753 |
Adjusted R2 | 0.742 |
Residual Std. Error | 0.320 (df = 88) |
F Statistic | 67.016*** (df = 4; 88) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_log_adq_con_cont_aicc_ef<-lm(log(Adquirencia) ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                          Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                          Año_2020 + Año_2021  + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                          Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                          ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014",
                           "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021",
                           "Año_2022","Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito",
                           "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este",
                           "Am_lat")
    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # Cantidad de variables
    nvar<-12
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_log_adq_con_cont_aicc_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    min(AICC)<AICC[1]

[1] TRUE

    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    min(AICC)<AICC[1]

[1] FALSE

    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    variables_controles

[1] “Regulacion_intercambio” “Año_2010” “Año_2011”
[4] “Año_2012” “Año_2013” “Año_2014”
[7] “Año_2015” “Año_2016” “Año_2017”
[10] “Año_2018” “Año_2019” “Año_2020”
[13] “Año_2021” “Año_2022” “Año_2023”
[16] “Pago_digital” “Valor_prom” “Europa”
[19] “Asia_Este”

    # Se omiten los años 2010 al 2012  y 2023 por colinealidad.
    modelo_log_adq_con_cont_aicc_ef<-lm(log(Adquirencia) ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                          Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + #Año_2023 +
                                          Pago_digital + Valor_prom + Europa + Asia_Este, datos_adq)

    modelo_log_adq_con_cont_aicc_ef_corr_hc<-coeftest(modelo_log_adq_con_cont_aicc_ef, vcov. = vcovHC(modelo_log_adq_con_cont_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_aicc_ef_corr_hac<-coeftest(modelo_log_adq_con_cont_aicc_ef, vcov. = vcovHAC(modelo_log_adq_con_cont_aicc_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_log_adq_con_cont_aicc_ef, modelo_log_adq_con_cont_aicc_ef_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.368*** | -0.368***
| (0.090) | (0.073)
Año_2013 | 0.033 | 0.033
| (0.398) | (0.164)
Año_2014 | -0.227 | -0.227**
| (0.368) | (0.090)
Año_2015 | -0.187 | -0.187***
| (0.357) | (0.068)
Año_2016 | -0.163 | -0.163*
| (0.350) | (0.093)
Año_2017 | -0.031 | -0.031
| (0.339) | (0.096)
Año_2018 | -0.172 | -0.172*
| (0.346) | (0.098)
Año_2019 | -0.321 | -0.321***
| (0.350) | (0.095)
Año_2020 | -0.183 | -0.183
| (0.347) | (0.142)
Año_2021 | -0.263 | -0.263**
| (0.356) | (0.130)
Año_2022 | -0.207 | -0.207
| (0.358) | (0.161)
Pago_digital | -0.012*** | -0.012***
| (0.002) | (0.003)
Valor_prom | -0.004*** | -0.004***
| (0.001) | (0.001)
Europa | -0.521*** | -0.521***
| (0.133) | (0.190)
Asia_Este | 0.280* | 0.280
| (0.156) | (0.173)
Constant | 1.938*** | 1.938***
| (0.375) | (0.201)
Observations | 93 |
R2 | 0.783 |
Adjusted R2 | 0.740 |
Residual Std. Error | 0.320 (df = 77) |
F Statistic | 18.501*** (df = 15; 77) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_log_adq_con_cont_bic_ef<-lm(log(Adquirencia) ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                         Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                         Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                         Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                         ICH + Valor_prom + Europa + Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022", "Año_2023","Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_log_adq_con_cont_bic_ef)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(log(Adquirencia) ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(log(Adquirencia) ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    min(BIC)<BIC[1]

[1] FALSE

    #No se eliminan más columnas
    controles4<-controles

    #Variables a usar
    variables_controles

[1] “Regulacion_intercambio” “Año_2010” “Año_2011”
[4] “Año_2012” “Año_2013” “Año_2014”
[7] “Año_2015” “Año_2016” “Año_2017”
[10] “Año_2018” “Año_2019” “Año_2020”
[13] “Año_2021” “Año_2022” “Año_2023”
[16] “Pago_digital” “Valor_prom” “Europa”

    # Se omiten los años 2010 al 2012 y 2023 por colinealidad.
    modelo_log_adq_con_cont_bic_ef<-lm(log(Adquirencia) ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                         Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + #Año_2023 +
                                         Pago_digital + Valor_prom + Europa, datos_adq)

    modelo_log_adq_con_cont_bic_ef_corr_hc<-coeftest(modelo_log_adq_con_cont_bic_ef, vcov. = vcovHC(modelo_log_adq_con_cont_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_log_adq_con_cont_bic_ef_corr_hac<-coeftest(modelo_log_adq_con_cont_bic_ef, vcov. = vcovHAC(modelo_log_adq_con_cont_bic_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_log_adq_con_cont_bic_ef, modelo_log_adq_con_cont_bic_ef_corr_hc, type = "html",
              title = "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.320*** | -0.320***
| (0.087) | (0.063)
Año_2013 | 0.156 | 0.156
| (0.397) | (0.170)
Año_2014 | -0.190 | -0.190**
| (0.372) | (0.075)
Año_2015 | -0.153 | -0.153**
| (0.362) | (0.073)
Año_2016 | -0.120 | -0.120
| (0.355) | (0.097)
Año_2017 | -0.030 | -0.030
| (0.344) | (0.097)
Año_2018 | -0.153 | -0.153*
| (0.351) | (0.092)
Año_2019 | -0.275 | -0.275***
| (0.354) | (0.099)
Año_2020 | -0.181 | -0.181
| (0.352) | (0.144)
Año_2021 | -0.273 | -0.273**
| (0.361) | (0.125)
Año_2022 | -0.201 | -0.201
| (0.363) | (0.166)
Pago_digital | -0.009*** | -0.009***
| (0.002) | (0.001)
Valor_prom | -0.003*** | -0.003***
| (0.001) | (0.001)
Europa | -0.680*** | -0.680***
| (0.101) | (0.135)
Constant | 1.704*** | 1.704***
| (0.357) | (0.111)
Observations | 93 |
R2 | 0.774 |
Adjusted R2 | 0.733 |
Residual Std. Error | 0.325 (df = 78) |
F Statistic | 19.043*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

## 3.4 Inclusión de efectos no lineales en la regresión

    # creación de variables cuadráticas:
    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    # Base para adquirencia
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    # Selección variables con AICC:  ----
    modelo_adq_nolineal_con_cont_aicc<-lm(formula = Adquirencia ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                            Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                            ICH + Valor_prom + Europa + Asia_Este + Am_lat +
                                            Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                            Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt + Pago_digital_sqrt +
                                            Valor_prom_sqr, data= datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt",
                           "Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt", "Valor_prom_sqr")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_nolineal_con_cont_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 13
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles

    # Deja las siguiente variables:
    #variables_controles

    # Estimación del modelo
    modelo_adq_nolineal_con_cont_aicc<-lm(formula = Adquirencia ~ Regulacion_intercambio + Crimen + Credito + PIB_pc_PPA +
                                            ICH + Valor_prom + Am_lat + Credito_sqrt + Debito_sqrt + Densidad_Neg_sqrt +
                                            PIB_pc_PPA_sqrt + ICH_sqrt + Pago_digital_sqrt + Valor_prom_sqr,
                                          data= datos_adq)

    modelo_adq_nolineal_con_cont_aicc_corr_hc<-coeftest(modelo_adq_nolineal_con_cont_aicc, vcov. = vcovHC(modelo_adq_nolineal_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_nolineal_con_cont_aicc_corr_hac<-coeftest(modelo_adq_nolineal_con_cont_aicc, vcov. = vcovHAC(modelo_adq_nolineal_con_cont_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_nolineal_con_cont_aicc, modelo_adq_nolineal_con_cont_aicc_corr_hc, type = "html", title = "Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo", column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.652*** | -0.652***
| (0.161) | (0.234)
Crimen | -0.0001* | -0.0001**
| (0.0001) | (0.0001)
Credito | -0.065*** | -0.065*
| (0.021) | (0.034)
PIB_pc_PPA | 0.0001* | 0.0001
| (0.00003) | (0.00005)
ICH | -35.944*** | -35.944***
| (8.204) | (7.410)
Valor_prom | -0.011 | -0.011
| (0.007) | (0.008)
Am_lat | 1.221*** | 1.221***
| (0.250) | (0.324)
Credito_sqrt | 0.001*** | 0.001**
| (0.0003) | (0.0004)
Debito_sqrt | 0.0002** | 0.0002**
| (0.0001) | (0.0001)
Densidad_Neg_sqrt | 0.002** | 0.002***
| (0.001) | (0.001)
PIB_pc_PPA_sqrt | -0.000* | -0.000
| (0.000) | (0.000)
ICH_sqrt | 26.085*** | 26.085***
| (6.251) | (5.423)
Pago_digital_sqrt | -0.0002*** | -0.0002**
| (0.0001) | (0.0001)
Valor_prom_sqr | 0.0001* | 0.0001
| (0.00003) | (0.00004)
Constant | 14.122*** | 14.122***
| (2.562) | (2.556)
Observations | 93 |
R2 | 0.782 |
Adjusted R2 | 0.743 |
Residual Std. Error | 0.455 (df = 78) |
F Statistic | 19.950*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

    # Pronóstico
    # Sin regulación
    pred_adq_nolineal_sin_reg_aicc <-predict(modelo_adq_nolineal_con_cont_aicc, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    # Se le agrega a CR la adquirencia
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    pred_adq_nolineal_con_reg_aicc<-predict(modelo_adq_nolineal_con_cont_aicc, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Selección modelo no lineal con BIC -----
    modelo_adq_nolineal_con_cont_bic<-lm(formula = Adquirencia ~ Regulacion_intercambio + Cajero_Autom + Crimen + Cuenta +
                                            Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                            ICH + Valor_prom + Europa + Asia_Este + Am_lat +
                                            Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                            Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt + Pago_digital_sqrt +
                                            Valor_prom_sqr, data= datos_adq)

    variables_controles<-c("Regulacion_intercambio", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt",
                           "Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt", "Valor_prom_sqr")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_nolineal_con_cont_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 13
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 14
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 15
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 16
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 17
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 18
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 19
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 20
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 21
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    # Deja las siguiente variables:
    #variables_controles

    # Estimación del modelo
    modelo_adq_nolineal_con_cont_bic<-lm(formula = Adquirencia ~ Regulacion_intercambio + ICH + Am_lat +
                                           Densidad_Neg_sqrt  + ICH_sqrt + Pago_digital_sqrt , data= datos_adq)

    modelo_adq_nolineal_con_cont_bic_corr_hc<-coeftest(modelo_adq_nolineal_con_cont_aicc, vcov. = vcovHC(modelo_adq_nolineal_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_nolineal_con_cont_bic_corr_hac<-coeftest(modelo_adq_nolineal_con_cont_bic, vcov. = vcovHAC(modelo_adq_nolineal_con_cont_bic, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_nolineal_con_cont_bic, modelo_adq_nolineal_con_cont_bic_corr_hc, type = "html", title = "Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.479*** | -0.652***
| (0.123) | (0.134)
ICH | -37.873*** | -35.944***
| (7.563) | (10.391)
Am_lat | 0.690*** | 1.221***
| (0.151) | (0.183)
Densidad_Neg_sqrt | 0.002*** | 0.002***
| (0.001) | (0.0004)
ICH_sqrt | 29.025*** | 26.085***
| (5.843) | (7.572)
Pago_digital_sqrt | -0.0001*** | -0.0002***
| (0.00003) | (0.00002)
Constant | 14.287*** | 14.122***
| (2.445) | (3.489)
Observations | 93 |
R2 | 0.743 |
Adjusted R2 | 0.725 |
Residual Std. Error | 0.470 (df = 86) |
F Statistic | 41.382*** (df = 6; 86) |
Note: | p<0.1; p<0.05; p<0.01

    # Pronóstico
    # Sin regulación
    pred_adq_nolineal_sin_reg_bic <-predict(modelo_adq_nolineal_con_cont_bic, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_adq_nolineal_con_reg_bic<-predict(modelo_adq_nolineal_con_cont_bic, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    # SELECCIÓN DE MODELOS CON EFECTOS DE TIEMPO: -----
    datos<-datos %>% mutate(
      Cajero_Autom_sqrt = Cajero_Autom**2,
      Crimen_sqrt = Crimen**2,
      Cuenta_sqrt = Cuenta**2,
      Credito_sqrt = Credito**2,
      Debito_sqrt = Debito**2,
      Densidad_Pob_sqrt = Densidad_Pob**2,
      Densidad_Neg_sqrt = Densidad_Neg**2,
      PIB_pc_PPA_sqrt = PIB_pc_PPA**2,
      ICH_sqrt = ICH**2,
      Pago_digital_sqrt = Pago_digital**2,
      Valor_prom_sqr = Valor_prom**2
    )
    #Se elimina la variable intercambio de los datos para evitar sus NAs
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    # Selección variables con AICC:
    modelo_adq_nolineal_con_cont_ef_aicc<-lm(formula = Adquirencia ~ Regulacion_intercambio + Año_2010  + Año_2011
                                             + Año_2012 + Año_2013 + Año_2014 + Año_2015 +
                                            Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                            Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                            Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                            ICH + Valor_prom + Europa + Asia_Este + Am_lat +
                                            Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                            Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt + Pago_digital_sqrt +
                                            Valor_prom_sqr, data= datos_adq)

    variables_controles<-c("Regulacion_intercambio","Año_2010","Año_2011","Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016",
                           "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022",  "Año_2023","Cajero_Autom", "Crimen",
                           "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom",
                           "Europa", "Asia_Este","Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt", "Credito_sqrt", "Debito_sqrt",
                           "Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt", "Pago_digital_sqrt",
                           "Valor_prom_sqr")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # Cantidad de variables
    nvar<-12
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_nolineal_con_cont_ef_aicc)

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]
    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]
    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]
    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]
    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]
    #Paso 13
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 14
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 15
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 16
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 17
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 18
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(AICC)+nvar+1)]

    #Paso 19
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    # El AICc ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    # Deja las siguiente variables:
    #variables_controles

    # Estimación del modelo (cambiar con el modelo seleccionado)
    # Problemas de multicolinealidad 2010 al 2012 y 2023
    modelo_adq_nolineal_con_cont_ef_aicc<-lm(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                            Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                            Año_2022 + #Año_2023 +
                                              Debito + ICH + Am_lat + Debito_sqrt + Densidad_Neg_sqrt + ICH_sqrt +
                                              Pago_digital_sqrt, data= datos_adq)

    modelo_adq_nolineal_con_cont_ef_aicc_corr_hc<-coeftest(modelo_adq_nolineal_con_cont_ef_aicc, vcov. = vcovHC(modelo_adq_nolineal_con_cont_ef_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_nolineal_con_cont_ef_aicc_corr_hac<-coeftest(modelo_adq_nolineal_con_cont_ef_aicc, vcov. = vcovHAC(modelo_adq_nolineal_con_cont_ef_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_nolineal_con_cont_ef_aicc, modelo_adq_nolineal_con_cont_ef_aicc_corr_hc,
              type = "html",
              title = "Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.273* | -0.273
| (0.146) | (0.180)
Año_2013 | 3.226*** | 3.226**
| (0.966) | (1.327)
Año_2014 | 2.850*** | 2.850**
| (0.920) | (1.242)
Año_2015 | 2.895*** | 2.895**
| (0.894) | (1.203)
Año_2016 | 3.165*** | 3.165**
| (0.958) | (1.340)
Año_2017 | 2.849*** | 2.849**
| (0.928) | (1.325)
Año_2018 | 3.128*** | 3.128**
| (0.946) | (1.311)
Año_2019 | 2.892*** | 2.892**
| (0.953) | (1.339)
Año_2020 | 2.868*** | 2.868**
| (0.924) | (1.306)
Año_2021 | 2.922*** | 2.922**
| (0.961) | (1.347)
Año_2022 | 3.147*** | 3.147**
| (0.941) | (1.462)
Debito | -0.026* | -0.026
| (0.013) | (0.017)
ICH | -64.091*** | -64.091***
| (12.727) | (16.834)
Am_lat | 0.456** | 0.456*
| (0.179) | (0.272)
Debito_sqrt | 0.0002* | 0.0002
| (0.0001) | (0.0002)
Densidad_Neg_sqrt | 0.002** | 0.002***
| (0.001) | (0.001)
ICH_sqrt | 47.032*** | 47.032***
| (9.347) | (11.737)
Pago_digital_sqrt | -0.0001** | -0.0001***
| (0.0001) | (0.0001)
Constant | 21.261*** | 21.261***
| (3.587) | (4.832)
Observations | 93 |
R2 | 0.794 |
Adjusted R2 | 0.744 |
Residual Std. Error | 0.453 (df = 74) |
F Statistic | 15.867*** (df = 18; 74) |
Note: | p<0.1; p<0.05; p<0.01

    # Pronóstico
    # Sin regulación
    pred_adq_nolineal_sin_reg_ef_aicc <-predict(modelo_adq_nolineal_con_cont_ef_aicc, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")]

    #round((pred_adq_nolineal_sin_reg_ef_aicc+(-0.25*0.03) - (1*0.06) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)

    #Con regulación
    pred_adq_nolineal_con_reg_ef_aicc<-predict(modelo_adq_nolineal_con_cont_ef_aicc, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con ajuste
    pred_adq_nolineal_con_reg_ef_aicc_ajus<-round((pred_adq_nolineal_con_reg_ef_aicc+(-0.25*0.03) - (1*0.06) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)
    #pred_adq_nolineal_con_reg_ef_aicc_ajus
    # Selección variables con BIC efectos de tiempo: ----

    modelo_adq_nolineal_con_cont_ef_bic<-lm(formula = Adquirencia ~ Regulacion_intercambio + Año_2010 + Año_2011 + Año_2012 +
                                              Año_2013  + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 +
                                              Año_2020 + Año_2021 + Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta +
                                               Pago_digital + Debito + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA +
                                               ICH + Valor_prom + Europa + Asia_Este + Am_lat +
                                               Cajero_Autom_sqrt + Crimen_sqrt + Cuenta_sqrt + Credito_sqrt + Debito_sqrt +
                                               Densidad_Pob_sqrt + Densidad_Neg_sqrt + PIB_pc_PPA_sqrt + ICH_sqrt +
                                              Pago_digital_sqrt + Valor_prom_sqr, data= datos_adq)

    variables_controles<-c("Regulacion_intercambio","Año_2010","Año_2011","Año_2012", "Año_2013","Año_2014", "Año_2015",
                           "Año_2016", "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022",  "Año_2023",
                           "Cajero_Autom", "Crimen",
                           "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom", "Europa", "Asia_Este", "Am_lat", "Cajero_Autom_sqrt", "Crimen_sqrt", "Cuenta_sqrt",
                           "Credito_sqrt", "Debito_sqrt", "Densidad_Pob_sqrt", "Densidad_Neg_sqrt", "PIB_pc_PPA_sqrt", "ICH_sqrt",
                           "Pago_digital_sqrt", "Valor_prom_sqr")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    # Cantidad de variables
    nvar<-12
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_nolineal_con_cont_ef_bic)

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 13
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 14
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 15
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 16
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 17
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 18
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 19
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+nvar+1)]
    variables_controles<-variables_controles[-(which.min(BIC)+nvar+1)]
    #Paso 20
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-nvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+nvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    # Deja las siguiente variables:
    #variables_controles

    # Estimación del modelo (cambiar con el modelo seleccionado)
    # Se quitan 2010 al 2012 y 2023 por problemas de multicolinealidad
    modelo_adq_nolineal_con_cont_ef_bic<-lm(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 + Año_2015 +
                                            Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                            Año_2022 +  #Año_2023 +
                                            ICH + Am_lat + Densidad_Neg_sqrt + ICH_sqrt + Pago_digital_sqrt, data= datos)

    modelo_adq_nolineal_con_cont_ef_bic_corr_hc<-coeftest(modelo_adq_nolineal_con_cont_ef_bic, vcov. = vcovHC(modelo_adq_nolineal_con_cont_ef_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_nolineal_con_cont_ef_bic_corr_hac<-coeftest(modelo_adq_nolineal_con_cont_ef_bic, vcov. = vcovHAC(modelo_adq_nolineal_con_cont_ef_bic, adjust = TRUE, sandwich = TRUE))

    #Visualización
    stargazer(modelo_adq_nolineal_con_cont_ef_bic, modelo_adq_nolineal_con_cont_ef_bic_corr_hc, type = "html",
              title = "Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia","Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.319** | -0.319**
| (0.137) | (0.137)
Año_2013 | 0.843 | 0.843
| (0.676) | (0.622)
Año_2014 | 0.720 | 0.720
| (0.647) | (0.574)
Año_2015 | 0.812 | 0.812
| (0.636) | (0.556)
Año_2016 | 0.997 | 0.997*
| (0.637) | (0.565)
Año_2017 | 0.721 | 0.721
| (0.620) | (0.571)
Año_2018 | 1.009 | 1.009*
| (0.637) | (0.583)
Año_2019 | 0.748 | 0.748
| (0.618) | (0.514)
Año_2020 | 0.716 | 0.716
| (0.617) | (0.603)
Año_2021 | 0.731 | 0.731
| (0.651) | (0.596)
Año_2022 | 1.066 | 1.066
| (0.647) | (0.742)
ICH | -37.805*** | -37.805***
| (7.446) | (10.621)
Am_lat | 0.632*** | 0.632***
| (0.163) | (0.197)
Densidad_Neg_sqrt | 0.002** | 0.002***
| (0.001) | (0.001)
ICH_sqrt | 28.667*** | 28.667***
| (5.935) | (7.992)
Pago_digital_sqrt | -0.0001*** | -0.0001***
| (0.00004) | (0.00003)
Constant | 13.471*** | 13.471***
| (2.093) | (2.968)
Observations | 102 |
R2 | 0.735 |
Adjusted R2 | 0.685 |
Residual Std. Error | 0.494 (df = 85) |
F Statistic | 14.703*** (df = 16; 85) |
Note: | p<0.1; p<0.05; p<0.01

    # Pronóstico ----
    # Sin regulación
    pred_adq_nolineal_sin_reg_ef_bic <-predict(modelo_adq_nolineal_con_cont_ef_bic, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")]

    #round((pred_adq_nolineal_sin_reg_ef_bic+(-0.25*0.03) - (1*0.06) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)

    # promedio
    pred_adq_nolineal_sin_reg_mean<-mean(pred_adq_nolineal_sin_reg_aicc,pred_adq_nolineal_sin_reg_bic,pred_adq_nolineal_sin_reg_ef_aicc,pred_adq_nolineal_sin_reg_ef_bic)

    #Con regulación
    pred_adq_nolineal_con_reg_ef_bic<-predict(modelo_adq_nolineal_con_cont_ef_bic, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con ajuste
    pred_adq_nolineal_con_reg_ef_bic_ajus<-round((pred_adq_nolineal_con_reg_ef_bic- (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)

    # Promedio
    pred_adq_nolineal_con_reg_mean<-mean(pred_adq_nolineal_con_reg_aicc,pred_adq_nolineal_con_reg_bic,pred_adq_nolineal_con_reg_ef_aicc,pred_adq_nolineal_con_reg_ef_bic)
    # -(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2) = -0.225
    #(0.77 + 0.08 = 0.85
    pred_adq_nolineal_con_reg_mean_ajust<-round((pred_adq_nolineal_con_reg_mean - (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)
    #pred_adq_nolineal_con_reg_mean_ajust

## 3.5 Método bootstrap

En este caso se usan los criterios de información AIC (no tiene corrección de muestras pequeñas) y BIC para su comparación. Ambos criterios brindan resultados similares. Además, no se incluyen efectos fijos de tiempo. Esto difiere respecto a su implementación en Stata, donde también se estiman también los modelos que incorporan efectos fijos de tiempo, y se utiliza el AICc. Sin embargo, los resultados son similares.

    # Datos
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    library(bootStepAIC)
    ### SELECCIÓN CON AIC
    set.seed(1)
    #modelo inicial con todos los controles
    modelo_adq_con_cont<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                              Am_lat + Valor_prom + Pago_digital, data = datos_adq)

    # SIN REGLUACIÓN
    n=1000 # cantidad de reemuestreos con bootstrap
    m=bootStepAIC::boot.stepAIC(modelo_adq_con_cont,data = datos_adq,B=n)
    predicciones<-as.numeric()
    for (i in 1:n) {
    coefs = m$BootStepAIC[[i]]
    #Sin regulación
    predicciones[i]<-predict(coefs,newdata=datos_adq,type="response")[which(data_CR$Codigo_Pais=="CRI")]
    }
    pred_adq_bootstrap_sin_reg_con_cont_aic<-median(predicciones)

    # CON REGULACIÓN
    n=1000 # cantidad de reemuestreos con bootstrap
    m=bootStepAIC::boot.stepAIC(modelo_adq_con_cont,data = datos_adq,B=n)
    predicciones<-as.numeric()
    for (i in 1:n) {
    coefs = m$BootStepAIC[[i]]
    #con regulación
    predicciones[i]<-predict(coefs,newdata=data_CR,type="response")[which(data_CR$Codigo_Pais=="CRI")]
    }
    # Ajustes por fuera de rango:
    # mayor a 2
    #gen Adquirencia_adj =  (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05) - (2*0.08))/(0.71)
    predicciones2<-ifelse(predicciones>2,
                          (predicciones- (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07) - (2*0.08))/(0.77),
                          predicciones)
    # mayor a 1.75 y menor o igual a 2
    #if Adquirencia_adj<=2
    #replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05) )/(0.71 + 0.08)
    predicciones2<-ifelse(predicciones2> 1.75 & predicciones2<=2,
                          (predicciones2 - (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07) )/(0.77 + 0.08),
                          predicciones2)
    # mayor a 1.5 y menor o igual a 1.75
    #if Adquirencia_adj<=1.75
    #replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) )/(0.71 + 0.08 + 0.05)
    predicciones2<-ifelse(predicciones2> 1.5 & predicciones2<=1.75,
                          (predicciones2 - (1*0.02) - (1.25*0.04) - (1.5*0.02) )/(0.77 + 0.08 + 0.07),
                          predicciones2)
    # mayor a 1.25 y menor o igual a 1.5
    #if Adquirencia_adj<=1.5: replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) )/(0.71 + 0.08 + 0.05 + 0.02)
    predicciones2<-ifelse(predicciones2> 1.25 & predicciones2<=1.5,
                          (predicciones2 - (1*0.02) - (1.25*0.04) )/(0.77 + 0.08 + 0.07 + 0.02),
                          predicciones2)

    # mayor a 1 y menor o igual a 1.25
    #if Adquirencia_adj<=1.25: replace Adquirencia_adj = (Adquirencia- (1*0.09))/(0.71 + 0.08 + 0.05 + 0.02 + 0.05)
    predicciones2<-ifelse(predicciones2> 1 & predicciones2<=1.25,
                          (predicciones2 - (1*0.02))/(0.77 + 0.08 + 0.07 + 0.02 + 0.04),
                          predicciones2)
    # menor a 1 se deja igual.
    #if Adquirencia_adj<=1 # sin ajuste
    # mostrar solo con ajustes.

    #Visualización
    resul<-as.data.frame(cbind(mean(predicciones2),
                               median(predicciones2),
                               mean(predicciones2)-1.96*sd(predicciones2),
                               mean(predicciones2)+1.96*sd(predicciones2)
                               )) %>% round(3)
    names(resul)<-c("Promedio","Mediana","2.5%","97.5%")
    DT::datatable(resul,rownames=c("Tasa de adquirencia ajustada"),caption = "Resultados de bootstrap para modelo lineal de adquirencia con regulación y con la selección de controles por AIC", options = list(dom = 't'))

    # pronóstico promedio con regulación
    pred_adq_bootstrap_con_reg_con_cont_aic<-median(predicciones2)
    # Gráfica de los pronósticos
    fig<-plot_ly(x = ~predicciones2, type = "histogram") %>%
      layout(xaxis = list(title = "Comisión de adquirencia"),
             yaxis = list(title ="Frecuencia"),
             title = "Pronóstico AIC con boostrap (n=1000)")
    fig

    ## Selección con BIC modelo con controles
    #Retomando el modelo inicial con controles
    modelo_adq_con_cont<-lm(Adquirencia ~ Regulacion_intercambio + Cajero_Autom +
                              Crimen + Cuenta + Debito + Credito + Densidad_Pob +
                              Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                              Am_lat + Valor_prom + Pago_digital, data = datos_adq)
    # Se debe fijar una semilla

    # Bootrap con BIC
    set.seed(1)
    # SIN REGLUACIÓN
    n=1000 # cantidad de reemuestreo con bootstrap
    m=bootStepAIC::boot.stepAIC(modelo_adq_con_cont,data = datos_adq,B=n,
                                  k=log(nrow(datos)) ) # con esto se hace el BIC
    predicciones<-as.numeric()
    for (i in 1:n) {
    coefs = m$BootStepAIC[[i]]
    #con regulación
    predicciones[i]<-predict(coefs,newdata=datos,type="response")[which(data_CR$Codigo_Pais=="CRI")]
    }
    pred_adq_bootstrap_sin_reg_con_cont_bic<-median(predicciones)
    # CON REGULACIÓN
    n=1000 # cantidad de reemuestreo con bootstrap
    m=bootStepAIC::boot.stepAIC(modelo_adq_con_cont,data = datos_adq,B=n,
                                  k=log(nrow(datos)) ) # con esto se hace el BIC
    predicciones<-as.numeric()
    for (i in 1:n) {
    coefs = m$BootStepAIC[[i]]
    #con regulación
    predicciones[i]<-predict(coefs,newdata=data_CR,type="response")[which(data_CR$Codigo_Pais=="CRI")]
    }
    # Ajustes por fuera de rango:
    # mayor a 2
    #gen Adquirencia_adj =  (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05) - (2*0.08))/(0.71)
    predicciones2<-ifelse(predicciones>2,
                          (predicciones- (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07) - (2*0.08))/(0.77),
                          predicciones)
    # mayor a 1.75 y menor o igual a 2
    #if Adquirencia_adj<=2
    #replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05) )/(0.71 + 0.08)
    predicciones2<-ifelse(predicciones2> 1.75 & predicciones2<=2,
                          (predicciones2 - (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07) )/(0.77 + 0.08),
                          predicciones2)
    # mayor a 1.5 y menor o igual a 1.75
    #if Adquirencia_adj<=1.75
    #replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) - (1.5*0.02) )/(0.71 + 0.08 + 0.05)
    predicciones2<-ifelse(predicciones2> 1.5 & predicciones2<=1.75,
                          (predicciones2 - (1*0.02) - (1.25*0.04) - (1.5*0.02) )/(0.77 + 0.08 + 0.07),
                          predicciones2)
    # mayor a 1.25 y menor o igual a 1.5
    #if Adquirencia_adj<=1.5: replace Adquirencia_adj = (Adquirencia - (1*0.09) - (1.25*0.05) )/(0.71 + 0.08 + 0.05 + 0.02)
    predicciones2<-ifelse(predicciones2> 1.25 & predicciones2<=1.5,
                          (predicciones2 - (1*0.02) - (1.25*0.04) )/(0.77 + 0.08 + 0.07 + 0.02),
                          predicciones2)

    # mayor a 1 y menor o igual a 1.25
    #if Adquirencia_adj<=1.25: replace Adquirencia_adj = (Adquirencia- (1*0.09))/(0.71 + 0.08 + 0.05 + 0.02 + 0.05)
    predicciones2<-ifelse(predicciones2> 1 & predicciones2<=1.25,
                          (predicciones2 - (1*0.02))/(0.77 + 0.08 + 0.07 + 0.02 + 0.04),
                          predicciones2)
    # menor a 1 se deja igual.
    #if Adquirencia_adj<=1 # sin ajuste
    # mostrar solo con ajustes.

    #Visualización
    resul<-as.data.frame(cbind(mean(predicciones2),
                               median(predicciones2),
                               mean(predicciones2)-1.96*sd(predicciones2),
                               mean(predicciones2)+1.96*sd(predicciones2)
                               )) %>% round(3)
    names(resul)<-c("Promedio","Mediana","2.5%","97.5%")
    DT::datatable(resul,rownames=c("Tasa de adquirencia ajustada"),caption = "Resultados de bootstrap para modelo lineal de adquirencia con regulación y con la selección de controles por BIC", options = list(dom = 't'))

    # pronóstico promedio con regulación
    pred_adq_bootstrap_con_reg_con_cont_bic<-median(predicciones2)
    # Gráfica de los pronósticos
    fig<-plot_ly(x = ~predicciones2, type = "histogram") %>%
      layout(xaxis = list(title = "Comisión de adquirencia"),
             yaxis = list(title ="Frecuencia"),
             title = "Pronóstico BIC con boostrap (n=1000)")
    fig

## 3.6 Regresión robusta

En este caso, pueden existir diferencias en la regresión respecto a los resultados en Stata debido a que el comando “rreg” en Stata combina dos funciones de ponderación, los pesos Huber y Biweights (https://www.stata.com/manuals13/rrreg.pdf). Por su parte, el comando “rlm” de R implementa cada ponderación por separado, y en este ejercicio se utiliza los pesos Huber (https://www.rdocumentation.org/packages/MASS/versions/7.3-58.1/topics/rlm). Sin embargo, las comisiones esperadas obtenidas para Costa Rica son similares.

    # Se carga la base otra vez para analizar adquirencia.
    direccion1<-direccion
    datos <- read_excel(paste0(direccion1,"Base_datos_adquirencia_intercambio.xlsx"))
    # datos de adquirencia
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()

    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    # Estimación de regresión robusta
    ## Se mantiene el modelo seleccionado por AICC en el modelo de regresión lineal.
    # Estimación del modelo seleccionado
    modelo_robusto_adq_con_cont_aicc<-rlm(formula = Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa, data = datos_adq,
                                          method="MM", maxit = 100)
    # Pronóstico

    # Sin regulación
    pred_adq_con_cont_sin_reg_robusto_aicc<-predict(modelo_robusto_adq_con_cont_aicc,newdata = datos,
                                                   interval = "prediction", level = 0.95,
                                                   type ="response")[which(datos$Codigo_Pais=="CRI")]
    # Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_con_cont_con_reg_robusto_aicc<-predict(modelo_robusto_adq_con_cont_aicc,newdata = data_CR,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    # Con ajuste
    #round((pred_adq_con_cont_con_reg_robusto_aicc-(1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)
    # Visualización
    stargazer(modelo_robusto_adq_con_cont_aicc, type = "html",
              title = "Regresión robusta - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| MCO
Regulacion_intercambio | -0.814***
| (0.077)
Cuenta | -0.019***
| (0.002)
Valor_prom | -0.0002
| (0.001)
Europa | -0.605***
| (0.086)
Constant | 3.832***
| (0.158)
Observations | 93
Residual Std. Error | 0.266 (df = 88)
Note: | p<0.1; p<0.05; p<0.01

    # Estimación del modelo seleccionado
    # Se mantiene la selección del modelo lineal con el criterio BIC
    modelo_robusto_adq_con_cont_bic<-rlm(formula = Adquirencia ~ Regulacion_intercambio + Cuenta +
                                       Valor_prom + Europa, data = datos_adq, method="MM", maxit = 100)
    # Pronóstico
    # Sin regulación
    pred_adq_con_cont_sin_reg_robusto_bic<-predict(modelo_robusto_adq_con_cont_bic,newdata = datos,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con regulación
    pred_adq_con_cont_con_reg_robusto_bic<-predict(modelo_robusto_adq_con_cont_bic,newdata = data_CR,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con ajuste
    #round((pred_adq_con_cont_con_reg_robusto_bic+-(1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)

    # Visualización
    stargazer(modelo_robusto_adq_con_cont_bic, type = "html",
              title = "Regresión robusta - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| MCO
Regulacion_intercambio | -0.814***
| (0.077)
Cuenta | -0.019***
| (0.002)
Valor_prom | -0.0002
| (0.001)
Europa | -0.605***
| (0.086)
Constant | 3.832***
| (0.158)
Observations | 93
Residual Std. Error | 0.266 (df = 88)
Note: | p<0.1; p<0.05; p<0.01

    # Se carga la base otra vez para analizar adquirencia.
    direccion1<-direccion
    datos <- read_excel(paste0(direccion1,"Base_datos_adquirencia_intercambio.xlsx"))
    # datos de adquirencia
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1

    ## Esitmación modelo robusto aic agregando efecto de tiempo: ----
    # Se dejan las mismas variables seleccionadas con el aicc para modelo con controles.
    # Se omite 2010 al 2012 y 2023 por multicolinealidad
    modelo_robusto_adq_con_cont_aicc_ef<-rlm(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 + Año_2014 +
                                               Año_2015 + Año_2016 + Año_2017 +
                                               Año_2018 + Año_2019 +
                                               Año_2020 + Año_2021 + Año_2022 + Cuenta + Valor_prom +
                                               Europa, data = datos_adq) # , method="M" , maxit = 100
    # Pronóstico

    # Sin regulación
    pred_adq_con_cont_sin_reg_robusto_aicc_ef<-predict(modelo_robusto_adq_con_cont_aicc_ef,newdata = datos,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(datos$Codigo_Pais=="CRI")]
    # Con regulación
    pred_adq_con_cont_con_reg_robusto_aicc_ef<-predict(modelo_robusto_adq_con_cont_aicc_ef,newdata = data_CR,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con ajuste
    #round((pred_adq_con_cont_con_reg_robusto_aicc_ef-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)

    # Visualización
    stargazer(modelo_robusto_adq_con_cont_aicc_ef, type = "html",
              title = "Regresión robusta - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| MCO
Regulacion_intercambio | -0.621***
| (0.099)
Año_2013 | 0.328
| (0.470)
Año_2014 | -0.028
| (0.442)
Año_2015 | 0.106
| (0.428)
Año_2016 | 0.140
| (0.420)
Año_2017 | 0.065
| (0.409)
Año_2018 | 0.035
| (0.416)
Año_2019 | -0.225
| (0.418)
Año_2020 | -0.140
| (0.416)
Año_2021 | -0.229
| (0.427)
Año_2022 | -0.175
| (0.429)
Cuenta | -0.018***
| (0.002)
Valor_prom | -0.004***
| (0.001)
Europa | -0.719***
| (0.115)
Constant | 3.886***
| (0.417)
Observations | 93
Residual Std. Error | 0.324 (df = 78)
Note: | p<0.1; p<0.05; p<0.01

    # Se carga la base otra vez para analizar adquirencia.
    direccion1<-direccion
    datos <- read_excel(paste0(direccion1,"Base_datos_adquirencia_intercambio.xlsx"))
    # datos de adquirencia
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    # Selección modelo con BIC y efectos de tiempo:
    ## Se dejan las mismas variables seleccionadas con el aicc para modelo con controles.
    # Se quitaron algunos años por problemas de colinealidad
    # Se omite 2010 al 2012 y 2023 por multicolinealidad
    modelo_robusto_adq_con_cont_bic_ef<-rlm(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
                                                Año_2014 + Año_2015 + Año_2016 + Año_2017 +
                                              Año_2018 + Año_2019 + Año_2020 + Año_2021  + Año_2022 +
                                              Cuenta + Valor_prom + Europa,
                                            data = datos_adq, method="M") #, maxit = 100

    #modelo_robusto_adq_con_cont_aicc_ef<-rlm(formula = Adquirencia ~ Regulacion_intercambio + Año_2013 +
    #                                           Año_2014 + Año_2015 + Año_2016 + Año_2017 +
    #                                           Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 +
    #                                           Cuenta + Valor_prom + Europa
    #                                         , data = datos_adq, method="MM", maxit = 100)

    # Pronóstico
    # Sin regulación
    pred_adq_con_cont_sin_reg_robusto_bic_ef<-predict(modelo_robusto_adq_con_cont_bic_ef,newdata = datos,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con regulación
    pred_adq_con_cont_con_reg_robusto_bic_ef<-predict(modelo_robusto_adq_con_cont_bic_ef,newdata = data_CR,
                                                   interval = "prediction", level = 0.95,
                                                   type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # Con ajuste
    #round((pred_adq_con_cont_con_reg_robusto_bic_ef-(1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)
    # Visualización
    stargazer(modelo_robusto_adq_con_cont_bic_ef, type = "html",
              title = "Regresión robusta - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Regresión robusta - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| MCO
Regulacion_intercambio | -0.621***
| (0.099)
Año_2013 | 0.328
| (0.470)
Año_2014 | -0.028
| (0.442)
Año_2015 | 0.106
| (0.428)
Año_2016 | 0.140
| (0.420)
Año_2017 | 0.065
| (0.409)
Año_2018 | 0.035
| (0.416)
Año_2019 | -0.225
| (0.418)
Año_2020 | -0.140
| (0.416)
Año_2021 | -0.229
| (0.427)
Año_2022 | -0.175
| (0.429)
Cuenta | -0.018***
| (0.002)
Valor_prom | -0.004***
| (0.001)
Europa | -0.719***
| (0.115)
Constant | 3.886***
| (0.417)
Observations | 93
Residual Std. Error | 0.324 (df = 78)
Note: | p<0.1; p<0.05; p<0.01

## 3.7 Restringir la muestra a los países regulados

    #Con solo países regulados en intercambio sin logaritmo

    datos_adq_reg<-datos_adq[datos_adq$Regulacion_intercambio==1,]

    #Regresión sin controles no se hace acá

    #Regresión con todos los controles
    modelo_adq_reg_con_cont<-lm(Adquirencia ~ Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito +
                                  Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                  Am_lat, datos_adq_reg)

    modelo_adq_reg_con_cont_corr_hc<-coeftest(modelo_adq_reg_con_cont, vcov. = vcovHC(modelo_adq_reg_con_cont, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_corr_hac<-coeftest(modelo_adq_reg_con_cont, vcov. = vcovHAC(modelo_adq_reg_con_cont, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_adq_reg_con_cont, modelo_adq_reg_con_cont_corr_hc, type = "html", title = "Regresión sobre la tasa de adquirencia con todos los controles, solo muestra con países regulados",
    #          column.labels = c("MCO","MCO HC"), model.names = F, dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_reg_con_cont<-predict(modelo_adq_reg_con_cont, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Regresión con todos los controles más efectos fijos de tiempo
    modelo_adq_reg_con_cont_ef<-lm(Adquirencia ~ Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito +
                                  Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                  Am_lat + Año_2010 + Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
                                    Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023, datos_adq_reg)

    modelo_adq_reg_con_cont_ef_corr_hc<-coeftest(modelo_adq_reg_con_cont_ef, vcov. = vcovHC(modelo_adq_reg_con_cont_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_ef_corr_hac<-coeftest(modelo_adq_reg_con_cont_ef, vcov. = vcovHAC(modelo_adq_reg_con_cont_ef, adjust = TRUE, sandwich = TRUE))

    #stargazer(modelo_adq_reg_con_cont_ef, modelo_adq_reg_con_cont_ef_corr_hc, type = "html",
    #          title = "Regresión sobre la tasa de adquirencia con controles y efectos fijos de tiempo, solo muestra con países regulados",
    #          column.labels = c("MCO","MCO HC"), model.names = F,
    #          dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

    #Pronóstico para CR
    #Con regulación
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    pred_adq_reg_con_cont_ef<-predict(modelo_adq_reg_con_cont_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña)
    #Se elimina la tasa de adquirencia en los datos para evitar sus NAs

    modelo_adq_reg_con_cont_aicc<-lm(Adquirencia ~ Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito +
                                       Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                       Asia_Este + Am_lat, datos_adq_reg)

    variables_controles<-c("Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa",
                           "Asia_Este", "Am_lat")

    controles<- datos_adq_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC1<-aicc(modelo_adq_reg_con_cont_aicc)

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #Ya no se eliminan columnas
    controles1<-controles

    #variables a usar
    #variables_controles

    modelo_adq_reg_con_cont_aicc<-lm(Adquirencia ~ Cajero_Autom + Cuenta + Debito + Densidad_Pob + Densidad_Neg + ICH + Valor_prom +
                                       Europa + Asia_Este, datos_adq_reg)

    modelo_adq_reg_con_cont_aicc_corr_hc<-coeftest(modelo_adq_reg_con_cont_aicc, vcov. = vcovHC(modelo_adq_reg_con_cont_aicc, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_aicc_corr_hac<-coeftest(modelo_adq_reg_con_cont_aicc, vcov. = vcovHAC(modelo_adq_reg_con_cont_aicc, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_reg_con_cont_aicc, modelo_adq_reg_con_cont_aicc_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Cajero_Autom | -0.004*** | -0.004**
| (0.001) | (0.002)
Cuenta | -0.019*** | -0.019***
| (0.005) | (0.003)
Debito | 0.008* | 0.008**
| (0.004) | (0.003)
Densidad_Pob | -0.001*** | -0.001***
| (0.0002) | (0.0003)
Densidad_Neg | 0.029*** | 0.029***
| (0.010) | (0.011)
ICH | 2.439** | 2.439*
| (1.015) | (1.278)
Valor_prom | 0.004** | 0.004**
| (0.002) | (0.002)
Europa | -1.193*** | -1.193***
| (0.162) | (0.191)
Asia_Este | -0.822*** | -0.822***
| (0.223) | (0.233)
Constant | 1.330** | 1.330
| (0.606) | (0.841)
Observations | 56 |
R2 | 0.898 |
Adjusted R2 | 0.878 |
Residual Std. Error | 0.237 (df = 46) |
F Statistic | 45.034*** (df = 9; 46) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el BIC
    modelo_adq_reg_con_cont_bic<-lm(Adquirencia ~ Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito +
                                      Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este +
                                      Am_lat, datos_adq_reg)

    variables_controles<-c("Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob",
                           "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC1<-BIC(modelo_adq_reg_con_cont_bic)

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #Ya no se eliminan columnas
    controles2<-controles
    #variables a usar
    #variables_controles

    modelo_adq_reg_con_cont_bic<-lm(Adquirencia ~ Cajero_Autom + Cuenta + Debito + Densidad_Pob + Densidad_Neg + ICH + Valor_prom + Europa +
                                      Asia_Este, datos_adq_reg)

    modelo_adq_reg_con_cont_bic_corr_hc<-coeftest(modelo_adq_reg_con_cont_bic, vcov. = vcovHC(modelo_adq_reg_con_cont_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_bic_corr_hac<-coeftest(modelo_adq_reg_con_cont_bic, vcov. = vcovHAC(modelo_adq_reg_con_cont_bic, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_reg_con_cont_bic, modelo_adq_reg_con_cont_bic_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Cajero_Autom | -0.004*** | -0.004**
| (0.001) | (0.002)
Cuenta | -0.019*** | -0.019***
| (0.005) | (0.003)
Debito | 0.008* | 0.008**
| (0.004) | (0.003)
Densidad_Pob | -0.001*** | -0.001***
| (0.0002) | (0.0003)
Densidad_Neg | 0.029*** | 0.029***
| (0.010) | (0.011)
ICH | 2.439** | 2.439*
| (1.015) | (1.278)
Valor_prom | 0.004** | 0.004**
| (0.002) | (0.002)
Europa | -1.193*** | -1.193***
| (0.162) | (0.191)
Asia_Este | -0.822*** | -0.822***
| (0.223) | (0.233)
Constant | 1.330** | 1.330
| (0.606) | (0.841)
Observations | 56 |
R2 | 0.898 |
Adjusted R2 | 0.878 |
Residual Std. Error | 0.237 (df = 46) |
F Statistic | 45.034*** (df = 9; 46) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_adq_reg_con_cont_aicc_ef<-lm(Adquirencia ~ Año_2010 + Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 +
                                          Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                          Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                          Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat,
                                        datos_adq_reg)

    variables_controles<-c("Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022", "Año_2023", "Cajero_Autom", "Crimen", "Cuenta",
                           "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC1<-aicc(modelo_adq_reg_con_cont_aicc_ef)

    for (i in 1:(ncol(controles)-13)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc es menor al eliminar la columna 16
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 2
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc es menor al eliminar la columna 18
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 3
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc es menor al eliminar la columna 21
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 4
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #El AICc es menor al eliminar la columna 24
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 5
    AICC<-c()
    AICC1<-aicc(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(AICC)<AICC1
    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    #variables_controles
    # Se omiten los los Años 2010 al 2013, 2015 y 2022 por colinealidad
    modelo_adq_reg_con_cont_aicc_ef<-lm(Adquirencia ~ Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                          Año_2022 + Cajero_Autom + Credito + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Pago_digital +
                                          Valor_prom + Asia_Este + Am_lat, datos_adq_reg)

    modelo_adq_reg_con_cont_aicc_ef_corr_hc<-coeftest(modelo_adq_reg_con_cont_aicc_ef, vcov. = vcovHC(modelo_adq_reg_con_cont_aicc_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_aicc_ef_corr_hac<-coeftest(modelo_adq_reg_con_cont_aicc_ef, vcov. = vcovHAC(modelo_adq_reg_con_cont_aicc_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_reg_con_cont_aicc_ef, modelo_adq_reg_con_cont_aicc_ef_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Año_2014 | -2.449*** | -2.449***
| (0.366) | (0.259)
Año_2015 | -2.462*** | -2.462***
| (0.351) | (0.254)
Año_2016 | -2.582*** | -2.582***
| (0.384) | (0.304)
Año_2017 | -2.408*** | -2.408***
| (0.375) | (0.315)
Año_2018 | -2.587*** | -2.587***
| (0.370) | (0.296)
Año_2019 | -2.625*** | -2.625***
| (0.370) | (0.296)
Año_2020 | -2.600*** | -2.600***
| (0.362) | (0.265)
Año_2021 | -2.598*** | -2.598***
| (0.360) | (0.265)
Año_2022 | -2.576*** | -2.576***
| (0.364) | (0.273)
Cajero_Autom | -0.005*** | -0.005*
| (0.001) | (0.002)
Credito | 0.009** | 0.009
| (0.004) | (0.006)
Densidad_Pob | -0.001*** | -0.001**
| (0.0002) | (0.0003)
Densidad_Neg | 0.041*** | 0.041***
| (0.010) | (0.012)
PIB_pc_PPA | -0.00001* | -0.00001
| (0.00000) | (0.00000)
ICH | 4.708*** | 4.708**
| (1.493) | (1.852)
Pago_digital | -0.010** | -0.010*
| (0.005) | (0.006)
Valor_prom | 0.005** | 0.005**
| (0.002) | (0.002)
Asia_Este | 0.384** | 0.384**
| (0.149) | (0.146)
Am_lat | 1.658*** | 1.658***
| (0.175) | (0.141)
Constant | 0.469 | 0.469
| (0.761) | (0.781)
Observations | 56 |
R2 | 0.938 |
Adjusted R2 | 0.906 |
Residual Std. Error | 0.209 (df = 36) |
F Statistic | 28.746*** (df = 19; 36) |
Note: | p<0.1; p<0.05; p<0.01

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_adq_reg_con_cont_bic_ef<-lm(Adquirencia ~ Año_2010 + Año_2011 + Año_2012 + Año_2013 + Año_2014 + Año_2015 +
                                          Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                          Cajero_Autom + Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                          Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa + Asia_Este + Am_lat,
                                        datos_adq_reg)

    variables_controles<-c("Año_2010", "Año_2011", "Año_2012", "Año_2013", "Año_2014", "Año_2015", "Año_2016",
                           "Año_2017", "Año_2018", "Año_2019", "Año_2020", "Año_2021", "Año_2022","Año_2023", "Cajero_Autom",
                           "Crimen", "Cuenta","Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg",
                           "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq_reg %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC1<-BIC(modelo_adq_reg_con_cont_bic_ef)

    for (i in 1:(ncol(controles)-13)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 2
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 3
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 4
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #El BIC elimina la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 5
    BIC<-c()
    BIC1<-BIC(lm(Adquirencia ~ controles, datos_adq_reg))

    for (i in 1:(ncol(controles)-13)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)], datos_adq_reg))
    }

    #min(BIC)<BIC1
    #No se eliminan más columnas
    controles4<-controles
    #Variables a usar
    variables_controles

[1] “Año_2010” “Año_2011” “Año_2012” “Año_2013” “Año_2014”
[6] “Año_2015” “Año_2016” “Año_2017” “Año_2018” “Año_2019”
[11] “Año_2020” “Año_2021” “Año_2022” “Año_2023” “Cajero_Autom” [16] “Pago_digital” “Credito” “Densidad_Pob” “Densidad_Neg” “PIB_pc_PPA”
[21] “ICH” “Valor_prom” “Asia_Este” “Am_lat”

    # Se omiten los años 2010 al 2013, 2015 y 2022 por colinealidad
    modelo_adq_reg_con_cont_bic_ef<-lm(Adquirencia ~ #Año_2010 + Año_2011 + Año_2012 + Año_2013 +
                                         Año_2014 + Año_2015 +
                                         Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 + #Año_2023 +
                                         Cajero_Autom + Pago_digital + Credito +
                                         Densidad_Pob + Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Asia_Este + Am_lat,
                                       datos_adq_reg)

    modelo_adq_reg_con_cont_bic_ef_corr_hc<-coeftest(modelo_adq_reg_con_cont_bic_ef, vcov. = vcovHC(modelo_adq_reg_con_cont_bic_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_reg_con_cont_bic_ef_corr_hac<-coeftest(modelo_adq_reg_con_cont_bic_ef, vcov. = vcovHAC(modelo_adq_reg_con_cont_bic_ef, adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_reg_con_cont_bic_ef, modelo_adq_reg_con_cont_bic_ef_corr_hc, type = "html",
              title = "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"), dep.var.caption = "Variable dependiente")

Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Año_2014 | -2.449*** | -2.449***
| (0.366) | (0.259)
Año_2015 | -2.462*** | -2.462***
| (0.351) | (0.254)
Año_2016 | -2.582*** | -2.582***
| (0.384) | (0.304)
Año_2017 | -2.408*** | -2.408***
| (0.375) | (0.315)
Año_2018 | -2.587*** | -2.587***
| (0.370) | (0.296)
Año_2019 | -2.625*** | -2.625***
| (0.370) | (0.296)
Año_2020 | -2.600*** | -2.600***
| (0.362) | (0.265)
Año_2021 | -2.598*** | -2.598***
| (0.360) | (0.265)
Año_2022 | -2.576*** | -2.576***
| (0.364) | (0.273)
Cajero_Autom | -0.005*** | -0.005*
| (0.001) | (0.002)
Pago_digital | -0.010** | -0.010*
| (0.005) | (0.006)
Credito | 0.009** | 0.009
| (0.004) | (0.006)
Densidad_Pob | -0.001*** | -0.001**
| (0.0002) | (0.0003)
Densidad_Neg | 0.041*** | 0.041***
| (0.010) | (0.012)
PIB_pc_PPA | -0.00001* | -0.00001
| (0.00000) | (0.00000)
ICH | 4.708*** | 4.708**
| (1.493) | (1.852)
Valor_prom | 0.005** | 0.005**
| (0.002) | (0.002)
Asia_Este | 0.384** | 0.384**
| (0.149) | (0.146)
Am_lat | 1.658*** | 1.658***
| (0.175) | (0.141)
Constant | 0.469 | 0.469
| (0.761) | (0.781)
Observations | 56 |
R2 | 0.938 |
Adjusted R2 | 0.906 |
Residual Std. Error | 0.209 (df = 36) |
F Statistic | 28.746*** (df = 19; 36) |
Note: | p<0.1; p<0.05; p<0.01

## 3.8 Predicción de las comisiones de adquirencia

    #Pronósticos de la tasa de Adquirencia

    #Predicción con dicotómica con regulación
    # Se usa data_CR porque se le asignó a CR como regulado
    pred1_adq_con_reg<-predict(modelo_adq_con_cont_aicc, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred2_adq_con_reg<-predict(modelo_adq_con_cont_bic, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred3_adq_con_reg<-predict(modelo_adq_con_cont_aicc_ef, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred4_adq_con_reg<-predict(modelo_adq_con_cont_bic_ef, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred_adq_con_reg<-mean(c(as.numeric(pred1_adq_con_reg),
                             as.numeric(pred2_adq_con_reg),
                             as.numeric(pred3_adq_con_reg),
                             as.numeric(pred4_adq_con_reg)))
    pred_adq_con_reg

    ## [1] 1.886054

    # Con ajuste

    pred_adq_con_reg_ajus<-round((pred_adq_con_reg-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)
    pred_adq_con_reg_ajus

    ## [1] 1.96

    ##########################################
    #Pronósticos con logaritmo toda la muestra

    #Predicción con dicotómica sin regulación
    pred1_log_adq_sin_reg<-exp(predict(modelo_log_adq_con_cont_aicc, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")])

    pred2_log_adq_sin_reg<-exp(predict(modelo_log_adq_con_cont_bic, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")])

    pred3_log_adq_sin_reg<-exp(predict(modelo_log_adq_con_cont_aicc_ef, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")])
    pred4_log_adq_sin_reg<-exp(predict(modelo_log_adq_con_cont_bic_ef, newdata = datos,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(datos$Codigo_Pais=="CRI")])

    pred_log_adq_sin_reg<-mean(c(as.numeric(pred1_log_adq_sin_reg), as.numeric(pred2_log_adq_sin_reg), as.numeric(pred3_log_adq_sin_reg), as.numeric(pred4_log_adq_sin_reg)))

    pred_adq_con_reg<-mean(c(as.numeric(pred1_adq_con_reg), as.numeric(pred2_adq_con_reg), as.numeric(pred3_adq_con_reg), as.numeric(pred4_adq_con_reg)))

    # Con ajuste
    pred_log_adq_sin_reg_ajus<-(pred_log_adq_sin_reg-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08)

    #Predicción con dicotómica con regulación
    pred1_log_adq_con_reg<- exp(predict(modelo_log_adq_con_cont_aicc, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred2_log_adq_con_reg<-exp(predict(modelo_log_adq_con_cont_bic, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred3_log_adq_con_reg<-exp(predict(modelo_log_adq_con_cont_aicc_ef, newdata = data_CR,
                                          interval = "prediction", level = 0.95,
                                          type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred4_log_adq_con_reg<-exp(predict(modelo_log_adq_con_cont_bic_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")])

    pred_log_adq_con_reg<-mean(c(as.numeric(pred1_log_adq_con_reg), as.numeric(pred2_log_adq_con_reg), as.numeric(pred3_log_adq_con_reg), as.numeric(pred4_log_adq_con_reg)))

    # Con ajuste
    pred_log_adq_con_reg_ajus<-round((pred_log_adq_con_reg-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)
    pred_log_adq_con_reg_ajus

    ## [1] 1.76

    ##########################################
    #Pronósticos sin logaritmo solo países regulados en la muestra
    pred1_adq_reg<-predict(modelo_adq_reg_con_cont_aicc, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    pred2_adq_reg<-predict(modelo_adq_reg_con_cont_bic, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    pred3_adq_reg<-predict(modelo_adq_reg_con_cont_aicc_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred4_adq_reg<-predict(modelo_adq_reg_con_cont_bic_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]

    pred_adq_reg<-mean(c(as.numeric(pred1_adq_reg),
                         as.numeric(pred2_adq_reg),
                         as.numeric(pred3_adq_reg),
                         as.numeric(pred4_adq_reg)))
    # CON AJUSTE
    pred_adq_reg_ajus<-round((pred_adq_reg-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))/(0.77 + 0.08),2)

    ####################################
    #Tabla pronósticos -----

    pronosticos_adq<-as.data.frame(round(
                                   cbind(
                                         c( pred_adq_sin_cont_con_reg,
                                            #pred_adq_con_cont_con_reg,
                                            #pred_adq_con_cont_ef_con_reg,
                                            pred1_adq_con_reg,
                                            pred2_adq_con_reg,
                                            pred3_adq_con_reg,
                                            pred4_adq_con_reg,
                                            pred_adq_con_reg)
                                         ),2))

    rownames(pronosticos_adq)<-c("Estimación principal - Modelo sin controles",
                                 "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
                                 "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
                                 "Estimación principal - Modelo AICc con efectos fijos de tiempo",
                                 "Estimación principal - Modelo BIC con efectos fijos de tiempo",
                                 "Estimación principal - Promedio modelos AICc y BIC")

    names(pronosticos_adq)<-c("Escenario con regulación")
    # Visualización
    DT::datatable(pronosticos_adq, caption = "Comisión de adquirencia esperada para Costa Rica de acuerdo con la estimación principal")

    #Tabla pronósticos alternativos con log
    pronosticos_adq_alt_log<-as.data.frame(round(
                                            cbind(
                                                 c( #pred_log_adq_sin_cont_con_reg,
                                                    #pred_log_adq_con_cont_con_reg,
                                                    #pred_log_adq_con_cont_ef_con_reg,
                                                    pred1_log_adq_con_reg,
                                                    pred2_log_adq_con_reg,
                                                    pred3_log_adq_con_reg,
                                                    pred4_log_adq_con_reg,
                                                    pred_log_adq_con_reg) ),2))

    rownames(pronosticos_adq_alt_log)<-c(
                                         "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
                                         "Modelo con transformación logarítmica - Promedio modelos AICc y BIC")

    names(pronosticos_adq_alt_log)<-c("Escenario con regulación")
    # Visualización
    DT::datatable(pronosticos_adq_alt_log, caption = "Comisión de adquirencia esperada para Costa Rica de acuerdo con el modelo con transformación logarítmica")

    #Tabla pronósticos alternativos solo muestra regulados ----

    pronosticos_adq_alt_reg<-as.data.frame(cbind(round(
                                                  c( #pred_adq_reg_con_cont,
                                                     #pred_adq_reg_con_cont_ef,
                                                     pred1_adq_reg,
                                                     pred2_adq_reg,
                                                     pred3_adq_reg,
                                                     pred4_adq_reg,
                                                     pred_adq_reg),3)
                                                  ) )
    rownames(pronosticos_adq_alt_reg)<-c(
                                        #"Modelo con controles sin efectos fijos de tiempo",
                                         #"Modelo con controles con efectos fijos de tiempo",
                                         "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
                                         "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
                                         "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
                                         "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
                                         "Regulación en intercambio o adquirencia - Promedio modelos AICc y BIC")

    names(pronosticos_adq_alt_reg)<-c("Pronóstico con solo muestra de países regulados")
    # Visualización
    DT::datatable(pronosticos_adq_alt_reg, caption = "Comisión de adquirencia esperada para Costa Rica al restringir a países con regulación")

## 3.9 Ampliar la definición de regulación

En el análisis principal, la variable regulación hace referencia a regulación en las comisiones de Adquirencia. Esto se debe a que son relativamente pocos los países que regulan adquirencia. Sin embargo, es posible generar una variable dicotómica que haga referencia a que el país en cuestión tiene regulación sobre Adquirencia o adquirencia.

    # Lectura de datos
    direccion1<-direccion
    datos <- read_excel(paste0(direccion1,"Base_datos_adquirencia_intercambio.xlsx"))

    # Creaci{on de la variable de regulación ampliada
    datos<-datos %>% mutate( Regulacion_inter_adq = if_else(Regulacion_adquirencia==1 | Regulacion_intercambio == 1
                                                           ,1,0)
    )
    table(datos$Regulacion_inter_adq)

    ##
    ##   0   1
    ##  96 117

    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_inter_adq") ]<-1

- Selección de variables con AICc:

    # Selección con AICc
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    # Estimación modelo
    modelo_adq_con_cont_aicc_ampli<-lm(formula = Adquirencia ~ Regulacion_inter_adq + Cajero_Autom +
                                   Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                   Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_inter_adq", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_con_cont_aicc_ampli)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 13
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 8
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc elimina la siguiente variable
    controles<-controles[,-which.min(AICC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)],"' "))
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_adq_con_cont_aicc_ampli=lm(Adquirencia ~ Regulacion_inter_adq + Cuenta + Valor_prom + Europa, datos_adq)
    #Pronóstico para CR
    #Sin regulación
    pred_adq_con_cont_aicc_sin_reg_ampli<-predict(modelo_adq_con_cont_aicc_ampli, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_adq_con_cont_aicc_con_reg_ampli<-predict(modelo_adq_con_cont_aicc_ampli, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    modelo_adq_con_cont_aicc_ampli_corr_hc<-coeftest(modelo_adq_con_cont_aicc_ampli, vcov. = vcovHC(modelo_adq_con_cont_aicc_ampli, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_aicc_ampli_corr_hac<-coeftest(modelo_adq_con_cont_aicc_ampli, vcov. = vcovHAC(modelo_adq_con_cont_aicc_ampli, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_adq_con_cont_aicc_ampli, modelo_adq_con_cont_aicc_ampli_corr_hc, type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.487*** | -0.487***
| (0.131) | (0.137)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004***
| (0.002) | (0.001)
Europa | -0.714*** | -0.714***
| (0.137) | (0.127)
Constant | 3.942*** | 3.942***
| (0.266) | (0.232)
Observations | 93 |
R2 | 0.666 |
Adjusted R2 | 0.650 |
Residual Std. Error | 0.530 (df = 88) |
F Statistic | 43.792*** (df = 4; 88) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables con BIC:

    # Selección con AICc
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    #modelo inicial
    modelo_adq_con_cont_bic_ampli<-lm(Adquirencia ~ Regulacion_inter_adq + Cajero_Autom +
                                  Crimen + Cuenta + Pago_digital + Debito + Credito + Densidad_Pob +
                                  Densidad_Neg + PIB_pc_PPA + ICH + Valor_prom + Europa +
                                  Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_inter_adq", "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito", "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Valor_prom", "Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # método BIC
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_con_cont_bic_ampli)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 14
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 9
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 6
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 5
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    controles<-controles[,-which.min(BIC)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)],"' "))
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #Ya no se eliminan columnas
    controles2<-controles
    print(paste0("Las variables que seleccionó el criterio son: ",variables_controles))

    ## [1] "Las variables que seleccionó el criterio son: Regulacion_inter_adq"
    ## [2] "Las variables que seleccionó el criterio son: Cuenta"
    ## [3] "Las variables que seleccionó el criterio son: Valor_prom"
    ## [4] "Las variables que seleccionó el criterio son: Europa"

    # Estimación
    modelo_adq_con_cont_bic_ampli=lm(Adquirencia ~ Regulacion_inter_adq + Cuenta + Valor_prom + Europa, datos_adq)
    #Pronóstico para CR
    #Con regulación
    pred_adq_con_cont_bic_con_reg_ampli<-predict(modelo_adq_con_cont_bic_ampli, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    modelo_adq_con_cont_bic_ampli_corr_hc<-coeftest(modelo_adq_con_cont_bic_ampli, vcov. = vcovHC(modelo_adq_con_cont_bic_ampli, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_bic_ampli_corr_hac<-coeftest(modelo_adq_con_cont_bic_ampli, vcov. = vcovHAC(modelo_adq_con_cont_bic_ampli, adjust = TRUE, sandwich = TRUE))
    # Visualización
    stargazer(modelo_adq_con_cont_bic_ampli, modelo_adq_con_cont_bic_ampli_corr_hc, type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.487*** | -0.487***
| (0.131) | (0.137)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004***
| (0.002) | (0.001)
Europa | -0.714*** | -0.714***
| (0.137) | (0.127)
Constant | 3.942*** | 3.942***
| (0.266) | (0.232)
Observations | 93 |
R2 | 0.666 |
Adjusted R2 | 0.650 |
Residual Std. Error | 0.530 (df = 88) |
F Statistic | 43.792*** (df = 4; 88) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante AICc con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el AICc (corrige por tamaño de muestra pequeña), más efectos fijos de tiempo
    modelo_adq_con_cont_ef_aicc_amp<-lm(Adquirencia ~ Regulacion_inter_adq + Año_2010 +
                                      Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                      Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                      Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                      Debito + Credito + Densidad_Pob + Densidad_Neg +
                                      PIB_pc_PPA + ICH + Valor_prom + Europa +
                                      Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_inter_adq", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022", "Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de años + regulación
    cvar<-14
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_con_cont_ef_aicc_amp)

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 15
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la columna 19
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 7
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 8
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]
    #Paso 9
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 10
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 11
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(AICC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(AICC)+cvar+1)]

    #Paso 12
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #Ya no se eliminan columnas
    controles3<-controles

    #variables a usar
    #print(paste0("Este criterio deja las siguientes variables: ",variables_controles))

    # Estimación del modelo:
    modelo_adq_con_cont_ef_aicc_amp=lm(Adquirencia ~ Regulacion_inter_adq + Cuenta + Valor_prom + Europa +
                                     Año_2013 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                     Año_2021 + Año_2022 + Año_2023,
                                   data = datos_adq)

    modelo_adq_con_cont_ef_aicc_amp_corr_hc<-coeftest(modelo_adq_con_cont_ef_aicc_amp, vcov. = vcovHC(modelo_adq_con_cont_ef_aicc_amp, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_ef_aicc_amp_corr_hac<-coeftest(modelo_adq_con_cont_ef_aicc_amp, vcov. = vcovHAC(modelo_adq_con_cont_ef_aicc_amp,
                                                                                                        adjust = TRUE, sandwich = TRUE))

    stargazer(modelo_adq_con_cont_ef_aicc_amp, modelo_adq_con_cont_ef_aicc_amp_corr_hc,type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.424*** | -0.424***
| (0.145) | (0.158)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004***
| (0.002) | (0.001)
Europa | -0.757*** | -0.757***
| (0.162) | (0.155)
Año_2013 | 0.448 | 0.448**
| (0.433) | (0.210)
Año_2015 | 0.104 | 0.104
| (0.366) | (0.165)
Año_2016 | 0.201 | 0.201
| (0.329) | (0.224)
Año_2017 | 0.036 | 0.036
| (0.300) | (0.156)
Año_2018 | 0.069 | 0.069
| (0.328) | (0.233)
Año_2019 | -0.150 | -0.150
| (0.333) | (0.181)
Año_2020 | 0.022 | 0.022
| (0.324) | (0.225)
Año_2021 | -0.208 | -0.208
| (0.348) | (0.179)
Año_2022 | 0.214 | 0.214
| (0.348) | (0.464)
Año_2023 | -0.108 | -0.108
| (0.633) | (0.227)
Constant | 3.885*** | 3.885***
| (0.402) | (0.266)
Observations | 93 |
R2 | 0.688 |
Adjusted R2 | 0.632 |
Residual Std. Error | 0.543 (df = 78) |
F Statistic | 12.299*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    pred_modelo_adq_con_cont_aicc_ef_amp_con_reg<-predict(modelo_adq_con_cont_ef_aicc_amp, newdata = data_CR, interval = "prediction",
                                                         level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

- Selección de variables mediante BIC con efectos fijos de tiempo:

    #Seleccionar el modelo utilizando el BIC, más efectos fijos de tiempo
    modelo_adq_con_cont_bic_ef_amp<-lm(Adquirencia ~ Regulacion_inter_adq + Año_2010 + Año_2011 +
                                     Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
                                     Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                     Año_2022 + Año_2023 + Cajero_Autom + Crimen + Cuenta + Pago_digital +
                                     Debito + Credito + Densidad_Pob + Densidad_Neg +
                                     PIB_pc_PPA + ICH + Valor_prom + Europa +
                                     Asia_Este + Am_lat, datos_adq)

    variables_controles<-c("Regulacion_inter_adq", "Año_2010", "Año_2011", "Año_2012",
                           "Año_2013", "Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020", "Año_2021","Año_2022","Año_2023",
                           "Cajero_Autom", "Crimen", "Cuenta", "Pago_digital", "Debito",
                           "Credito", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH",
                           "Valor_prom","Europa", "Asia_Este", "Am_lat")

    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    # cantidad de variables año y regulación
    cvar<-13
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_con_cont_bic_ef_amp)

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 7
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 8
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]
    #Paso 9
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 10
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 11
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 17
    controles<-controles[,-(which.min(BIC)+cvar+1)]
    #print(paste0("Se elimina por este criterio la variable: ","'",variables_controles[which.min(BIC)+cvar+1],"' "))
    variables_controles<-variables_controles[-(which.min(BIC)+cvar+1)]

    #Paso 12
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:(ncol(controles)-cvar)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+cvar+1)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #No se eliminan más columnas
    controles4<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo
    modelo_adq_con_cont_ef_bic=lm(Adquirencia ~ Regulacion_inter_adq + Cuenta + Valor_prom +
                                    Europa + Año_2013 + Año_2014 + Año_2015 + Año_2016 +
                                    Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 +
                                    Año_2022 + Año_2023,
                                  data = datos_adq)

    modelo_adq_con_cont_ef_bic_corr_hc<-coeftest(modelo_adq_con_cont_ef_bic, vcov. = vcovHC(modelo_adq_con_cont_ef_bic, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_adq_con_cont_ef_bic_corr_hac<-coeftest(modelo_adq_con_cont_ef_bic, vcov. = vcovHAC(modelo_adq_con_cont_ef_bic, adjust = TRUE, sandwich = TRUE))
    # Visualización de resultados
    stargazer(modelo_adq_con_cont_ef_bic, modelo_adq_con_cont_ef_bic_corr_hc,type = "html",
              title = "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_inter_adq | -0.424*** | -0.424***
| (0.145) | (0.158)
Cuenta | -0.018*** | -0.018***
| (0.003) | (0.003)
Valor_prom | -0.004** | -0.004***
| (0.002) | (0.001)
Europa | -0.757*** | -0.757***
| (0.162) | (0.155)
Año_2013 | 0.557 | 0.557*
| (0.673) | (0.298)
Año_2014 | 0.108 | 0.108
| (0.633) | (0.227)
Año_2015 | 0.212 | 0.212
| (0.613) | (0.208)
Año_2016 | 0.309 | 0.309
| (0.598) | (0.259)
Año_2017 | 0.145 | 0.145
| (0.585) | (0.220)
Año_2018 | 0.177 | 0.177
| (0.597) | (0.231)
Año_2019 | -0.041 | -0.041
| (0.596) | (0.212)
Año_2020 | 0.131 | 0.131
| (0.590) | (0.272)
Año_2021 | -0.099 | -0.099
| (0.611) | (0.231)
Año_2022 | 0.322 | 0.322
| (0.609) | (0.579)
Año_2023 |  |
Constant | 3.777*** | 3.777***
| (0.602) | (0.154)
Observations | 93 |
R2 | 0.688 |
Adjusted R2 | 0.632 |
Residual Std. Error | 0.543 (df = 78) |
F Statistic | 12.299*** (df = 14; 78) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronóstico para CR
    pred_modelo_adq_con_cont_bic_ef_amp_con_reg<-predict(modelo_adq_con_cont_ef_bic, newdata = data_CR, interval = "prediction",
                                                         level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

## 3.10 Regresión sin variables uso de tarjetas

A continuación se muestran los modelos para tasa de intercambio sin considerar las variables control relacionadas con tarjetas. Siguiendo la metodología anterior, se procede a seleccionar las variables con los criterios de información AICc y BIC.

- Selección de variables mediante AICc sin efectos fijos de tiempo:

    # Selección con AICc
    variables_controles<-c("Regulacion_intercambio","Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Europa", "Asia_Este", "Am_lat")
    datos_adq<-datos %>% dplyr::select(c("Adquirencia",variables_controles)) %>% na.omit()
    # Estimación modelo inicial
    modelo_adq_sin_tarj_aicc<-lm(Adquirencia ~ Regulacion_intercambio + Crimen + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =  datos_adq)
    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_sin_tarj_aicc)

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(AICC)]
    variables_controles<-variables_controles[-which.min(AICC)]
    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(AICC)<AICC[1]
    # El AICC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_adq_sin_tarj_aicc<-lm(Adquirencia ~ Regulacion_intercambio + ICH + Europa + Am_lat, data =  datos_adq)

    modelo_adq_sin_tarj_aicc_corr_hc<-coeftest(modelo_adq_sin_tarj_aicc, vcov. = vcovHC(modelo_adq_sin_tarj_aicc, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_adq_sin_tarj_aicc_corr_hac<-coeftest(modelo_adq_sin_tarj_aicc, vcov. = vcovHAC(modelo_adq_sin_tarj_aicc,
                                                                                                        adjust = TRUE, sandwich = TRUE))
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_adq_sin_tarj_aicc_sin_reg<-predict(modelo_adq_sin_tarj_aicc, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_adq_sin_tarj_aicc_con_reg<-predict(modelo_adq_sin_tarj_aicc, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    #summary(modelo_int_sin_tarj_aicc)
    stargazer(modelo_adq_sin_tarj_aicc, modelo_adq_sin_tarj_aicc_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia","Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.468*** | -0.468***
| (0.134) | (0.139)
ICH | -2.504*** | -2.504***
| (0.800) | (0.805)
Europa | -0.419*** | -0.419***
| (0.151) | (0.130)
Am_lat | 0.396** | 0.396***
| (0.160) | (0.151)
Constant | 3.570*** | 3.570***
| (0.541) | (0.536)
Observations | 103 |
R2 | 0.653 |
Adjusted R2 | 0.639 |
Residual Std. Error | 0.531 (df = 98) |
F Statistic | 46.054*** (df = 4; 98) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC sin efectos fijos de tiempo:

    # Selección con BIC
    variables_controles<-c("Regulacion_intercambio","Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA", "ICH", "Europa", "Asia_Este", "Am_lat")
    datos_adq<-datos %>% dplyr::select(c("Adquirencia",variables_controles)) %>% na.omit()
    # Estimación modelo inicial
    modelo_adq_sin_tarj_bic<-lm(Adquirencia ~ Regulacion_intercambio + Crimen + Densidad_Pob +
                                   Densidad_Neg + PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =  datos_adq)
    controles<- datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()
    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_sin_tarj_bic)

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]
    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]
    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    #El criterio excluye la siguiente variable
    controles<-controles[,-which.min(BIC)]
    variables_controles<-variables_controles[-which.min(BIC)]
    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles, datos_adq))

    for (i in 2:ncol(controles)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i)], datos_adq))
    }
    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación
    modelo_adq_sin_tarj_bic<-lm(Adquirencia ~ Regulacion_intercambio + ICH + Europa + Am_lat, data =  datos_adq)

    modelo_adq_sin_tarj_bic_corr_hc<-coeftest(modelo_adq_sin_tarj_bic, vcov. = vcovHC(modelo_adq_sin_tarj_bic, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_adq_sin_tarj_bic_corr_hac<-coeftest(modelo_adq_sin_tarj_bic, vcov. = vcovHAC(modelo_adq_sin_tarj_bic,
                                                                                                        adjust = TRUE, sandwich = TRUE))
    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_adq_sin_tarj_bic_sin_reg<-predict(modelo_adq_sin_tarj_bic, newdata = datos, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    #Con regulación
    pred_adq_sin_tarj_bic_con_reg<-predict(modelo_adq_sin_tarj_bic, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    #summary(modelo_int_sin_tarj_bic)
    stargazer(modelo_adq_sin_tarj_bic, modelo_adq_sin_tarj_bic_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia","Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.468*** | -0.468***
| (0.134) | (0.139)
ICH | -2.504*** | -2.504***
| (0.800) | (0.805)
Europa | -0.419*** | -0.419***
| (0.151) | (0.130)
Am_lat | 0.396** | 0.396***
| (0.160) | (0.151)
Constant | 3.570*** | 3.570***
| (0.541) | (0.536)
Observations | 103 |
R2 | 0.653 |
Adjusted R2 | 0.639 |
Residual Std. Error | 0.531 (df = 98) |
F Statistic | 46.054*** (df = 4; 98) |
Note: | p<0.1; p<0.05; p<0.01

A continuación se presentan los resultados de usar los criterios de información AICc y BIC incluyendo efectos fijos en los modelos:

- Selección de variables mediante AICc con efectos fijos de tiempo:

    ## Modelo con efectos fijos sin variables de uso tarjetas

    # Selección con AICc
    variables_controles<-c("Regulacion_intercambio","Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022","Año_2023",
                           "Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA",
                           "ICH", "Europa", "Asia_Este", "Am_lat")

    datos_adq<-datos %>% dplyr::select("Adquirencia",variables_controles) %>% na.omit()
    # Estimación modelo inicial
    modelo_adq_sin_tarj_aicc_ef<-lm(Adquirencia ~ Regulacion_intercambio  + Año_2010 +
                                   Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                   Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                   Año_2019 + Año_2020 + Año_2021 + Año_2022 +Año_2023 +
                                   Crimen + Densidad_Pob + Densidad_Neg +
                                   PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =   datos_adq)

    controles<-  datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    AICC<-c()
    AICC[1]<-aicc(modelo_adq_sin_tarj_aicc_ef)

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 2
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 3
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 4
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 5
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    #El AICc es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(AICC)+13)]
    variables_controles<-variables_controles[-(which.min(AICC)+13)]

    #Paso 6
    AICC<-c()
    AICC[1]<-aicc(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      AICC[i]<-aicc(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(AICC)<AICC[1]
    # El AICc ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo:
    # se omite la variable2023 por multicolinealidad
    modelo_adq_sin_tarj_aicc_ef<-lm(Adquirencia ~ Regulacion_intercambio  + Año_2010 + Año_2011 +
                                      Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + # Año_2023 +
                                      ICH + Europa + Am_lat,
                                    data = datos_adq)

    modelo_adq_sin_tarj_aicc_ef_corr_hc<-coeftest(modelo_adq_sin_tarj_aicc_ef, vcov. = vcovHC(modelo_adq_sin_tarj_aicc_ef, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_adq_sin_tarj_aicc_ef_corr_hac<-coeftest(modelo_adq_sin_tarj_aicc_ef, vcov. = vcovHAC(modelo_adq_sin_tarj_aicc_ef,
                                                                                                        adjust = TRUE, sandwich = TRUE))

    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_adq_sin_tarj_aicc_ef_sin_reg<-predict(modelo_adq_sin_tarj_aicc_ef, newdata = datos, interval = "prediction",
                                            level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Con regulación
    pred_adq_sin_tarj_aicc_ef_con_reg<-predict(modelo_adq_sin_tarj_aicc_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    # Visualización
    stargazer(modelo_adq_sin_tarj_aicc_ef, modelo_adq_sin_tarj_aicc_ef_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo",
              column.labels = c("MCO", "MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.464*** | -0.464***
| (0.151) | (0.153)
Año_2010 | -0.172 | -0.172
| (0.835) | (0.317)
Año_2011 | -0.292 | -0.292
| (0.835) | (0.317)
Año_2012 | -0.312 | -0.312
| (0.835) | (0.317)
Año_2013 | -0.333 | -0.333
| (0.702) | (0.465)
Año_2014 | -0.709 | -0.709**
| (0.665) | (0.340)
Año_2015 | -0.542 | -0.542*
| (0.656) | (0.320)
Año_2016 | -0.266 | -0.266
| (0.675) | (0.343)
Año_2017 | -0.357 | -0.357
| (0.657) | (0.350)
Año_2018 | -0.314 | -0.314
| (0.658) | (0.372)
Año_2019 | -0.487 | -0.487
| (0.678) | (0.386)
Año_2020 | -0.542 | -0.542*
| (0.642) | (0.323)
Año_2021 | -0.747 | -0.747**
| (0.676) | (0.362)
Año_2022 | -0.370 | -0.370
| (0.675) | (0.579)
ICH | -2.480** | -2.480**
| (1.008) | (1.018)
Europa | -0.443** | -0.443***
| (0.172) | (0.157)
Am_lat | 0.433** | 0.433**
| (0.181) | (0.168)
Constant | 3.971*** | 3.971***
| (0.672) | (0.398)
Observations | 103 |
R2 | 0.681 |
Adjusted R2 | 0.617 |
Residual Std. Error | 0.546 (df = 85) |
F Statistic | 10.681*** (df = 17; 85) |
Note: | p<0.1; p<0.05; p<0.01

- Selección de variables mediante BIC con efectos fijos de tiempo:

    # Selección con BIC
    variables_controles<-c("Regulacion_intercambio","Año_2010", "Año_2011", "Año_2012",
                           "Año_2013","Año_2014", "Año_2015", "Año_2016", "Año_2017",
                           "Año_2018", "Año_2019", "Año_2020","Año_2021", "Año_2022", "Año_2023",
                           "Crimen", "Densidad_Pob", "Densidad_Neg", "PIB_pc_PPA",
                           "ICH", "Europa", "Asia_Este", "Am_lat")

    datos_adq<-datos %>% dplyr::select(c("Adquirencia",variables_controles)) %>% na.omit()
    # Estimación modelo inicial
    modelo_adq_sin_tarj_bic_ef<-lm(Adquirencia ~ Regulacion_intercambio  + Año_2010 +
                                   Año_2011 + Año_2012 + Año_2013 + Año_2014 +
                                   Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                   Año_2019 + Año_2020 + Año_2021 + Año_2022 + Año_2023 +
                                   Crimen + Densidad_Pob + Densidad_Neg +
                                   PIB_pc_PPA + ICH + Europa + Asia_Este +
                                   Am_lat, data =   datos_adq)

    controles<-  datos_adq %>% dplyr::select(c(variables_controles)) %>% as.matrix()

    #Paso 1
    BIC<-c()
    BIC[1]<-BIC(modelo_adq_sin_tarj_bic_ef)

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la siguiente variable
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 2
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 3
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 4
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 5
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    #El BIC es menor al eliminar la columna 15
    controles<-controles[,-(which.min(BIC)+13)]
    variables_controles<-variables_controles[-(which.min(BIC)+13)]

    #Paso 6
    BIC<-c()
    BIC[1]<-BIC(lm(Adquirencia ~ controles,  datos_adq))

    for (i in 2:(ncol(controles)-12)) {
      BIC[i]<-BIC(lm(Adquirencia ~ controles[,-c(i+13)],  datos_adq))
    }

    #min(BIC)<BIC[1]
    # El BIC ya no es menor, entonces no se eliminan columnas
    controles1<-controles
    #print(paste0("El criterio deja las siguientes variables: ","'",variables_controles,"' "))

    # Estimación del modelo:
    # Se omite 2023 por multicolinealidad
    modelo_adq_sin_tarj_bic_ef<-lm(Adquirencia ~ Regulacion_intercambio  + Año_2010 + Año_2011 + Año_2012 +
                                      Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 +
                                      Año_2019 + Año_2020 + Año_2021 + Año_2022 + #Año_2023 +
                                     ICH + Europa + Am_lat,
                                    data =   datos_adq)

    modelo_adq_sin_tarj_bic_ef_corr_hc<-coeftest(modelo_adq_sin_tarj_bic_ef, vcov. = vcovHC(modelo_adq_sin_tarj_bic_ef, "HC1",
                                                                                                      adjust = TRUE, sandwich = TRUE))

    modelo_adq_sin_tarj_bic_ef_corr_hac<-coeftest(modelo_adq_sin_tarj_bic_ef, vcov. = vcovHAC(modelo_adq_sin_tarj_bic_ef,
                                                                                                        adjust = TRUE, sandwich = TRUE))

    #Pronóstico para CR
    #Con solo una variable:
    data_CR<-datos
    data_CR[ which(datos$Codigo_Pais=="CRI"), which(names(datos)=="Regulacion_intercambio") ]<-1
    #Sin regulación
    pred_adq_sin_tarj_bic_ef_sin_reg<-predict(modelo_adq_sin_tarj_bic_ef, newdata = datos, interval = "prediction",
                                            level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]

    #Con regulación
    pred_adq_sin_tarj_bic_ef_con_reg<-predict(modelo_adq_sin_tarj_bic_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(datos$Codigo_Pais=="CRI")]
    # Visualización
    stargazer(modelo_adq_sin_tarj_bic_ef, modelo_adq_sin_tarj_bic_ef_corr_hc, type = "html",
              title = "Modelo sin uso de tarjetas - Modelo BIC con efectos fijos de tiempo",
              column.labels = c("MCO","MCO HC"), model.names = F,
              dep.var.labels = c("Tasa Adquirencia", "Tasa Adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo sin uso de tarjetas - Modelo BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa Adquirencia | Tasa Adquirencia
| MCO | MCO HC
| (1) | (2)
Regulacion_intercambio | -0.464*** | -0.464***
| (0.151) | (0.153)
Año_2010 | -0.172 | -0.172
| (0.835) | (0.317)
Año_2011 | -0.292 | -0.292
| (0.835) | (0.317)
Año_2012 | -0.312 | -0.312
| (0.835) | (0.317)
Año_2013 | -0.333 | -0.333
| (0.702) | (0.465)
Año_2014 | -0.709 | -0.709**
| (0.665) | (0.340)
Año_2015 | -0.542 | -0.542*
| (0.656) | (0.320)
Año_2016 | -0.266 | -0.266
| (0.675) | (0.343)
Año_2017 | -0.357 | -0.357
| (0.657) | (0.350)
Año_2018 | -0.314 | -0.314
| (0.658) | (0.372)
Año_2019 | -0.487 | -0.487
| (0.678) | (0.386)
Año_2020 | -0.542 | -0.542*
| (0.642) | (0.323)
Año_2021 | -0.747 | -0.747**
| (0.676) | (0.362)
Año_2022 | -0.370 | -0.370
| (0.675) | (0.579)
ICH | -2.480** | -2.480**
| (1.008) | (1.018)
Europa | -0.443** | -0.443***
| (0.172) | (0.157)
Am_lat | 0.433** | 0.433**
| (0.181) | (0.168)
Constant | 3.971*** | 3.971***
| (0.672) | (0.398)
Observations | 103 |
R2 | 0.681 |
Adjusted R2 | 0.617 |
Residual Std. Error | 0.546 (df = 85) |
F Statistic | 10.681*** (df = 17; 85) |
Note: | p<0.1; p<0.05; p<0.01

## 3.11 Regresión con variables instrumentales

    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    #Sin los efectos del tiempo:
    modelo_iv_adq<-ivreg(formula = Adquirencia ~ Valor_prom + Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg +  PIB_pc_PPA + Europa + Asia_Este + Am_lat | Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat + ICH, data = datos)

    # Prueba de Hausman:
    # Al realizar la prueba de Hausman vemos que el valor en p-value es menor a 0.05,lo cual aceptamos la hipótesis alternativa, esto quiere decir que existe endogenidad.
    #summary(modelo_iv_int, diagnostics = TRUE)
    # Errores robustos
    modelo_iv_adq_corr_hc<-coeftest(modelo_iv_adq, vcov. = vcovHC(modelo_iv_adq, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_iv_adq_corr_hac<-coeftest(modelo_iv_adq, vcov. = vcovHAC(modelo_iv_adq, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_iv_adq, modelo_iv_adq_corr_hc, type = "html",
              title = "Regresión sobre la tasa de adquirencia variables instrumentales",
              column.labels = c("Instrumental","Instrumental HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Regresión sobre la tasa de adquirencia variables instrumentales
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| Instrumental | Instrumental HC
| (1) | (2)
Valor_prom | 0.007 | 0.007
| (0.006) | (0.007)
Regulacion_intercambio | -0.495*** | -0.495**
| (0.171) | (0.197)
Crimen | 0.00001 | 0.00001
| (0.0001) | (0.0001)
Densidad_Pob | -0.0003 | -0.0003
| (0.0005) | (0.001)
Densidad_Neg | 0.025 | 0.025
| (0.021) | (0.020)
PIB_pc_PPA | -0.00000 | -0.00000
| (0.00001) | (0.00000)
Europa | -0.434 | -0.434
| (0.434) | (0.447)
Asia_Este | -0.258 | -0.258
| (0.403) | (0.513)
Am_lat | 0.715 | 0.715
| (0.476) | (0.515)
Constant | 1.351 | 1.351
| (0.925) | (0.997)
Observations | 94 |
R2 | 0.597 |
Adjusted R2 | 0.554 |
Residual Std. Error | 0.599 (df = 84) |
Note: | p<0.1; p<0.05; p<0.01

    #Como la probabilidad asociada es menor al nivel de significancia de la prueba de Wu-Hausman, determina que hay #endogenidad. Es decir, hay correlación entre las variables y el término de error y por lo tanto, la variable ICH #no es un instrumento débil.
    #Pronósticos para Costa Rica
    #Con regulación
    # data_CR: se le asigna a CR la regulación.
    pred_iv_adq_con_reg <- predict(modelo_iv_adq, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    summary(modelo_iv_adq)

Call: ivreg(formula = Adquirencia ~ Valor_prom + Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat | Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat + ICH, data = datos)

Residuals: Min 1Q Median 3Q Max -1.24838 -0.32880 0.07426 0.30884 2.54618

Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.351e+00 9.254e-01 1.459 0.14820
Valor_prom 7.213e-03 6.090e-03 1.185 0.23953
Regulacion_intercambio -4.948e-01 1.709e-01 -2.896 0.00482 ** Crimen 7.980e-06 1.088e-04 0.073 0.94169
Densidad_Pob -3.166e-04 4.679e-04 -0.677 0.50047
Densidad_Neg 2.485e-02 2.060e-02 1.206 0.23113
PIB_pc_PPA -3.239e-06 7.413e-06 -0.437 0.66330
Europa -4.340e-01 4.343e-01 -0.999 0.32052
Asia_Este -2.584e-01 4.032e-01 -0.641 0.52334
Am_lat 7.149e-01 4.760e-01 1.502 0.13688
— Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05 ‘.’ 0.1 ’ ’ 1

Residual standard error: 0.5994 on 84 degrees of freedom Multiple R-Squared: 0.5973, Adjusted R-squared: 0.5541 Wald test: 15.6 on 9 and 84 DF, p-value: 1.21e-14

    # Agregando efectos de tiempo:
    # Se omiten 2010 al 2011 y 2023 por problemas de colinealidad
    modelo_iv_adq_ef<-ivreg(formula = Adquirencia ~ Valor_prom + Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg +  PIB_pc_PPA + Europa + Asia_Este + Am_lat + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022 | Regulacion_intercambio + Crimen + Densidad_Pob + Densidad_Neg + PIB_pc_PPA + Europa + Asia_Este + Am_lat + ICH + Año_2012 + Año_2013 + Año_2014 + Año_2015 + Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 + Año_2021 + Año_2022,
                            data = datos)

    # Prueba de Hausman:
    # Al realizar la prueba de Hausman vemos que el valor en p-value es menor a 0.05,lo cual aceptamos la hipótesis alternativa, esto quiere decir que existe endogenidad.
    #summary(modelo_iv_int_ef, diagnostics = TRUE)

    #coeftest(modelo_iv_int_ef, vcov.=vcovHAC(modelo_iv_int_ef))

    # Errores robustos
    modelo_iv_adq_ef_corr_hc<-coeftest(modelo_iv_adq_ef, vcov. = vcovHC(modelo_iv_adq_ef, "HC1", adjust = TRUE, sandwich = TRUE))

    modelo_iv_adq_ef_corr_hac<-coeftest(modelo_iv_adq_ef, vcov. = vcovHAC(modelo_iv_adq_ef, adjust = TRUE, sandwich = TRUE))

    # Visualización
    stargazer(modelo_iv_adq_ef, modelo_iv_adq_ef_corr_hc, type = "html",
              title = "Regresión sobre la tasa de adquirencia variables instrumentales con efectos fijos de tiempo",
              column.labels = c("Instrumental","Instrumental HC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia", "Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Regresión sobre la tasa de adquirencia variables instrumentales con efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia | Tasa adquirencia
| Instrumental | Instrumental HC
| (1) | (2)
Valor_prom | 0.002 | 0.002
| (0.005) | (0.005)
Regulacion_intercambio | -0.527*** | -0.527***
| (0.174) | (0.173)
Crimen | -0.0001 | -0.0001
| (0.0001) | (0.0001)
Densidad_Pob | -0.0002 | -0.0002
| (0.0004) | (0.0004)
Densidad_Neg | 0.018 | 0.018
| (0.019) | (0.017)
PIB_pc_PPA | -0.00000 | -0.00000
| (0.00001) | (0.00000)
Europa | -0.424 | -0.424
| (0.440) | (0.407)
Asia_Este | 0.020 | 0.020
| (0.420) | (0.425)
Am_lat | 0.794* | 0.794*
| (0.462) | (0.430)
Año_2012 | -0.964 | -0.964**
| (0.874) | (0.395)
Año_2013 | -0.640 | -0.640
| (0.751) | (0.434)
Año_2014 | -1.258* | -1.258***
| (0.723) | (0.393)
Año_2015 | -1.056 | -1.056***
| (0.711) | (0.382)
Año_2016 | -1.079 | -1.079***
| (0.698) | (0.387)
Año_2017 | -1.080 | -1.080***
| (0.678) | (0.335)
Año_2018 | -1.092 | -1.092**
| (0.680) | (0.437)
Año_2019 | -1.277* | -1.277***
| (0.694) | (0.386)
Año_2020 | -1.295* | -1.295***
| (0.673) | (0.334)
Año_2021 | -1.507** | -1.507***
| (0.694) | (0.383)
Año_2022 | -1.110 | -1.110**
| (0.697) | (0.554)
Constant | 2.896*** | 2.896***
| (0.830) | (0.635)
Observations | 94 |
R2 | 0.701 |
Adjusted R2 | 0.619 |
Residual Std. Error | 0.554 (df = 73) |
Note: | p<0.1; p<0.05; p<0.01

    #Pronósticos para Costa Rica

    # sin efectos de tiempo
    pred_iv_adq_con_reg_ajus<-round((predict(modelo_iv_adq, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(data_CR$Codigo_Pais=="CRI")]-(1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)

    #Con regulación
    # data_CR: se le asigna a CR la regulación.
    pred_iv_adq_ef_con_reg <- predict(modelo_iv_adq_ef, newdata = data_CR,
                                       interval = "prediction", level = 0.95,
                                       type = "response")[which(data_CR$Codigo_Pais=="CRI")]
    # con efectos de tiempo
    pred_iv_adq_ef_con_reg_ef<-round((predict(modelo_iv_adq_ef, newdata = data_CR, interval = "prediction", level = 0.95, type = "response")[which(data_CR$Codigo_Pais=="CRI")]-(1*0.09) - (1.25*0.05) - (1.5*0.02) - (1.75*0.05))/(0.71 + 0.08),2)

## 3.12 Modelo de panel de datos con efectos aleatorios

A continuación modelo seleccionado con AICc:

    # datos
    datos_adq<-datos %>% dplyr::select(-Intercambio) %>% na.omit()
    # se usa el modelo seleccionado por el AICC
    modelo_adq_con_cont_aicc_ef_al<-lmer(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa + (1 | Codigo_Pais),
                                         data = datos_adq)
    #summary(modelo_adq_con_cont_aicc_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_adq_con_cont_aicc_ef_al)
    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_adq_con_cont_aicc_ef_al@frame)[2:(length(names(modelo_adq_con_cont_aicc_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_adq_con_cont_aicc_ef_al<-sum(resultado$coefficients[,1]*Caso_CR)
    #pre_int_con_cont_aicc_ef_al

    # Visualización
    stargazer(modelo_adq_con_cont_aicc_ef_al, type = "html",
              title = "Modelo efectos aleatorios - AICc sin efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios AICc"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - AICc sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| Efectos Aleatorios AICc
Regulacion_intercambio | -0.780***
| (0.138)
Cuenta | -0.017***
| (0.004)
Valor_prom | -0.003
| (0.002)
Europa | -0.385**
| (0.195)
Constant | 3.765***
| (0.411)
Observations | 93
Log Likelihood | -53.807
Akaike Inf. Crit. | 121.614
Bayesian Inf. Crit. | 139.342
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con BIC:

    # se usa el modelo seleccionado por el BIC
    modelo_adq_con_cont_bic_ef_al<-lmer(Adquirencia ~ Regulacion_intercambio + Cuenta +
                                          Valor_prom + Europa + (1 | Codigo_Pais),
                                         data = datos_adq)

    #summary(modelo_int_con_cont_bic_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_adq_con_cont_bic_ef_al)
    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_adq_con_cont_bic_ef_al@frame)[2:(length(names(modelo_adq_con_cont_bic_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_adq_con_cont_bic_ef_al<-sum(resultado$coefficients[,1]*Caso_CR)
    #pre_int_con_cont_bic_ef_al

    # Visualización
    stargazer(modelo_adq_con_cont_bic_ef_al, type = "html",
              title = "Modelo efectos aleatorios - BIC sin efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios BIC"), model.names = F,
              dep.var.labels = c("Tasa adquirencia"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - BIC sin efectos fijos de tiempo
| Variable dependiente
| Tasa adquirencia
| Efectos Aleatorios BIC
Regulacion_intercambio | -0.780***
| (0.138)
Cuenta | -0.017***
| (0.004)
Valor_prom | -0.003
| (0.002)
Europa | -0.385**
| (0.195)
Constant | 3.765***
| (0.411)
Observations | 93
Log Likelihood | -53.807
Akaike Inf. Crit. | 121.614
Bayesian Inf. Crit. | 139.342
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con AICc y efectos de tiempo:

    # se usa el modelo seleccionado por el AICC y variables de tiempo
    # 2010 al 2012 se eliminan por multicolinealidad
    modelo_adq_con_cont_aicc_tiem_ef_al<-lmer(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa +
                                          Año_2013 + Año_2014 + Año_2015 +  Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                          Año_2021 + Año_2022 + #Año_2023 +
                                            (1 | Codigo_Pais),
                                         data = datos_adq )
    #summary(modelo_adq_con_cont_aicc_tiem_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_adq_con_cont_aicc_tiem_ef_al)
    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_adq_con_cont_aicc_tiem_ef_al@frame)[2:(length(names(modelo_adq_con_cont_aicc_tiem_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_adq_con_cont_aicc_tiem_ef_al<-sum(resultado$coefficients[,1]*Caso_CR)
    #pre_adq_con_cont_aicc_tiem_ef_al

    # Visualización
    stargazer(modelo_adq_con_cont_aicc_tiem_ef_al, type = "html",
              title = "Modelo efectos aleatorios - AICc con efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios AICc"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - AICc con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios AICc
Regulacion_intercambio | -0.631***
| (0.159)
Cuenta | -0.015***
| (0.005)
Valor_prom | -0.003
| (0.003)
Europa | -0.512**
| (0.216)
Año_2013 | 0.303
| (0.674)
Año_2014 | -0.119
| (0.656)
Año_2015 | -0.061
| (0.639)
Año_2016 | -0.022
| (0.644)
Año_2017 | -0.156
| (0.636)
Año_2018 | -0.142
| (0.638)
Año_2019 | -0.315
| (0.639)
Año_2020 | -0.321
| (0.650)
Año_2021 | -0.263
| (0.658)
Año_2022 | -0.066
| (0.656)
Constant | 3.838***
| (0.669)
Observations | 93
Log Likelihood | -56.076
Akaike Inf. Crit. | 146.152
Bayesian Inf. Crit. | 189.207
Note: | p<0.1; p<0.05; p<0.01

A continuación modelo seleccionado con bic y efectos de tiempo:

    # se usa el modelo seleccionado por el BIC y variables de tiempo
    modelo_adq_con_cont_bic_tiem_ef_al<-lmer(Adquirencia ~ Regulacion_intercambio + Cuenta + Valor_prom + Europa +
                                          Año_2013 + Año_2014 + Año_2015 +  Año_2016 + Año_2017 + Año_2018 + Año_2019 + Año_2020 +
                                          Año_2021 + Año_2022 + Año_2023 + (1 | Codigo_Pais),
                                         data = datos_adq)
    #summary(modelo_int_con_cont_bic_tiem_ef_al)
    # almacenando el resultado del modelo para usar los coeficientes
    resultado<-summary(modelo_adq_con_cont_bic_tiem_ef_al)
    #Pronóstico para CR
    #Con regulación
    # stata agarra la matriz xb para predecir.

    #nombre de variables
    variables<-names(modelo_adq_con_cont_bic_tiem_ef_al@frame)[2:(length(names(modelo_adq_con_cont_bic_tiem_ef_al@frame))-1)]
    #### pronóstico
    Caso_CR<-datos %>% filter(Codigo_Pais=="CRI") %>% dplyr::select(variables)
    Caso_CR<-cbind(1,Caso_CR) # agregar un 1 para que se multiple con el intercepto general

    pre_adq_con_cont_bic_tiem_ef_al<-sum(resultado$coefficients[,1]*Caso_CR)
    #pre_adq_con_cont_bic_tiem_ef_al
    # Visualización
    stargazer(modelo_adq_con_cont_bic_tiem_ef_al, type = "html",
              title = "Modelo efectos aleatorios - BIC con efectos fijos de tiempo",
              column.labels = c("Efectos Aleatorios BIC"), model.names = F,
              dep.var.labels = c("Tasa intercambio"),
              dep.var.caption = "Variable dependiente")

Modelo efectos aleatorios - BIC con efectos fijos de tiempo
| Variable dependiente
| Tasa intercambio
| Efectos Aleatorios BIC
Regulacion_intercambio | -0.631***
| (0.159)
Cuenta | -0.015***
| (0.005)
Valor_prom | -0.003
| (0.003)
Europa | -0.512**
| (0.216)
Año_2013 | 0.303
| (0.674)
Año_2014 | -0.119
| (0.656)
Año_2015 | -0.061
| (0.639)
Año_2016 | -0.022
| (0.644)
Año_2017 | -0.156
| (0.636)
Año_2018 | -0.142
| (0.638)
Año_2019 | -0.315
| (0.639)
Año_2020 | -0.321
| (0.650)
Año_2021 | -0.263
| (0.658)
Año_2022 | -0.066
| (0.656)
Constant | 3.838***
| (0.669)
Observations | 93
Log Likelihood | -56.076
Akaike Inf. Crit. | 146.152
Bayesian Inf. Crit. | 189.207
Note: | p<0.1; p<0.05; p<0.01

## 3.13 Pruebas estadísticas a regresiones tasa de adquirencia

### 3.13.1 Modelo sin controles.

    #modelo_adq_sin_cont

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_adq_sin_cont<-resid(modelo_adq_sin_cont)
    #Se computa la prueba con la hipotesis Nula: distribución normal residuos
    jarque.test(residuos_modelo_adq_sin_cont)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_adq_sin_cont
    ## JB = 34.253, p-value = 3.648e-08
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values no tiene sentido sin controles
    #vif(modelo_adq_sin_cont)
    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_adq_sin_cont, interactions = TRUE)
    white(modelo_adq_sin_cont, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
0.1395723 | 0.9325932 | 2 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_adq_sin_cont, power = 2:3, type = c("fitted"), data = datos)#No se realiza porque solo incluye una dummy

### 3.13.2 Modelo AICc sin efectos fijos de tiempo

    #modelo_adq_con_cont_aicc

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_adq_con_cont_aicc<-resid(modelo_adq_con_cont_aicc)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_adq_con_cont_aicc)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_adq_con_cont_aicc
    ## JB = 120.92, p-value < 2.2e-16
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    vif(modelo_adq_con_cont_aicc)

    ## Regulacion_intercambio                 Cuenta             Valor_prom
    ##               1.273306               1.474044               1.102185
    ##                 Europa
    ##               1.489861

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_adq_con_cont_aicc, interactions = TRUE)
    white(modelo_adq_con_cont_aicc, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
11.58082 | 0.6399262 | 14 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_adq_con_cont_aicc, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#Corregido por heterocedasticidad)

    ##
    ##  RESET test
    ##
    ## data:  modelo_adq_con_cont_aicc
    ## RESET = 1.0302, df1 = 2, df2 = 88, p-value = 0.3613

### 3.13.3 Modelo AICc con efectos fijos de tiempo

    #modelo_adq_con_cont_aicc_ef

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_adq_con_cont_aicc_ef<-resid(modelo_adq_con_cont_aicc_ef)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_adq_con_cont_aicc_ef)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_adq_con_cont_aicc_ef
    ## JB = 119.15, p-value < 2.2e-16
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica para las dummies extra
    #create vector of VIF values
    #vif(modelo_adq_con_cont_aicc_ef)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_adq_con_cont_aicc_ef, interactions = TRUE)
    white(modelo_adq_con_cont_aicc_ef, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
47.01161 | 1 | 119 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_adq_con_cont_aicc_ef, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

### 3.13.4 Modelo BIC sin efectos fijos de tiempo

    #modelo_adq_con_cont_bic

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_adq_con_cont_bic<-resid(modelo_adq_con_cont_bic)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_adq_con_cont_bic)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_adq_con_cont_bic
    ## JB = 120.92, p-value < 2.2e-16
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    vif(modelo_adq_con_cont_bic)

    ## Regulacion_intercambio                 Cuenta             Valor_prom
    ##               1.273306               1.474044               1.102185
    ##                 Europa
    ##               1.489861

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_adq_con_cont_bic, interactions = TRUE)
    white(modelo_adq_con_cont_bic, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
11.58082 | 0.6399262 | 14 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_adq_con_cont_bic, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

    ##
    ##  RESET test
    ##
    ## data:  modelo_adq_con_cont_bic
    ## RESET = 1.0302, df1 = 2, df2 = 88, p-value = 0.3613

### 3.13.5 Modelo BIC con efectos fijos de tiempo

    #modelo_adq_con_cont_bic_ef

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_adq_con_cont_bic_ef<-resid(modelo_adq_con_cont_bic_ef)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_adq_con_cont_bic_ef)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_adq_con_cont_bic_ef
    ## JB = 119.15, p-value < 2.2e-16
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica para las dummies extra
    #create vector of VIF values
    #vif(modelo_adq_con_cont_bic_ef)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad
    #white_lm(modelo_adq_con_cont_bic_ef, interactions = TRUE)
    white(modelo_adq_con_cont_bic_ef, interactions = TRUE)

statistic | p.value | parameter | method | alternative
--- | --- | --- | --- | ---
47.01161 | 1 | 119 | White’s Test | greater

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_adq_con_cont_bic_ef, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

### 3.13.6 Modelo con variables instrumentales sin efectos fijos de tiempo

    #modelo_iv_adq

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_iv_adq<-resid(modelo_iv_adq)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_iv_adq)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_iv_adq
    ## JB = 56.848, p-value = 4.525e-13
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad
    #create vector of VIF values
    #vif(modelo_iv_adq)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad no aplica para IVreg. Se utilizaron estimadores robustos anteriormes
    #white_lm(modelo_iv_adq, interactions = TRUE)

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    resettest(modelo_iv_adq, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#Corregido por heterocedasticidad)

    ##
    ##  RESET test
    ##
    ## data:  modelo_iv_adq
    ## RESET = 1.378, df1 = 2, df2 = 84, p-value = 0.2579

### 3.13.7 Modelo con variables instrumentales con efectos fijos de tiempo

    #modelo_iv_adq_ef

    #Prueba de normalidad
    #Se guardan los residuos
    residuos_modelo_iv_adq_ef<-resid(modelo_iv_adq_ef)
    #Se computa la prueba con la función Nula: distribución normal residuos
    jarque.test(residuos_modelo_iv_adq_ef)

    ##
    ##  Jarque-Bera Normality Test
    ##
    ## data:  residuos_modelo_iv_adq_ef
    ## JB = 130.17, p-value < 2.2e-16
    ## alternative hypothesis: greater

    #Se obtiene el resultado del índice de condición de multicolinealidad no aplica a las dummies extra
    #create vector of VIF values
    #vif(modelo_iv_adq_ef)

    #Se ejecuta el test de White sobre el modelo original Nula: homocedasticidad no aplica a IVreg. Se utilizaron estimadores robustos anteriormente
    #white_lm(modelo_iv_adq_ef, interactions = TRUE)

    #Prueba de especificación lineal RESET Nula: especificación correcta lineal
    #resettest(modelo_iv_adq_ef, power = 2:3, type = c("fitted"), data = datos, vcov = vcovHC)#No se realiza porque solo incluye extra los efectos fijos

# 4 Resumen de las estimaciones tasa de intercambio

Los siguientes cuadros resumen las estimaciones para la tasa de intercambio:

    # promedio de los modelos
    pred_todos_int_con_reg<-mean(
            c(
            # Estimación principal
                pred_int_sin_cont_con_reg,
                pred1_int_con_reg,
                pred2_int_con_reg,
                pred3_int_con_reg,
                pred4_int_con_reg,
           # Logarítmica
                pred1_log_int_con_reg,
                pred2_log_int_con_reg,
                pred3_log_int_con_reg,
                pred4_log_int_con_reg,
           # No lineal
                pred_int_nolineal_con_reg_aicc,
                pred_int_nolineal_con_reg_con_cont_bic,
                pred_int_nolineal_con_reg_con_cont_aicc_ef,
                pred_int_nolineal_con_reg_con_cont_bic_ef,
           # Regresión robusta
                pred_int_con_cont_con_reg_robusto_aicc,
                pred_int_con_cont_con_reg_robusto_bic,
                pred_int_con_cont_con_reg_robusto_aicc_ef,
                pred_int_con_cont_con_reg_robusto_bic_ef,
           # Restringuido a países con regulación
                pred1_int_reg,
                pred2_int_reg,
                pred3_int_reg,
                pred4_int_reg,
          # promedio prediciones de bootstrap
                mean(predicciones_boot_con_reg_aic),
           # Regulación ampliada
                pred_int_con_cont_aicc_con_reg_ampli,
                pred_int_con_cont_bic_con_reg_ampli,
                pred_modelo_int_con_cont_aicc_ef_amp_con_reg,
                pred_modelo_int_con_cont_bic_ef_amp_con_reg,
           # Sin EEE
                pred1_int_sin_EEE_con_reg,
                pred2_int_sin_EEE_con_reg,
                pred3_int_sin_EEE_con_reg,
                pred4_int_sin_EEE_con_reg,
           # Truncado con 0
                pred_int_trunc_0_aicc_con_reg,
                pred_int_trunc_0_bic_con_reg,
                pred_int_trunc_0_aicc_ef_con_reg,
                pred_int_trunc_0_bic_ef_con_reg,
           # Truncado con 0.27
                pred_int_trunc_0.27_aicc_con_reg,
                pred_int_trunc_0.27_bic_con_reg,
                pred_int_trunc_0.27_aicc_ef_con_reg,
                pred_int_trunc_0.27_bic_ef_con_reg,
           # Sin uso de variables tarjetas
                pred_int_sin_tarj_aicc_con_reg,
                pred_int_sin_tarj_bic_con_reg,
                pred_int_sin_tarj_aicc_ef_con_reg,
                pred_int_sin_tarj_bic_ef_con_reg,
           # Variables instrumentales
                pred_iv_int_con_reg,
                pred_iv_int_ef_con_reg,
           # efectos aleatorios
                pre_int_con_cont_aicc_ef_al,
                pre_int_con_cont_bic_ef_al,
                pre_int_con_cont_aicc_tiem_ef_al,
                pre_int_con_cont_bic_tiem_ef_al
          )
        )

    # promedio de los truncados sin regulación
    pred_int_trunc_0_todos_sin_reg<-mean(c(pred_int_trunc_0_aicc_sin_reg,
                                           pred_int_trunc_0_bic_sin_reg,
                                           pred_int_trunc_0_aicc_ef_sin_reg,
                                           pred_int_trunc_0_bic_ef_sin_reg))
    # promedio de los truncados con regulación
    pred_int_trunc_0_todos_con_reg<-mean(c(pred_int_trunc_0_aicc_con_reg,
                                           pred_int_trunc_0_bic_con_reg,
                                           pred_int_trunc_0_aicc_ef_con_reg,
                                           pred_int_trunc_0_bic_ef_con_reg))
    # promedio de los truncados 0.27 con regulación
    pred_int_trunc_0.27_todos_con_reg<-mean(c(pred_int_trunc_0.27_aicc_con_reg,
                                              pred_int_trunc_0.27_bic_con_reg,
                                              pred_int_trunc_0.27_aicc_ef_con_reg,
                                              pred_int_trunc_0.27_bic_ef_con_reg))
    # promedio no lineal con regulación
    pred_int_nolineal_con_reg_prom<-mean(c(pred_int_nolineal_con_reg_aicc,
                                           pred_int_nolineal_con_reg_con_cont_bic,
                                           pred_int_nolineal_con_reg_con_cont_aicc_ef,
                                           pred_int_nolineal_con_reg_con_cont_bic_ef))
    # promedio sin uso tarjetas con regulación
    pred_int_sin_tarj_con_reg_prom<-mean( c(pred_int_sin_tarj_aicc_con_reg,
                                            pred_int_sin_tarj_bic_con_reg,
                                            pred_int_sin_tarj_aicc_ef_con_reg,
                                            pred_int_sin_tarj_bic_ef_con_reg))
    # promedio regresión robusta con regulación
    pred_mod_rob_int_con_reg_con_cont_prom<-mean(c(pred_int_con_cont_con_reg_robusto_aicc,
                                                   pred_int_con_cont_con_reg_robusto_bic,
                                                   pred_int_con_cont_con_reg_robusto_aicc_ef,
                                                   pred_int_con_cont_con_reg_robusto_bic_ef))
    # promedios ampliación de regulación
    pre_modelo_int_ampl_reg_prom<-mean(
                                  c(pred_int_con_cont_aicc_con_reg_ampli,
                                  pred_int_con_cont_bic_con_reg_ampli,
                                  pred_modelo_int_con_cont_aicc_ef_amp_con_reg,
                                  pred_modelo_int_con_cont_bic_ef_amp_con_reg)
    )

    # promedio modelos aleatorios
    pre_int_con_cont_ef_al_prom<-mean(c(pre_int_con_cont_aicc_ef_al,
                                      pre_int_con_cont_bic_ef_al,
                                      pre_int_con_cont_aicc_tiem_ef_al,
                                      pre_int_con_cont_bic_tiem_ef_al))
    # promedio de las estimaciones promedio
    pred_prome_int_prome_con_reg<-mean(
      c( pred_int_con_reg # Estima principal: promedio modelo de regresion (sin y con efectos fijos de tiempo)
        ,pred_int_trunc_0_todos_con_reg # truncado con 0
        ,pred_int_trunc_0.27_todos_con_reg # truncado con 0.27
        ,pred_log_int_con_reg # promedio con transformación logaritmica
        ,pred_int_nolineal_con_reg_prom # no lineal
        ,mean(predicciones_boot_con_reg_aic) # promedio prediciones de bootstrap
        ,pred_mod_rob_int_con_reg_con_cont_prom # robusta
        ,pred_int_sin_EEE_con_reg # Sin EEE
        ,pred_int_reg# falta restringido
        ,pre_modelo_int_ampl_reg_prom # ampliación regulación
        ,pred_int_sin_tarj_con_reg_prom # sin uso variables tarjetas
        #Variable instrumental (sin efectos fijos)
        ,pred_iv_int_con_reg
        #Variable instrumental (con efectos fijos)
        ,pred_iv_int_ef_con_reg
        ,pre_int_con_cont_ef_al_prom # efectos aleatorios
      )
    )

    # Todos los pronósticos
    pronosticos_resultados_int<-as.data.frame(cbind(
      round(
      c( pred_int_sin_cont_con_reg,
         pred1_int_con_reg,
         pred2_int_con_reg,
         pred3_int_con_reg,
         pred4_int_con_reg,
         pred_int_con_reg,
         pred1_log_int_con_reg,
         pred2_log_int_con_reg,
         pred3_log_int_con_reg,
         pred4_log_int_con_reg,
         pred_log_int_con_reg,
         pred_int_nolineal_con_reg_aicc,
         pred_int_nolineal_con_reg_con_cont_bic,
         pred_int_nolineal_con_reg_con_cont_aicc_ef,
         pred_int_nolineal_con_reg_con_cont_bic_ef,
         pred_int_nolineal_con_reg_prom,
         pred_int_con_cont_con_reg_robusto_aicc,
         pred_int_con_cont_con_reg_robusto_bic,
         pred_int_con_cont_con_reg_robusto_aicc_ef,
         pred_int_con_cont_con_reg_robusto_bic_ef,
         pred_mod_rob_int_con_reg_con_cont_prom,
         pred1_int_reg,  # Restringuido a países con regulación
         pred2_int_reg,
         pred3_int_reg,
         pred4_int_reg,
         pred_int_reg,
         pred_int_con_cont_aicc_con_reg_ampli,
         pred_int_con_cont_bic_con_reg_ampli,
         pred_modelo_int_con_cont_aicc_ef_amp_con_reg,
         pred_modelo_int_con_cont_bic_ef_amp_con_reg,
         pre_modelo_int_ampl_reg_prom,
         #pred_int_con_cont_sin_EEE_con_reg,
         #pred_int_con_cont_sin_EEE_con_reg,
         #pred_int_con_cont_sin_EEE_ef_con_reg,
         pred1_int_sin_EEE_con_reg,
         pred2_int_sin_EEE_con_reg,
         pred3_int_sin_EEE_con_reg,
         pred4_int_sin_EEE_con_reg,
         pred_int_sin_EEE_con_reg,
         pred_int_trunc_0_aicc_con_reg,
         pred_int_trunc_0_bic_con_reg,
         pred_int_trunc_0_aicc_ef_con_reg,
         pred_int_trunc_0_bic_ef_con_reg,
         pred_int_trunc_0_todos_con_reg,
         pred_int_trunc_0.27_aicc_con_reg,
         pred_int_trunc_0.27_bic_con_reg,
         pred_int_trunc_0.27_aicc_ef_con_reg,
         pred_int_trunc_0.27_bic_ef_con_reg,
         pred_int_trunc_0.27_todos_con_reg,
         pred_int_sin_tarj_aicc_con_reg,
         pred_int_sin_tarj_bic_con_reg,
         pred_int_sin_tarj_aicc_ef_con_reg,
         pred_int_sin_tarj_bic_ef_con_reg,
         pred_int_sin_tarj_con_reg_prom,
         pred_iv_int_con_reg,
         pred_iv_int_ef_con_reg,
         pre_int_con_cont_aicc_ef_al,
         pre_int_con_cont_bic_ef_al,
         pre_int_con_cont_aicc_tiem_ef_al,
         pre_int_con_cont_bic_tiem_ef_al,
         pre_int_con_cont_ef_al_prom,
         pred_todos_int_con_reg,
         pred_prome_int_prome_con_reg),3)
      ))

    rownames(pronosticos_resultados_int)<-
      c("Estimación principal - Modelo sin controles",
        "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
        "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
        "Estimación principal - Modelo AICc con efectos fijos de tiempo",
        "Estimación principal - Modelo BIC con efectos fijos de tiempo",
        "Estimación principal - Promedio modelos AICc y BIC",
        "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Promedio modelos AICc y BIC",
        "Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Promedio modelos AICc y BIC",
        "Regresión robusta - Modelo AICc sin efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC sin efectos fijos de tiempo",
        "Regresión robusta - Modelo AICc con efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC con efectos fijos de tiempo",
        "Regresión robusta - Promedio modelos AICc y BIC",
        "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
        "Restringuido a países con regulación - Promedio modelos AICc y BIC",
        "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Promedio modelos AICc y BIC",
        #"Modelo sin controles sin EEE",
        #"Modelo con controles sin efectos fijos de tiempo sin EEE",
        #"Modelo con controles con efectos fijos de tiempo sin EEE",
        "Sin el EEE - Modelo AICc sin efectos fijos de tiempo",
        "Sin el EEE - Modelo BIC sin efectos fijos de tiempo",
        "Sin el EEE - Modelo AICc con efectos fijos de tiempo",
        "Sin el EEE - Modelo BIC con efectos fijos de tiempo",
        "Sin el EEE - Promedio modelos AICc y BIC",
        "Modelo truncado en 0 - Modelo AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo AICc con efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo BIC con efectos fijos de tiempo",
        "Modelo truncado en 0 - Promedio modelos AICc y BIC",
        "Modelo truncado en 0.27 - Modelo AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0.27 - Modelo BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0.27 - Modelo AICc con efectos fijos de tiempo",
        "Modelo truncado en 0.27 - Modelo BIC con efectos fijos de tiempo",
        "Modelo truncado en 0.27 - Promedio modelos AICc y BIC",
        "Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC con efectos fijos de tiempo",
        "Promedio modelos sin uso de tarjetas",
        "Modelo con variables instrumentales sin efectos fijos de tiempo",
        "Modelo con variables instrumentales con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo AICc sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo BIC sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo AICc con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo BIC con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Promedio modelos AICc y BIC",
        "Promedio todos los modelos anteriores",
        "Promedio de las estimaciones promedio")

    names(pronosticos_resultados_int)<-c("Predicción para Costa Rica")
    # mostrar los pronósticos
    DT::datatable(pronosticos_resultados_int, caption = "Resumen de las estimaciones de tasa de intercambio")

# 5 Resumen de las estimaciones tasa de adquirencia

Los siguientes cuadros resumen las estimaciones para la tasa adquirencia:

## 5.1 Pronósticos sin factor de ajuste

Dado que la mayoría de los países no regulan adquirencia, la información en la base de datos puede corresponder a comisiones promedio. De ser ese el caso, se necesitaría ajustar la estimación por la estructura de comisiones de adquirencia en Costa Rica. Esto se realiza en la subsección denominada “Pronósticos sin factor de ajuste”. A continuación se muestran todos los pronósticos de adquirencia sin ajuste.

    #promedio con regulación
    pred_todos_adq_con_reg<-mean(
      # esitmaciones principales
      c(as.numeric(pred_adq_sin_cont_con_reg),
        as.numeric(pred_adq_con_cont_con_reg),
        as.numeric(pred_adq_con_cont_ef_con_reg),
        as.numeric(pred1_adq_con_reg),
        as.numeric(pred2_adq_con_reg),
        as.numeric(pred3_adq_con_reg),
        as.numeric(pred4_adq_con_reg),
        #truncado 0
        as.numeric(pred_adq_trunc_0_aicc_con_reg),
        as.numeric(pred_adq_trunc_0_bic_con_reg),
        as.numeric(pred_adq_trunc_0_aicc_ef_con_reg),
        as.numeric(pred_adq_trunc_0_bic_ef_con_reg),
        #truncado 0.35
        as.numeric(pred_adq_trunc_0.35_aicc_con_reg),
        as.numeric(pred_adq_trunc_0.35_bic_con_reg),
        as.numeric(pred_adq_trunc_0.35_aicc_ef_con_reg),
        as.numeric(pred_adq_trunc_0.35_bic_ef_con_reg),
        # ampliación de regulación
        pred_adq_con_cont_aicc_con_reg_ampli,
        pred_adq_con_cont_bic_con_reg_ampli,
        pred_modelo_adq_con_cont_aicc_ef_amp_con_reg,
        pred_modelo_adq_con_cont_bic_ef_amp_con_reg,
        # sin uso de tarjetas
        pred_adq_sin_tarj_aicc_con_reg,
        pred_adq_sin_tarj_bic_con_reg,
        pred_adq_sin_tarj_aicc_ef_con_reg,
        pred_adq_sin_tarj_bic_ef_con_reg,
        # intrumentos
        as.numeric(pred_iv_adq_con_reg),
        as.numeric(pred_iv_adq_ef_con_reg),
        # transformación logaritmica
        as.numeric(pred1_log_adq_con_reg),
        as.numeric(pred2_log_adq_con_reg),
        as.numeric(pred3_log_adq_con_reg),
        as.numeric(pred4_log_adq_con_reg),
        # restirngida a paises con regulación
        as.numeric(pred1_adq_reg),
        as.numeric(pred2_adq_reg),
        as.numeric(pred3_adq_reg),
        as.numeric(pred4_adq_reg),
        #modelos panel efectos aleatorios
        pre_adq_con_cont_aicc_ef_al,
        pre_adq_con_cont_bic_ef_al,
        pre_adq_con_cont_aicc_tiem_ef_al,
        pre_adq_con_cont_bic_tiem_ef_al
        )
      )
    # promedio no lineal sin regulación
    pred_adq_nolineal_sin_reg_prom<-mean(c( pred_adq_nolineal_sin_reg_aicc,
                                           pred_adq_nolineal_sin_reg_bic,
                                           pred_adq_nolineal_sin_reg_ef_aicc,
                                           pred_adq_nolineal_sin_reg_ef_bic
    ))

    # promedio no lineal con regulación
    pred_adq_nolineal_con_reg_prom<-mean(c( pred_adq_nolineal_con_reg_aicc,
                                           pred_adq_nolineal_con_reg_bic,
                                           pred_adq_nolineal_con_reg_ef_aicc,
                                           pred_adq_nolineal_con_reg_ef_bic
    ))

    # promedio ampliación de regulación
    pre_modelo_adq_ampl_reg_prom<-mean(
        c(
        pred_adq_con_cont_aicc_con_reg_ampli,
        pred_adq_con_cont_bic_con_reg_ampli,
        pred_modelo_adq_con_cont_aicc_ef_amp_con_reg,
        pred_modelo_adq_con_cont_bic_ef_amp_con_reg)
    )

    # promedio sin uso tarjetas con regulación
    pred_adq_sin_tarj_con_reg_prom<-mean( c(pred_adq_sin_tarj_aicc_con_reg,
                                            pred_adq_sin_tarj_bic_con_reg,
                                            pred_adq_sin_tarj_aicc_ef_con_reg,
                                            pred_adq_sin_tarj_bic_ef_con_reg))

    # promedio regresión robusta sin regulación
    pred_mod_rob_adq_sin_reg_con_cont_prom<-mean(c(pred_adq_con_cont_sin_reg_robusto_aicc,
                                                   pred_adq_con_cont_sin_reg_robusto_bic,
                                                   pred_adq_con_cont_sin_reg_robusto_aicc_ef,
                                                   pred_adq_con_cont_sin_reg_robusto_bic_ef))
    # promedio regresión robusta con regulación
    pred_mod_rob_adq_con_reg_con_cont_prom<-mean(c(pred_adq_con_cont_con_reg_robusto_aicc,
                                                   pred_adq_con_cont_con_reg_robusto_bic,
                                                   pred_adq_con_cont_con_reg_robusto_aicc_ef,
                                                   pred_adq_con_cont_con_reg_robusto_bic_ef))

    # promedio modelos aleatorios
    pre_adq_con_cont_ef_al_prom<-mean(c(pre_adq_con_cont_aicc_ef_al,
                                      pre_adq_con_cont_bic_ef_al,
                                      pre_adq_con_cont_aicc_tiem_ef_al,
                                      pre_adq_con_cont_bic_tiem_ef_al)
                                      )
    # promedios de los promedios
    prom_todos_prom_adq<-mean(
      c( pred_adq_con_reg # principal
        ,pred_log_adq_con_reg # log
        ,pred_adq_nolineal_con_reg_prom # no lineal
        , mean(predicciones2) # método boostrap
        ,pred_mod_rob_adq_con_reg_con_cont_prom # robusta
        ,pred_adq_reg # restringido
        ,pred_adq_trunc_0_todos_con_reg # truncado 0
        ,pred_adq_trunc_0.35_todos_con_reg # truncado 0.35
        ,pre_modelo_adq_ampl_reg_prom # ampliación de regulación
        ,pred_adq_sin_tarj_con_reg_prom# sin uso de tarjetas
            # instrumentos
        ,pred_iv_adq_con_reg
        ,pred_iv_adq_ef_con_reg
        ,pre_adq_con_cont_ef_al_prom # efectos aleatorios
      )
    )

    #  Todos los pronósticos
    pronosticos_resultados_adq<-as.data.frame(cbind(
        round(
          # estimación principal
          c(pred_adq_sin_cont_con_reg,
            pred1_adq_con_reg,
            pred2_adq_con_reg,
            pred3_adq_con_reg,
            pred4_adq_con_reg,
            pred_adq_con_reg,
            # tranformación logartimica
            pred1_log_adq_con_reg,
            pred2_log_adq_con_reg,
            pred3_log_adq_con_reg,
            pred4_log_adq_con_reg,
            pred_log_adq_con_reg,
            # no lineal
            pred_adq_nolineal_con_reg_aicc,
                    pred_adq_nolineal_con_reg_bic,
                    pred_adq_nolineal_con_reg_ef_aicc,
                    pred_adq_nolineal_con_reg_ef_bic,
                    pred_adq_nolineal_con_reg_prom,
                    # robusta
            pred_adq_con_cont_con_reg_robusto_aicc,
            pred_adq_con_cont_con_reg_robusto_bic,
            pred_adq_con_cont_con_reg_robusto_aicc_ef,
            pred_adq_con_cont_con_reg_robusto_bic_ef,
            pred_mod_rob_adq_con_reg_con_cont_prom,
                    # Restringido a países con regulación
                    pred1_adq_reg,
            pred2_adq_reg,
            pred3_adq_reg,
            pred4_adq_reg,
            pred_adq_reg,
                    # truncado con 0
            pred_adq_trunc_0_aicc_con_reg,
            pred_adq_trunc_0_bic_con_reg,
            pred_adq_trunc_0_aicc_ef_con_reg,
            pred_adq_trunc_0_bic_ef_con_reg,
            pred_adq_trunc_0_todos_con_reg,
                    # truncado con 0.35
            pred_adq_trunc_0.35_aicc_con_reg,
            pred_adq_trunc_0.35_bic_con_reg,
            pred_adq_trunc_0.35_aicc_ef_con_reg,
            pred_adq_trunc_0.35_bic_ef_con_reg,
            pred_adq_trunc_0.35_todos_con_reg,
                    # ampliación de la regulación
                    pred_adq_con_cont_aicc_con_reg_ampli,
            pred_adq_con_cont_bic_con_reg_ampli,
            pred_modelo_adq_con_cont_aicc_ef_amp_con_reg,
            pred_modelo_adq_con_cont_bic_ef_amp_con_reg,
            pre_modelo_adq_ampl_reg_prom,
                    # sin uso de tarjetas
                    pred_adq_sin_tarj_aicc_con_reg,
            pred_adq_sin_tarj_bic_con_reg,
            pred_adq_sin_tarj_aicc_ef_con_reg,
            pred_adq_sin_tarj_bic_ef_con_reg,
                    pred_adq_sin_tarj_con_reg_prom,
                    # instrumentos
            pred_iv_adq_con_reg,
            pred_iv_adq_ef_con_reg,
                    # modelo efecto aleatorio
                    pre_adq_con_cont_aicc_ef_al,
            pre_adq_con_cont_bic_ef_al,
            pre_adq_con_cont_aicc_tiem_ef_al,
            pre_adq_con_cont_bic_tiem_ef_al,
            pre_adq_con_cont_ef_al_prom,
    # promedio general
            pred_todos_adq_con_reg,
    # promedio de los promedios
            prom_todos_prom_adq)
            ,2)
      ))
    #nombrar los modelos
    rownames(pronosticos_resultados_adq)<-
      c("Estimación principal - Modelo sin controles",
        "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
        "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
        "Estimación principal - Modelo AICc con efectos fijos de tiempo",
        "Estimación principal - Modelo BIC con efectos fijos de tiempo",
        "Estimación principal - Promedio modelos AICc y BIC",
        "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Promedio modelos AICc y BIC",
        "Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Promedio modelos AICc y BIC",
        "Regresión robusta - Modelo AICc sin efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC sin efectos fijos de tiempo",
        "Regresión robusta - Modelo AICc con efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC con efectos fijos de tiempo",
        "Regresión robusta - Promedio modelos AICc y BIC",
        "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
        "Restringuido a países con regulación - Promedio modelos AICc y BIC",
        "Modelo truncado en 0 - Modelo AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo AICc con efectos fijos de tiempo",
        "Modelo truncado en 0 - Modelo BIC con efectos fijos de tiempo",
        "Modelo truncado en 0 - Promedio modelos AICc y BIC",
        "Modelo truncado en 0.35 - Modelo AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0.35 - Modelo BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0.35 - Modelo AICc con efectos fijos de tiempo",
        "Modelo truncado en 0.35 - Modelo BIC con efectos fijos de tiempo",
        "Modelo truncado en 0.35 - Promedio modelos AICc y BIC",
        "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Promedio modelos AICc y BIC",
        "Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC con efectos fijos de tiempo",
        "Promedio modelos sin uso de tarjetas",
        "Modelo con variables instrumentales sin efectos fijos de tiempo",
        "Modelo con variables instrumentales con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo AICc sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo BIC sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo AICc con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Modelo BIC con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Promedio modelos AICc y BIC",
        "Promedio todos los modelos anteriores",
        " Promedio de los promedios")

    names(pronosticos_resultados_adq)<-c("Predicción para Costa Rica sin ajuste")

    # mostrar los pronósticos
    DT::datatable(pronosticos_resultados_adq, caption = "Resumen de las estimaciones de tasa de adquirencia sin ajuste")

## 5.2 Pronósticos con factor de ajuste

Dado que la mayoría de los países no regulan adquirencia, la información en la base de datos puede corresponder a comisiones promedio. De ser ese el caso, se necesitaría ajustar la estimación por la estructura de comisiones de adquirencia en Costa Rica. En particular, durante el 2022:

- Las actividades con una adquirencia de entre 0% a 1% representaban el 2% de los ingresos de los adquirentes.

- Las actividades con una adquirencia de entre 1,01% a 1,25% representaban el 4% de los ingresos de los adquirentes.

- Las actividades con una adquirencia de entre 1,26% a 1,50% representaban el 2% de los ingresos de los adquirentes.

- Las actividades con una adquirencia de entre 1,51% a 1,75% representaban el 7% de los ingresos de los adquirentes.

- Las actividades con una adquirencia de entre 1,76% a 2% representaban el 8% de los ingresos de los adquirentes.

- Las actividades con una adquirencia mayor a 2% representaban el 77% de los ingresos de los adquirentes.

    # factor numerico de ajuste en el númerador
    num<-c((-(1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07))*-1) # -0.2225
    deno<- c(0.77 + 0.08)  # deno
    num_2<- c((- (1*0.02) - (1.25*0.04) - (1.5*0.02) - (1.75*0.07) - (2*0.08))*-1) #
    deno_2<-0.77 # ponderación máxima
    pronosticos_resultados_adq_corr<-as.data.frame(cbind(
      round(
        # estimación principal
        c(as.numeric((pred_adq_sin_cont_con_reg-num)/(deno)),
          as.numeric((pred1_adq_con_reg-num)/(deno)),
          as.numeric((pred2_adq_con_reg-num)/(deno)),
          as.numeric((pred3_adq_con_reg-num)/(deno)),
          as.numeric((pred4_adq_con_reg-num)/(deno)),
          as.numeric((pred_adq_con_reg-num)/(deno)),
          # logaritmo
          as.numeric((pred1_log_adq_con_reg-num)/(deno)),
          as.numeric((pred2_log_adq_con_reg-num)/(deno)),
          as.numeric((pred3_log_adq_con_reg-num)/(deno)),
          as.numeric((pred4_log_adq_con_reg-num)/(deno)),
          as.numeric((pred_log_adq_con_reg-num)/(deno)),
          # no lineal
          as.numeric((pred_adq_nolineal_con_reg_aicc-num_2)/(deno_2)),
          as.numeric((pred_adq_nolineal_con_reg_bic-num_2)/(deno_2)),
          as.numeric((pred_adq_nolineal_con_reg_ef_aicc-num_2)/(deno_2)),
          as.numeric((pred_adq_nolineal_con_reg_ef_bic-num_2)/(deno_2)),
          as.numeric((pred_adq_nolineal_con_reg_prom-num_2)/(deno_2)),
          #robusto
          as.numeric((pred_adq_con_cont_con_reg_robusto_aicc-num)/(deno)),
          as.numeric((pred_adq_con_cont_con_reg_robusto_bic-num)/(deno)),
          as.numeric((pred_adq_con_cont_con_reg_robusto_aicc_ef-num)/(deno)),
          as.numeric((pred_adq_con_cont_con_reg_robusto_bic_ef-num)/(deno)),
          as.numeric((pred_mod_rob_adq_con_reg_con_cont_prom-num)/(deno)),
          # restringido a paises regulados
          as.numeric((pred1_adq_reg-num)/(deno)),
          as.numeric((pred2_adq_reg-num)/(deno)),
          as.numeric((pred3_adq_reg-num)/(deno)),
          as.numeric((pred4_adq_reg-num)/(deno)),
          as.numeric((pred_adq_reg-num)/(deno)),
          #truncado en 0
          as.numeric((pred_adq_trunc_0_aicc_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0_bic_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0_aicc_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0_bic_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0_todos_con_reg-num)/(deno)),
          #truncado en 0.35
          as.numeric((pred_adq_trunc_0.35_aicc_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0.35_bic_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0.35_aicc_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0.35_bic_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_trunc_0.35_todos_con_reg-num)/(deno)),
          # ampliación de la regulación
          as.numeric((pred_adq_con_cont_aicc_con_reg_ampli-num)/(deno)),
          as.numeric((pred_adq_con_cont_bic_con_reg_ampli -num)/(deno)),
          as.numeric((pred_modelo_adq_con_cont_aicc_ef_amp_con_reg -num)/(deno)),
          as.numeric((pred_modelo_adq_con_cont_bic_ef_amp_con_reg -num)/(deno)),
          as.numeric((pre_modelo_adq_ampl_reg_prom-num)/(deno)),
          # sin uso tarjeta
          as.numeric((pred_adq_sin_tarj_aicc_con_reg-num)/(deno)),
          as.numeric((pred_adq_sin_tarj_bic_con_reg-num)/(deno)),
          as.numeric((pred_adq_sin_tarj_aicc_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_sin_tarj_bic_ef_con_reg-num)/(deno)),
          as.numeric((pred_adq_sin_tarj_con_reg_prom-num)/(deno)),
          # instrumentos
          as.numeric((pred_iv_adq_con_reg-num)/(deno)),
          as.numeric((pred_iv_adq_ef_con_reg-num)/(deno)),
          #efectos aleatorios
          as.numeric(( pre_adq_con_cont_aicc_ef_al-num)/(deno)),
          as.numeric((pre_adq_con_cont_bic_ef_al -num)/(deno)),
          as.numeric(( pre_adq_con_cont_aicc_tiem_ef_al-num)/(deno)),
          as.numeric((pre_adq_con_cont_bic_tiem_ef_al -num)/(deno)),
          as.numeric((pre_adq_con_cont_ef_al_prom -num)/(deno)),
          # promedio de todos los modelos anteriores
          as.numeric((pred_todos_adq_con_reg-num)/(deno)),
          # promedio de los promedios
          as.numeric((prom_todos_prom_adq-num)/(deno))
          )
        ,2)
    ))

    rownames(pronosticos_resultados_adq_corr)<-
      c("Estimación principal - Modelo sin controles",
        #"Modelo con controles sin efectos fijos de tiempo",
        #"Modelo con controles con efectos fijos de tiempo",
        "Estimación principal - Modelo AICc sin efectos fijos de tiempo",
        "Estimación principal - Modelo BIC sin efectos fijos de tiempo",
        "Estimación principal - Modelo AICc con efectos fijos de tiempo",
        "Estimación principal - Modelo BIC con efectos fijos de tiempo",
        "Estimación principal - Promedio modelos AICc y BIC",
        "Modelo con transformación logarítmica - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo AICc con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Modelo BIC con efectos fijos de tiempo",
        "Modelo con transformación logarítmica - Promedio modelos AICc y BIC",
        "Modelo con efectos no lineales - Modelo AICc sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC sin efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo AICc con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Modelo BIC con efectos fijos de tiempo",
        "Modelo con efectos no lineales - Promedio modelos AICc y BIC",
        "Regresión robusta - Modelo AICc sin efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC sin efectos fijos de tiempo",
        "Regresión robusta - Modelo AICc con efectos fijos de tiempo",
        "Regresión robusta - Modelo BIC con efectos fijos de tiempo",
        "Regresión robusta - Promedio modelos AICc y BIC",
        "Restringuido a países con regulación - Modelo AICc sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC sin efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo AICc con efectos fijos de tiempo",
        "Restringuido a países con regulación - Modelo BIC con efectos fijos de tiempo",
        "Restringuido a países con regulación - Promedio modelos AICc y BIC",
        "Modelo truncado en 0 - AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0 - BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0 - AICc con efectos fijos de tiempo",
        "Modelo truncado en 0 - BIC con efectos fijos de tiempo",
        "Modelo truncado en 0 - Promedio modelos AICc y BIC",
        "Modelo truncado en 0.35 - AICc sin efectos fijos de tiempo",
        "Modelo truncado en 0.35 - BIC sin efectos fijos de tiempo",
        "Modelo truncado en 0.35 - AICc con efectos fijos de tiempo",
        "Modelo truncado en 0.35 - BIC con efectos fijos de tiempo",
        "Modelo truncado en 0.35 - Promedio modelos AICc y BIC",
        "Regulación en intercambio o adquirencia - Modelo AICc sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC sin efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo AICc con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Modelo BIC con efectos fijos de tiempo",
        "Regulación en intercambio o adquirencia - Promedio modelos AICc y BIC",
        "Modelo sin uso de tarjetas - Modelo AICc sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC sin efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo AICc con efectos fijos de tiempo",
        "Modelo sin uso de tarjetas - Modelo BIC con efectos fijos de tiempo",
        "Promedio modelos sin uso de tarjetas",
        "Modelo con variables instrumentales sin efectos fijos de tiempo",
        "Modelo con variables instrumentales con efectos fijos de tiempo",
        "Modelo efectos aleatorios - AICc sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - BIC sin efectos fijos de tiempo",
        "Modelo efectos aleatorios - AICc con efectos fijos de tiempo",
        "Modelo efectos aleatorios - BIC con efectos fijos de tiempo",
        "Modelo efectos aleatorios - Promedio modelos AICc y BIC",
        "Promedio todos los modelos anteriores",
        "Promedio de los promedios")

    names(pronosticos_resultados_adq_corr)<-c("Predicción para Costa Rica con ajuste")

    DT::datatable(pronosticos_resultados_adq_corr, caption = "Resumen de las estimaciones de tasa de adquirencia con ajuste")