Aplicación de un Modelo de Regresión Lineal para Estudiar la Migración Colombiana

Introduccion

En los últimos años, la migración de ciudadanos colombianos hacia otros países se ha convertido en un fenómeno relevante desde el punto de vista económico y social. Este estudio tiene como objetivo analizar los factores económicos que podrían estar relacionados con el destino de los migrantes colombianos, tales como el Pib per cápita, el costo de vida y el número total de inmigrantes en el país receptor.

Para ello, se emplea un modelo de regresión lineal, que permite identificar relaciones proporcionales entre las variables y evaluar la influencia de cada una sobre la cantidad de migrantes colombianos. Además, se incorporan variables categóricas como el continente y el nivel de desarrollo del país de destino, para analizar si estas características también tienen un efecto significativo.

Metodología

Para este estudio se utilizaron datos provenientes de diferentes fuentes internacionales, agrupados por país para el año 2020. Las variables utilizadas en el análisis fueron las siguientes:

  • Migrantes_Colombianos: Número de migrantes de origen colombiano que residen en cada país receptor.

  • PIB_per_capita: Producto Interno Bruto per cápita del país receptor (medido en dólares estadounidenses).

  • Costo_de_Vida: Índice del costo de vida en cada país.

  • Total_de_Inmigrantes: Número total de inmigrantes residentes en el país receptor.

  • Continente: Continente al que pertenece el país.

  • Nivel_Desarrollo: Clasificación del país como desarrollado o en desarrollo.

Las variables numéricas fueron transformadas utilizando logaritmos naturales con el fin de interpretar elasticidades y reducir la asimetría en las distribuciones. Muchas de las variables en el análisis, como el número de migrantes colombianos y el PIB per cápita, presentan una distribución altamente sesgada hacia la derecha, valores extremos muy altos. Al aplicar el logaritmo, estas distribuciones se vuelven más simétricas, lo que permite cumplir mejor los supuestos de normalidad de los residuos en la regresión lineal. En este tipo de regresión, los coeficientes se interpretan como elasticidades. Es decir, muestran el cambio porcentual en la variable dependiente ante un cambio porcentual en la variable independiente, lo cual es muy útil en temas económicos y sociales como la migración.

La ecuación general del modelo estimado es la siguiente: log(Migrantes_Colombianos+1)=β0+β1log(PIB_per_capita+1)+β2log(Costo_de_Vida+1)+β3log(Total_de_Inmigrantes+1)+β4Continente+β5Nivel_Desarrollo+ε

Resultados Descriptivos

knitr::opts_chunk$set(echo = TRUE)
#Carga de Librerías
library(readr)
library(dplyr)
library(tidyverse)
library(ggplot2)
library(purrr)
library(visreg)
library(nortest)
library(lmtest)
library(ggcorrplot)
library(car)
library(DT)
library(plotly)
# Lectura de archivos csv
df_costo_raw <- read_csv("Costo de Vida.csv", col_names = FALSE)
colnames(df_costo_raw) <- df_costo_raw[1, ]
df_costo <- df_costo_raw[-1, ]
colnames(df_costo) <- c("Pais", "Costo_de_Vida")

df_pib_raw <- read_csv("PIB Per Capita.csv", col_names = FALSE)
colnames(df_pib_raw) <- df_pib_raw[1, ]
df_pib <- df_pib_raw[-1, ]
colnames(df_pib) <- c("Pais", "PIB_per_capita")

df_inmigrantes_raw <- read_csv("Numero de Inmigrantes 2020.csv", col_names = FALSE)
df_inmigrantes <- df_inmigrantes_raw[-1, c(1, 3)]
colnames(df_inmigrantes) <- c("Pais", "Total_de_Inmigrantes")

df_continente_raw <- read_csv("Continente.csv", col_names = FALSE)
colnames(df_continente_raw) <- df_continente_raw[1, ]
df_continente <- df_continente_raw[-1, ]
colnames(df_continente) <- c("Pais", "Continente")

df_desarrollo_raw <- read_csv("Nivel de Desarrollo.csv", col_names = FALSE)
colnames(df_desarrollo_raw) <- df_desarrollo_raw[1, ]
df_desarrollo <- df_desarrollo_raw[-1, ]
colnames(df_desarrollo) <- c("Pais", "Nivel_Desarrollo")

df_migracion_raw <- read_csv("Migracion de Colombianos.csv", col_names = FALSE)
colnames(df_migracion_raw) <- df_migracion_raw[1, ]
df_migracion <- df_migracion_raw[-1, ]
colnames(df_migracion) <- c("Pais", "Migrantes_Colombianos")
# Dataframe
colnames(df_costo) <- c("Pais", "Costo_de_Vida")
colnames(df_pib) <- c("Pais", "PIB_Per_Capita")
colnames(df_inmigrantes) <- c("Pais", "Total_de_Inmigrantes")
colnames(df_continente) <- c("Pais", "Continente")
colnames(df_desarrollo) <- c("Pais", "Nivel_Desarrollo")
colnames(df_migracion) <- c("Pais", "Migrantes_Colombianos")

df_total <- Reduce(function(x, y) merge(x, y, by = "Pais", all = TRUE),
                   list(df_costo, df_pib, df_inmigrantes, df_continente, df_desarrollo, df_migracion))

df_total$Year <- 2020

df_total <- df_total[, c("Pais", "Year", "Migrantes_Colombianos", "Costo_de_Vida", 
                         "PIB_Per_Capita", "Total_de_Inmigrantes", 
                         "Continente", "Nivel_Desarrollo")]

datatable(df_total)

La tabla presentada muestra un conjunto de variables relevantes para el análisis de la migración de colombianos en el año 2020, organizadas por país. En ella se incluyen indicadores económicos como el PIB per cápita, el costo de vida y el número total de inmigrantes, así como variables categóricas como el continente y el nivel de desarrollo. También se incluye el número de migrantes colombianos registrados en cada país.

La tabla constituye la base para el análisis estadístico posterior, incluyendo la estimación del modelo de regresión lineal logarítmico, con el fin de identificar los factores que más influyen en la migración colombiana hacia otros países.

Estadisticas Descriptivas

# Transformamos las variables a numericas, y creamos un summary
df_total$Migrantes_Colombianos <- as.numeric(df_total$Migrantes_Colombianos)
df_total$PIB_Per_Capita <- as.numeric(df_total$PIB_Per_Capita)
df_total$Total_de_Inmigrantes <- as.numeric(df_total$Total_de_Inmigrantes)
df_total$Costo_de_Vida <- as.numeric(df_total$Costo_de_Vida)

summary(df_total[, c("Migrantes_Colombianos", "PIB_Per_Capita", 
                     "Total_de_Inmigrantes", "Costo_de_Vida")])
##  Migrantes_Colombianos PIB_Per_Capita   Total_de_Inmigrantes Costo_de_Vida  
##  Min.   :     1.00     Min.   :  1.10   Min.   :    3024     Min.   :20.00  
##  1st Qu.:     2.25     1st Qu.:  4.00   1st Qu.:   62428     1st Qu.:28.25  
##  Median :     9.00     Median :  8.00   Median :  325734     Median :35.00  
##  Mean   :  7802.58     Mean   : 80.67   Mean   : 1078525     Mean   :42.41  
##  3rd Qu.:   757.50     3rd Qu.: 38.25   3rd Qu.:  932557     3rd Qu.:55.00  
##  Max.   :210790.00     Max.   :900.00   Max.   :15021300     Max.   :85.00

En la variable de migrantes colombianos la mediana y los cuartiles son bastante bajos en comparación con la media y el máximo, lo que indica que la distribución está fuertemente sesgada a la derecha. En el PIB per capita también se observa una distribución altamente sesgada a la derecha. Aunque la mayoría de los países tienen un PIB per cápita bajo (mediana = 8), algunos países muy desarrollados elevan considerablemente la media. La variable total de inmigrantes tiene una gran dispersión y una media mucho mayor que la mediana, lo que indica presencia de valores muy grandes. Aunque el costo de vida también presenta cierto sesgo, su distribución es más moderada y balanceada en comparación con las otras variables. Esto indica que la mayoría de los países tienen costos relativamente cercanos, aunque existen algunos con costos considerablemente más altos.

# Unimos todos los dataframes 
df_modelo_datos <- reduce(list(df_pib, df_costo, df_inmigrantes, df_migracion), 
                          function(x, y) merge(x, y, by = "Pais", all = TRUE))

df_modelo_completo <- df_modelo_datos[complete.cases(df_modelo_datos[, c(
  "Migrantes_Colombianos", 
  "PIB_Per_Capita", 
  "Costo_de_Vida", 
  "Total_de_Inmigrantes"
)]), ]

Relación entre PIB Per Cápita y Migración Colombiana

df_modelo_completo <- df_modelo_completo %>%
  mutate(
    PIB_Per_Capita = as.numeric(gsub(",", "", PIB_Per_Capita)),
    Costo_de_Vida = as.numeric(gsub(",", "", Costo_de_Vida)),
    Total_de_Inmigrantes = as.numeric(gsub(",", "", Total_de_Inmigrantes)),
    Migrantes_Colombianos = as.numeric(gsub(",", "", Migrantes_Colombianos))
  )

p1 <- ggplot(df_modelo_completo, aes(x = log(PIB_Per_Capita + 1), y = log(Migrantes_Colombianos + 1))) +
  geom_point(aes(text = Pais), color = "#2a00ff") +
  geom_smooth(method = "lm", se = TRUE, color = "#42ff00") +
  labs(title = "Relación entre PIB Per Cápita y Migración Colombiana",
       x = "Log(PIB per cápita + 1)", y = "Log(Migrantes Colombianos + 1)")

ggplotly(p1, tooltip = "text")

El gráfico muestra la relación entre el logaritmo del PIB per cápita y el logaritmo del número de migrantes colombianos en distintos países. Los puntos azules representan cada país, y la línea verde indica la tendencia estimada por un modelo de regresión lineal, con su respectivo intervalo de confianza en gris. La pendiente de la línea de tendencia es casi plana, lo que indica que no hay una relación lineal clara entre el PIB per cápita de los países y la cantidad de migrantes colombianos. El intervalo de confianza (en gris) es bastante amplio, especialmente en los extremos, lo cual sugiere una alta dispersión y poca precisión en la estimación. Hay países con muy alto número de migrantes colombianos, independientemente de su PIB per cápita, como ejemplo, hay varios puntos altos en el eje Y, con PIB bajo o medio.

Relación entre Costo de Vida y Migración Colombiana

p2 <- ggplot(df_modelo_completo, aes(x = log(Costo_de_Vida + 1), y = log(Migrantes_Colombianos + 1))) +
  geom_point(aes(text = Pais), color = "#2a00ff") +
  geom_smooth(method = "lm", se = TRUE, color = "#ff0000") +
  labs(title = "Relación entre Costo de Vida y Migración Colombiana",
       x = "Log(Costo de Vida + 1)", y = "Log(Migrantes Colombianos + 1)")

ggplotly(p2, tooltip = "text")

Este gráfico representa la relación entre el logaritmo del costo de vida en los países y el logaritmo del número de migrantes colombianos que residen en ellos. Los puntos azules indican observaciones individuales por país, mientras que la línea roja representa la tendencia lineal estimada por el modelo de regresión lineal, con un intervalo de confianza, en gris, alrededor de la estimación. La pendiente de la línea de regresión es positiva, lo que sugiere que a mayor costo de vida en un país, mayor es la cantidad de migrantes colombianos. Aunque hay dispersión en los datos, especialmente en los valores más altos de migrantes, la tendencia general se mantiene clara.

Mapa de correlaciones entre variables numéricas

r <- cor(df_modelo_completo %>% 
           select(PIB_Per_Capita, Costo_de_Vida, Total_de_Inmigrantes), 
         use = "complete.obs")

p_cor <- ggcorrplot(r, hc.order = TRUE, type = "lower", lab = TRUE)

ggplotly(p_cor)

El gráfico de correlaciones muestra una relación moderada y positiva (r = 0.32) entre el costo de vida y el total de inmigrantes, lo que sugiere que los países con mayores costos de vida también tienden a recibir más inmigrantes en general. En contraste, la relación entre el PIB per cápita y el costo de vida es ligeramente negativa (r = -0.29), y prácticamente nula entre el PIB per cápita y el total de inmigrantes (r = -0.07). Estos resultados indican que las variables económicas no están fuertemente correlacionadas entre sí, lo cual es positivo desde la perspectiva del modelo, ya que reduce el riesgo de multicolinealidad.

Modelo log-log con variables numéricas

modelo_completo <- lm(log(Migrantes_Colombianos + 1) ~ 
                        log(PIB_Per_Capita + 1) + 
                        log(Costo_de_Vida + 1) + 
                        log(Total_de_Inmigrantes + 1),
                      data = df_modelo_completo)

summary(modelo_completo)
## 
## Call:
## lm(formula = log(Migrantes_Colombianos + 1) ~ log(PIB_Per_Capita + 
##     1) + log(Costo_de_Vida + 1) + log(Total_de_Inmigrantes + 
##     1), data = df_modelo_completo)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -4.405 -1.893 -0.540  1.475  7.687 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   -16.5913     3.3024  -5.024 2.91e-06 ***
## log(PIB_Per_Capita + 1)        -0.1152     0.1927  -0.598 0.551604    
## log(Costo_de_Vida + 1)          3.4042     0.8100   4.203 6.67e-05 ***
## log(Total_de_Inmigrantes + 1)   0.6603     0.1639   4.028 0.000125 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.804 on 82 degrees of freedom
## Multiple R-squared:  0.3327, Adjusted R-squared:  0.3083 
## F-statistic: 13.63 on 3 and 82 DF,  p-value: 2.703e-07

El modelo de regresión sugiere que tanto el costo de vida como el total de inmigrantes en un país tienen un efecto significativo sobre el número de migrantes colombianos. En cambio, el PIB per cápita no muestra un efecto estadísticamente significativo. Específicamente, un aumento del 1% en el costo de vida se asocia con un incremento del 3.4% en la migración colombiana, mientras que un aumento del 1% en el total de inmigrantes se relaciona con un incremento del 0.66%. Estos resultados sugieren que los países con mayor dinamismo migratorio y altos costos de vida podrían ser más atractivos para los migrantes colombianos. El modelo explica un 33% de la variabilidad observada, lo que indica un ajuste moderado.

Graficos Visreg

vis1 <- visreg(modelo_completo, "PIB_Per_Capita", gg = TRUE)
ggplotly(vis1)

El grafico muestra que un mayor PIB per cápita está asociado con una ligera disminución en el número de migrantes colombianos. Sin embargo, esta relación no es significativa. Por lo tanto, aunque hay una tendencia débilmente negativa, no se puede concluir con evidencia suficiente que el PIB per cápita tenga un efecto claro sobre la migración colombiana hacia los distintos países del análisis. Aunque el PIB per cápita mide el ingreso promedio de un país, no siempre refleja oportunidades reales para migrantes. Puede que un país tenga un PIB alto, pero políticas migratorias restrictivas o poca comunidad latina.

vis2 <- visreg(modelo_completo, "Costo_de_Vida", gg = TRUE)
ggplotly(vis2)

El gráfico muestra que el costo de vida tiene un impacto positivo y significativo en la migración colombiana. Los colombianos tienden a migrar más hacia países con un costo de vida más elevado, posiblemente por estar relacionados con mejores condiciones económicas, sociales y laborales. Aunque a primera vista puede parecer contradictorio, uno pensaría que los migrantes van a lugares más baratos, en realidad, los países con alto costo de vida suelen ser países desarrollados, con más oportunidades laborales y mejores salarios.

vis3 <- visreg(modelo_completo, "Total_de_Inmigrantes", gg = TRUE)
ggplotly(vis3)

El gráfico muestra cómo cambia la cantidad de migrantes colombianos según el número total de inmigrantes que ya hay en un país. Al principio, cuando un país tiene pocos inmigrantes, un pequeño aumento en ese total está asociado con un gran aumento en la cantidad de migrantes colombianos. Pero después, cuando el país ya tiene muchos inmigrantes, esa relación sigue siendo positiva, pero más suave, probablemente, porque cuando ya están muy llenos, pueden aparecer barreras como políticas migratorias más estrictas o mercados laborales más competitivos.

Supuestos del modelo de regresión

par(mfrow = c(2, 2))
plot(modelo_completo)

Se evaluaron los gráficos de diagnóstico para verificar el cumplimiento de los supuestos clásicos del modelo de regresión lineal.

  • Gráfico de residuos vs valores ajustados (Residuals vs Fitted): Este gráfico muestra que los residuos no se distribuyen de manera completamente aleatoria en torno a la línea horizontal. La línea roja presenta una forma curva, lo cual sugiere una cierta no linealidad en la relación entre las variables independientes y la variable dependiente. Este patrón indica que el modelo podría no estar captando completamente la forma de la relación entre las variables.

  • Gráfico Q-Q de los residuos: En el gráfico, los puntos tienden a desviarse de la línea diagonal, especialmente en los extremos. Esto indica que los residuos no siguen una distribución normal perfecta.

  • Gráfico de escala-localización (Scale-Location): La curva presenta una leve tendencia ascendente seguida de un descenso. Idealmente, los residuos estandarizados deberían distribuirse de forma uniforme; sin embargo, en este caso, la variación es moderada y no representa una amenaza importante para la validez del modelo.

  • Gráfico de residuos vs leverage: Este gráfico muestra cómo algunos puntos pueden estar influyendo en el modelo, pero no se observan valores extremadamente influyentes. La curva no presenta cambios bruscos, lo cual sugiere que el modelo no está siendo dominado por ninguna observación en particular.

Pruebas estadísticas de supuestos

shapiro.test(residuals(modelo_completo))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(modelo_completo)
## W = 0.94577, p-value = 0.001254

El test de Shapiro-Wilk aplicado a los residuos del modelo arrojó un p-value de 0.00125, lo que indica que se rechaza la hipótesis nula de normalidad. Por lo tanto, se concluye que los residuos no siguen una distribución normal. Esta desviación podría afectar la validez de las pruebas de significancia, por lo que se recomienda interpretar los resultados con precaución.

lillie.test(residuals(modelo_completo))
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  residuals(modelo_completo)
## D = 0.11345, p-value = 0.008167

El test de Lilliefors aplicado a los residuos del modelo arrojó un p-value de 0.0082. Al ser menor que 0.05, se rechaza la hipótesis nula, concluyendo que los residuos no siguen una distribución normal. Este resultado, en conjunto con el test de Shapiro-Wilk, indica que el supuesto de normalidad no se cumple en el modelo, lo que podría afectar la precisión de las inferencias estadísticas.

Homocedasticidad (varianza constante)

bptest(modelo_completo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_completo
## BP = 6.725, df = 3, p-value = 0.0812

El test de Breusch-Pagan, utilizado para verificar la homocedasticidad de los residuos, arrojó un p-value de 0.0812. Dado que este valor es mayor al común de 0.05, no se rechaza la hipótesis nula de homocedasticidad. Por lo tanto, no se encontró evidencia estadística de que la varianza de los residuos varíe sistemáticamente, por lo que se considera que el modelo cumple con este supuesto.

Multicolinealidad

vif(modelo_completo)
##       log(PIB_Per_Capita + 1)        log(Costo_de_Vida + 1) 
##                      1.026819                      1.042562 
## log(Total_de_Inmigrantes + 1) 
##                      1.047174

Los resultados del análisis de multicolinealidad mediante el factor de inflación de la varianza (VIF) indican valores muy cercanos a 1 para todas las variables independientes del modelo. Esto sugiere que no existe multicolinealidad significativa entre las variables predictoras, lo cual valida la independencia de la información que aporta cada una al modelo de regresión.

Modelo de Regresion con las Variables Categoricas

df_modelo_cat <- df_total %>%
  filter(complete.cases(.)) %>%
  mutate(
    PIB_Per_Capita = as.numeric(PIB_Per_Capita),
    Costo_de_Vida = as.numeric(Costo_de_Vida),
    Total_de_Inmigrantes = as.numeric(Total_de_Inmigrantes),
    Migrantes_Colombianos = as.numeric(Migrantes_Colombianos),
    log_Migrantes = log(Migrantes_Colombianos + 1),
    log_PIB = log(PIB_Per_Capita + 1),
    log_Costo = log(Costo_de_Vida + 1),
    log_Inmigrantes = log(Total_de_Inmigrantes + 1),
    Continente = factor(Continente),
    Nivel_Desarrollo = factor(Nivel_Desarrollo)
  )
modelo_cat <- lm(log_Migrantes ~ log_PIB + log_Costo + log_Inmigrantes +
                   Continente + Nivel_Desarrollo,
                 data = df_modelo_cat)

summary(modelo_cat)
## 
## Call:
## lm(formula = log_Migrantes ~ log_PIB + log_Costo + log_Inmigrantes + 
##     Continente + Nivel_Desarrollo, data = df_modelo_cat)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.3977 -1.4131 -0.0217  1.7934  6.3467 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    -5.8620     5.1674  -1.134   0.2601    
## log_PIB                        -0.0652     0.1782  -0.366   0.7154    
## log_Costo                      -0.3658     1.2386  -0.295   0.7685    
## log_Inmigrantes                 0.8910     0.1523   5.850 1.09e-07 ***
## ContinenteAmerica               4.3373     0.8940   4.852 6.14e-06 ***
## ContinenteAsia                 -0.3621     0.8209  -0.441   0.6604    
## ContinenteEuropa                1.6082     0.9648   1.667   0.0995 .  
## Nivel_DesarrolloEn desarrollo  -1.8440     0.9856  -1.871   0.0651 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.425 on 78 degrees of freedom
## Multiple R-squared:  0.5254, Adjusted R-squared:  0.4828 
## F-statistic: 12.34 on 7 and 78 DF,  p-value: 1.607e-10

El modelo es globalmente significativo, lo que indica que, en conjunto, las variables explican una parte importante de la variabilidad del número de migrantes colombianos. El R-cuadrado ajustado es 0.48, lo cual significa que aproximadamente el 48% de la variación en el logaritmo del número de migrantes colombianos está explicada por las variables del modelo. Log del PIB per cápita y log del costo de vida no son estadísticamente significativos, una vez consideradas las otras variables, estos factores no explican de forma clara el número de migrantes colombianos. En cambio, el log del total de inmigrantes tiene un coeficiente significativo, lo que indica que los países con mayor cantidad de inmigrantes en general también tienden a recibir más migrantes colombianos. La categoría de referencia para la variable Continente es África y para Nivel de Desarrollo es Desarrollado. Los países de América reciben significativamente más migrantes colombianos que los de África, manteniendo constantes las otras variables. El continente Asia no muestra diferencias significativas frente a África. El continente Europa presenta una diferencia marginalmente significativa respecto a África. Nivel de Desarrollo tiene un efecto negativo marginalmente significativo, lo que sugiere que los países en desarrollo podrían atraer menos migrantes colombianos que los países desarrollados.

Graficos Visreg

g_continente <- visreg(modelo_cat, "Continente", gg = TRUE)
ggplotly(g_continente)

América presenta el mayor efecto positivo sobre el número de migrantes colombianos. Esto indica que, en promedio, los países del continente americano tienden a recibir una mayor cantidad de migrantes colombianos. Europa aparece en una posición mas baja aunque muestra un efecto positivo. África se encuentra mas abajo, sugiriendo que los países africanos tienden a recibir una menor cantidad de migrantes colombianos, en promedio. Y Asia, muestra un efecto menor respecto a América.

g_desarrollo <- visreg(modelo_cat, "Nivel_Desarrollo", gg = TRUE)
ggplotly(g_desarrollo)

Los países desarrollados tienen un efecto promedio más alto sobre la migración colombiana en comparación con los países en desarrollo. Esta diferencia podría estar relacionada con la percepción de mejores oportunidades laborales, calidad de vida, estabilidad económica o educativa que ofrecen los países desarrollados.

Pruebas estadísticas de supuestos

shapiro.test(residuals(modelo_cat))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(modelo_cat)
## W = 0.99079, p-value = 0.8102

Dado que el valor p es mayor que 0.05, no se rechaza la hipótesis nula de normalidad. Esto indica que los residuos del modelo se distribuyen aproximadamente de forma normal, lo cual es una condición deseable en los modelos de regresión lineal. Por tanto, se cumple uno de los supuestos fundamentales del modelo.

Homocedasticidad

bptest(modelo_cat)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_cat
## BP = 12.926, df = 7, p-value = 0.07393

Dado que el valor p es mayor que 0.05, no se rechaza la hipótesis nula de homocedasticidad. Esto indica que no hay evidencia estadísticamente significativa de heterocedasticidad, es decir, los residuos presentan una varianza aproximadamente constante, lo cual es otro supuesto importante que se cumple en el modelo.

Multicolinealidad

vif(modelo_cat)
##                      GVIF Df GVIF^(1/(2*Df))
## log_PIB          1.173406  1        1.083239
## log_Costo        3.260752  1        1.805755
## log_Inmigrantes  1.208911  1        1.099505
## Continente       2.883419  3        1.193030
## Nivel_Desarrollo 2.858968  1        1.690848

Todos los valores ajustados de VIF se encuentran por debajo del umbral común de 5, lo que indica que no hay problemas graves de multicolinealidad en el modelo. Esto significa que las variables independientes no están fuertemente correlacionadas entre sí y que sus coeficientes pueden interpretarse con mayor confianza.

Conclusiones

  • El modelo inicial consideró el PIB per cápita, el costo de vida y el número total de inmigrantes como predictores, donde Costo de Vida y Total de Inmigrantes resultaron ser estadísticamente significativos, indicando que están positivamente relacionados con la cantidad de migrantes colombianos.

  • El PIB per cápita no fue estadísticamente significativo en este modelo, lo que sugiere que, una vez controlado por las otras variables, el nivel de ingresos del país no tiene un efecto claro sobre la migración colombiana en este modelo. Es posible que el efecto del PIB per cápita esté siendo absorbido por otras variables del modelo, como el costo de vida. Países con alto PIB tienden a tener también un alto costo de vida, y si el costo de vida ya explica parte del fenómeno migratorio, el PIB puede aportar poco adicionalmente.

  • El modelo inicial presenta un R² ajustado de 0.308, lo que indica que aproximadamente el 31% de la variabilidad en el número de migrantes colombianos puede explicarse por las tres variables consideradas. Y Si bien el modelo es estadísticamente significativo, el nivel de explicación no es alto, lo que sugiere que podrían existir otros factores relevantes no incluidos.

  • El gráfico de residuos vs valores ajustados muestra cierta curvatura, lo que indica posibles violaciones al supuesto de linealidad. Esto sugiere que podría considerarse una forma funcional diferente o el uso de variables adicionales.

  • En el segundo modelo se incorporaron las variables “Continente” y “Nivel de Desarrollo” para capturar diferencias estructurales entre regiones del mundo. El modelo mejoró notablemente su ajuste, con un R² ajustado de 0.48, lo que indica que cerca del 48% de la variabilidad en la migración colombiana es explicada por las variables del modelo.

  • Los países con mayor atracción migratoria general (más inmigrantes) tienden a ser también más atractivos para los colombianos.

  • Factores regionales y estructurales, como el continente y el nivel de desarrollo, tienen un papel relevante en los patrones migratorios.

  • El modelo respalda la idea de que los migrantes colombianos no solo se guían por factores económicos, sino también por historia común, idioma o vínculos culturales.

Bibliografia