El presnte trabajo pretender realiza una regresiòn lineal simple entre el desempleo la inversión extranjera directa para colombia. En periodo de estudio es desde el primer trimestre de 2001 hasta el cuarto trimestre de 2024. Se toma como variable dependiente el desemple y como variable dependiente la IED

Importando el set de datos

library(readxl)
d_clase1 <- read_excel("C:/Users/JULIAN SANTANA/Desktop/ESP ESTADISTICA/Semestre 2/Modelos de regresion/d_clase1.xlsx")
View(d_clase1)
names(d_clase1)
## [1] "año_tri" "t_des"   "ied"     "p_des"   "pib"     "cpib"    "IPC"

Normalidad

# Pruebas de normalidad para t_des
shapiro_tdes <- shapiro.test(d_clase1$t_des)
ks_tdes <- ks.test(d_clase1$t_des, "pnorm", mean(d_clase1$t_des), sd(d_clase1$t_des))
library(tseries) # Para Jarque-Bera
jb_tdes <- jarque.bera.test(d_clase1$t_des)

# Pruebas de normalidad para ied
shapiro_ied <- shapiro.test(d_clase1$ied)
ks_ied <- ks.test(d_clase1$ied, "pnorm", mean(d_clase1$ied), sd(d_clase1$ied))
jb_ied <- jarque.bera.test(d_clase1$ied)

# Función para determinar la decisión
decision <- function(p_value) {
  if (p_value < 0.05) {
    return("Rechazar H0 (No normalidad)")
  } else {
    return("No rechazar H0 (Normalidad)")
  }
}

# Resumen en tabla
normalidad_resultados <- data.frame(
  Variable = rep(c("t_des", "ied"), each = 3),
  Prueba = rep(c("Shapiro-Wilk", "Kolmogorov-Smirnov", "Jarque-Bera"), times = 2),
  `p-valor` = c(
    shapiro_tdes$p.value, ks_tdes$p.value, jb_tdes$p.value,
    shapiro_ied$p.value, ks_ied$p.value, jb_ied$p.value
  ),
  `Decisión` = c(
    decision(shapiro_tdes$p.value),
    decision(ks_tdes$p.value),
    decision(jb_tdes$p.value),
    decision(shapiro_ied$p.value),
    decision(ks_ied$p.value),
    decision(jb_ied$p.value)
  )
)

# Mostrar la tabla en un formato más visual con knitr::kable
library(knitr)
kable(normalidad_resultados, format = "markdown")
Variable Prueba p.valor Decisión
t_des Shapiro-Wilk 0.0000609 Rechazar H0 (No normalidad)
t_des Kolmogorov-Smirnov 0.2656976 No rechazar H0 (Normalidad)
t_des Jarque-Bera 0.0000006 Rechazar H0 (No normalidad)
ied Shapiro-Wilk 0.0079636 Rechazar H0 (No normalidad)
ied Kolmogorov-Smirnov 0.2666782 No rechazar H0 (Normalidad)
ied Jarque-Bera 0.3073132 No rechazar H0 (Normalidad)

Shapiro-Wilk y Jarque-Bera indican que se rechaza la hipótesis nula (H0), lo que sugiere que los datos no siguen una distribución normal.

Sin embargo, la prueba Kolmogorov-Smirnov muestra que no se rechaza la hipótesis nula, sugiriendo que los datos podrían seguir una distribución normal. Esta discrepancia podría deberse a las diferencias en la sensibilidad de cada prueba.

Shapiro-Wilk indica que se rechaza la hipótesis nula, sugiriendo que los datos no siguen una distribución normal.

Por otro lado, las pruebas Kolmogorov-Smirnov y Jarque-Bera no rechazan la hipótesis nula, lo que implica que los datos podrían seguir una distribución normal.

Correlación

# Cálculo de correlaciones
pearson_test <- cor.test(d_clase1$t_des, d_clase1$ied, method = "pearson")
spearman_test <- cor.test(d_clase1$t_des, d_clase1$ied, method = "spearman")
kendall_test  <- cor.test(d_clase1$t_des, d_clase1$ied, method = "kendall")

# Crear un resumen en tabla
resultado_correlaciones <- data.frame(
  Test = c("Pearson", "Spearman", "Kendall"),
  Coeficiente = c(pearson_test$estimate,
                  spearman_test$estimate,
                  kendall_test$estimate),
  `p-valor` = c(pearson_test$p.value,
                spearman_test$p.value,
                kendall_test$p.value)
)

# Mostrar el cuadro resumen
print(resultado_correlaciones, row.names = FALSE)
##      Test Coeficiente      p.valor
##   Pearson  -0.5717307 1.171184e-09
##  Spearman  -0.5996066 0.000000e+00
##   Kendall  -0.4223684 1.085928e-09

Los valores de aproximadamente -0.57 a -0.60 (Pearson y Spearman) indican una correlación moderada a fuerte y negativa.

Kendall (-0.42) también muestra una correlación negativa, aunque ligeramente más baja porque Kendall es más conservador.

Significancia estadística:

En los tres casos, el p-valor es mucho menor a 0.05, por lo tanto, las correlaciones son estadísticamente significativas.

Esto confirma que existe una relación negativa real entre t_des (tasa de desempleo) e ied (inversión extranjera directa) en tu muestra.

Gragico de dispersión

library(ggplot2)

ggplot(d_clase1, aes(x = t_des, y = ied)) +
  geom_point(color = "blue", size = 2) +
  geom_smooth(method = "lm", color = "red", se = FALSE) +
  labs(title = "Gráfico de dispersión: TASA DE DESEMPLEO VS IED",
       x = "Tasa de Desempleo (t_des)",
       y = "Inversión Extranjera Directa (ied)") +
  theme_minimal()

Modelo de regresión

# Cargar librerías
library(lmtest)
library(car)

# 1. Modelo de regresión
modelo <- lm(t_des ~ ied, data = d_clase1)
summary(modelo)
## 
## Call:
## lm(formula = t_des ~ ied, data = d_clase1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.6029 -1.0786 -0.0964  1.0117  8.1802 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 14.0125940  0.3918474  35.760  < 2e-16 ***
## ied         -0.0009144  0.0001353  -6.756 1.17e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.934 on 94 degrees of freedom
## Multiple R-squared:  0.3269, Adjusted R-squared:  0.3197 
## F-statistic: 45.65 on 1 and 94 DF,  p-value: 1.171e-09

Analisis:

Linealidad

Grafico de dispersión de los valores reales vs los estimados

plot(d_clase1$t_des, modelo$fitted.values,
     xlab = "Valores reales de t_des",
     ylab = "Valores estimados de t_des",
     main = "Valores reales vs Valores estimados",
     pch = 19, col = "blue")

# Agregar una recta de regresión ajustada
ajuste <- lm(modelo$fitted.values ~ d_clase1$t_des)
abline(ajuste, col = "red", lwd = 2)

Verificación de la normalidad de los residuos

# Obtener los residuos del modelo
residuos <- residuals(modelo)

# Prueba de normalidad (Shapiro-Wilk)
shapiro_test <- shapiro.test(residuos)
print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.95743, p-value = 0.003396

Conclusión: Los datos no siguen una distribución normal según el test de Shapiro-Wilk. Esto podría indicar la presencia de asimetrías, valores extremos o patrones en los residuos que no son consistentes con una distribución normal.

Gráfico Q-Q (Quantile-Quantile): El gráfico Q-Q compara los cuantiles de los residuos con los cuantiles de una distribución normal. Si los puntos siguen una línea recta, entonces los residuos pueden considerarse normales.

# Gráfico Q-Q de los residuos
qqnorm(residuos)
qqline(residuos, col = "red")

Verificación de la homocedasticidad (igualdad de varianzas)

La homocedasticidad es otro supuesto importante en la regresión. La prueba de Breusch-Pagan puede ayudarte a verificar si existe heterocedasticidad (variabilidad desigual de los residuos).

library(lmtest)

# Test de Breusch-Pagan para homocedasticidad
bp_test <- bptest(modelo)
print(bp_test)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 3.7697, df = 1, p-value = 0.05219

Verificación de la independencia de los residuos (autocorrelación)

Es importante verificar que los residuos no estén correlacionados, especialmente cuando se trabaja con series temporales. La prueba de Durbin-Watson es común para verificar la autocorrelación.

# Prueba de Durbin-Watson
dw_test <- durbinWatsonTest(modelo)
print(dw_test)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.5232609      0.865575       0
##  Alternative hypothesis: rho != 0

Verificación de la linealidad (gráfico de residuos vs valores ajustados)

Para verificar si la relación entre las variables es lineal, se recomienda graficar los residuos frente a los valores ajustados. Si hay un patrón claro (por ejemplo, una curva), entonces la relación puede no ser completamente lineal.

# Graficar residuos vs valores ajustados
plot(modelo$fitted.values, modelo$residuals, 
     main = "Residuos vs Valores Ajustados", 
     xlab = "Valores Ajustados", ylab = "Residuos")
abline(h = 0, col = "red")

Si los residuos están distribuidos aleatoriamente alrededor de 0, esto sugiere que la relación es lineal. Si se observa alguna tendencia o patrón, es posible que la relación no sea completamente lineal.

Conclusión general del modelo

En conclusión, utilizar un modelo de regresión lineal simple para explicar el desempleo únicamente a partir de la inversión extranjera directa (IED) es metodológicamente limitado e insuficiente, ya que ignora la naturaleza multicausal del desempleo y omite variables clave como el crecimiento económico, la inflación, las políticas laborales o el capital humano, lo que puede generar sesgos en la estimación. Además, existe el riesgo de endogeneidad y causalidad inversa, así como de violaciones a los supuestos clásicos del modelo de regresión, lo que compromete la validez de las inferencias estadísticas. Por tanto, para un análisis más riguroso y realista, se recomienda emplear modelos de regresión múltiple o técnicas avanzadas que incorporen múltiples factores explicativos y evalúen adecuadamente la dinámica económica involucrada.

En otras palabras, un modelo de regresión simple del tipo Desempleo = β₀ + β₁·IED + ε no es suficiente para explicar la variación del desempleo en Colombia, porque este fenómeno depende de múltiples factores económicos, sociales y estructurales que interactúan entre sí. Limitar el análisis únicamente a la IED deja por fuera variables cruciales como el crecimiento del PIB, la inflación, la productividad laboral, las políticas públicas, entre otras, lo que puede llevar a conclusiones imprecisas o engañosas. Un modelo más completo debe incorporar múltiples variables explicativas para captar adecuadamente la complejidad del mercado laboral colombiano.

Modelo de regresión multiple:

Graficos de dispersión:

# Instala y carga ggplot2 si no lo tienes
if (!require(ggplot2)) install.packages("ggplot2")
library(ggplot2)
d_clase1_2005 <- subset(d_clase1, año_tri > 2005)


# Gráfico de dispersión entre t_des y cada variable
ggplot(d_clase1_2005, aes(x = ied, y = t_des)) +
  geom_point(color = "steelblue") +
  geom_smooth(method = "lm", se = FALSE, color = "darkred") +
  labs(title = "Desempleo vs Inversión Extranjera Directa (IED)",
       x = "IED", y = "Tasa de Desempleo")
## `geom_smooth()` using formula = 'y ~ x'

ggplot(d_clase1_2005, aes(x = cpib, y = t_des)) +
  geom_point(color = "darkgreen") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  labs(title = "Desempleo vs Crecimiento del PIB",
       x = "Crecimiento del PIB (%)", y = "Tasa de Desempleo")
## `geom_smooth()` using formula = 'y ~ x'

ggplot(d_clase1_2005, aes(x = IPC, y = t_des)) +
  geom_point(color = "purple") +
  geom_smooth(method = "lm", se = FALSE, color = "orange") +
  labs(title = "Desempleo vs Índice de Precios al Consumidor (IPC)",
       x = "IPC", y = "Tasa de Desempleo")
## `geom_smooth()` using formula = 'y ~ x'

t_des = β₀ + β₁·ied + β₂·pib + β₃·IPC + ε

# Filtrar los datos para años posteriores a 1990
d_clase1_2005 <- subset(d_clase1, año_tri > 2005)
modelo2 <- lm(t_des ~ ied + cpib + IPC, data = d_clase1_2005)
summary(modelo2)
## 
## Call:
## lm(formula = t_des ~ ied + cpib + IPC, data = d_clase1_2005)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7932 -1.2069 -0.1160  0.8943  6.9262 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 12.7787307  0.5458305  23.412  < 2e-16 ***
## ied         -0.0005687  0.0001631  -3.486 0.000818 ***
## cpib        -0.1335128  0.0502613  -2.656 0.009621 ** 
## IPC          0.3971836  0.2073297   1.916 0.059163 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.854 on 76 degrees of freedom
## Multiple R-squared:  0.2355, Adjusted R-squared:  0.2054 
## F-statistic: 7.805 on 3 and 76 DF,  p-value: 0.000131
#View(d_clase1_2005)

Este modelo de regresión múltiple evalúa la relación entre la tasa de desempleo (t_des) y tres variables explicativas: inversión extranjera directa (ied), crecimiento del PIB (cpib) e inflación (IPC), usando datos posteriores a 2005.

Intercepto (12.78): Representa el desempleo esperado cuando todas las variables explicativas son cero (solo tiene sentido contextual limitado).

IED (coef. = -0.00057, p < 0.001): Se encontró una relación negativa y altamente significativa entre la IED y el desempleo. A mayor inversión extranjera, menor desempleo.

Crecimiento del PIB (cpib, coef. = -0.1335, p < 0.01): También es negativamente significativo, lo que indica que a mayor crecimiento económico, el desempleo tiende a reducirse.

Inflación (IPC, coef. = 0.3972, p ≈ 0.059): Tiene un efecto positivo, pero solo marginalmente significativo, lo cual sugiere que podría influir en el desempleo, aunque la evidencia no es concluyente.

R² ajustado = 0.2054: El modelo explica aproximadamente el 20.5% de la variabilidad del desempleo, lo que indica que hay otros factores relevantes que no están incluidos.

F-statistic (p < 0.001): El modelo en su conjunto es estadísticamente significativo.

Conclusión El modelo sugiere que tanto la inversión extranjera directa como el crecimiento económico son determinantes importantes y estadísticamente significativos del desempleo en Colombia en el período posterior a 1990. Sin embargo, la inflación solo tiene un impacto marginal. Aunque el modelo es globalmente significativo, su capacidad explicativa es limitada, lo que implica que sería necesario incluir otras variables económicas o estructurales para mejorar la predicción y comprensión del desempleo en el país.

modelo sin IPC

# Filtrar los datos para años posteriores a 1990
modelo2 <- lm(t_des ~ ied + cpib, data = d_clase1_2005)
summary(modelo2)
## 
## Call:
## lm(formula = t_des ~ ied + cpib, data = d_clase1_2005)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6958 -1.1376 -0.0802  0.8337  6.6933 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 13.1252513  0.5238399  25.056  < 2e-16 ***
## ied         -0.0005484  0.0001656  -3.312  0.00141 ** 
## cpib        -0.1121908  0.0498559  -2.250  0.02728 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.886 on 77 degrees of freedom
## Multiple R-squared:  0.1986, Adjusted R-squared:  0.1778 
## F-statistic: 9.542 on 2 and 77 DF,  p-value: 0.0001986
#View(d_clase1_2005)

Análisis del modelo Este modelo evalúa el impacto de dos variables económicas —ied y cpib— sobre la tasa de desempleo en Colombia, usando datos filtrados desde el año 2005:

Intercepto (13.13): Representa el desempleo estimado cuando la IED y el crecimiento del PIB son cero. Aunque su interpretación directa es limitada, indica el punto base del modelo.

IED (coef. = -0.00055, p = 0.00141): Hay una relación negativa y altamente significativa entre la inversión extranjera y el desempleo. A mayor IED, menor desempleo, lo cual es coherente con la teoría económica sobre atracción de capital y generación de empleo.

Crecimiento del PIB (coef. = -0.1122, p = 0.02728): También presenta una relación negativa y estadísticamente significativa, lo que indica que un mayor crecimiento económico se asocia con una reducción en la tasa de desempleo.

R² ajustado = 0.1778: El modelo explica aproximadamente el 17.8% de la variabilidad del desempleo. Aunque es estadísticamente significativo, aún queda una parte considerable del fenómeno sin explicar, lo cual sugiere que existen otras variables relevantes no incluidas en el modelo.

F-statistic (p < 0.001): El modelo es globalmente significativo, es decir, al menos una de las variables explicativas tiene un efecto real sobre el desempleo.

conclusiones Este modelo sugiere que tanto la inversión extranjera directa como el crecimiento del PIB tienen un efecto significativo y negativo sobre la tasa de desempleo en Colombia después de 2005. En otras palabras, cuando aumenta la IED o mejora el crecimiento económico, la tasa de desempleo tiende a disminuir. A pesar de que el modelo es estadísticamente válido y coherente con la teoría económica, su capacidad explicativa es limitada, por lo que sería recomendable incorporar otras variables (como inflación, salarios reales, informalidad, entre otras) para mejorar su poder predictivo.

Comparación:

🧾 Comparación entre los modelos

Elemento Modelo A (con IPC) Modelo B (sin IPC) Comentario
Predictores ied, cpib, IPC ied, cpib Modelo A incluye el efecto del nivel de precios
R² ajustado 0.2054 0.1778 A mejora el ajuste explicativo, aunque levemente
Significancia de IPC 0.0591 (marginal) IPC contribuye, pero no es altamente significativo
Error residual 1.854 1.886 Ligeramente menor en el modelo A
Coeficiente de ied Similar (-0.00055 a -0.00057) Similar El impacto de ied es robusto en ambos modelos
Coeficiente de cpib Mayor en magnitud en A Menor en B Posible efecto mediador del IPC

Conclusiones

Ambos modelos muestran que la inversión extranjera directa (ied) y el crecimiento del PIB (cpib) tienen efectos negativos significativos sobre la tasa de desempleo, lo cual es consistente con la teoría económica: mayor inversión y crecimiento económico tienden a reducir el desempleo.

El modelo con IPC (Modelo A) presenta un ligeramente mejor ajuste global (mayor R² ajustado, menor error residual), lo que sugiere que el nivel de precios puede tener un rol explicativo complementario. Sin embargo, el coeficiente de IPC es marginalmente significativo, lo que indica que su inclusión no es crítica, pero podría ser útil si el interés está en captar los efectos de la inflación.

Si se busca un modelo más parsimonioso y robusto, el Modelo B (sin IPC) puede ser preferible, especialmente si hay dudas sobre la calidad o estacionariedad del IPC.

PRUEBAS supuestos

# Filtrar los datos para años posteriores a 1990
modelo2 <- lm(t_des ~ ied + cpib, data = d_clase1_2005)
summary(modelo2)
## 
## Call:
## lm(formula = t_des ~ ied + cpib, data = d_clase1_2005)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6958 -1.1376 -0.0802  0.8337  6.6933 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 13.1252513  0.5238399  25.056  < 2e-16 ***
## ied         -0.0005484  0.0001656  -3.312  0.00141 ** 
## cpib        -0.1121908  0.0498559  -2.250  0.02728 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.886 on 77 degrees of freedom
## Multiple R-squared:  0.1986, Adjusted R-squared:  0.1778 
## F-statistic: 9.542 on 2 and 77 DF,  p-value: 0.0001986

Suposiciones de Gauss-Markov: Linealidad en los parámetros (esto se da por la estructura del modelo de regresión).

Independencia de los errores (evaluado por autocorrelación).

Homocedasticidad (evaluado con la prueba de Breusch-Pagan).

No autocorrelación de los errores (evaluado por la prueba de Durbin-Watson).

No multicolinealidad (evaluado por el VIF).

Prueba de Linealidad

La linealidad en los parámetros es asumida por la forma de la regresión, por lo que no es necesario hacer pruebas adicionales para esto. Sin embargo, se puede verificar visualmente la relación entre las variables y la variable dependiente. En el modelo los paraemtros son lineales

Prueba de Homocedasticidad (Prueba de Breusch-Pagan)

Esta prueba verifica que la varianza de los errores sea constante (homocedasticidad).

# Instalar y cargar el paquete necesario
if (!require(lmtest)) install.packages("lmtest")
library(lmtest)

# Realizar la prueba de Breusch-Pagan para verificar la homocedasticidad
bp_test <- bptest(modelo2)
bp_test
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo2
## BP = 11.838, df = 2, p-value = 0.002688

Conclusión: Dado que el valor p es menor que el nivel de significancia comúnmente utilizado de 0.05, rechazamos la hipótesis nula de homocedasticidad. Esto sugiere que los residuos del modelo no tienen varianza constante y existe heterocedasticidad en los datos.

Este resultado implica que los estimadores OLS podrían no ser eficientes debido a la heterocedasticidad. Para corregir este problema, podrías considerar aplicar una corrección de heterocedasticidad, como la corrección de White o robustez de varianza en los errores estándar, o explorar modelos alternativos como los de Mínimos Cuadrados Ponderados (WLS).

Prueba de Autocorrelación (Prueba de Durbin-Watson)

Usamos la prueba de Durbin-Watson para evaluar si hay autocorrelación en los residuos. Los errores deben ser independientes.

# Realizar la prueba de Durbin-Watson para autocorrelación
dw_test <- dwtest(modelo2)
dw_test
## 
##  Durbin-Watson test
## 
## data:  modelo2
## DW = 0.7601, p-value = 9.234e-11
## alternative hypothesis: true autocorrelation is greater than 0

El valor DW está significativamente por debajo del rango aceptable de 2 (para no autocorrelación). Un valor cercano a 0 indica autocorrelación positiva en los residuos. El valor p es extremadamente bajo (menor que 0.05), lo que nos lleva a rechazar la hipótesis nula de que no hay autocorrelación en los residuos.

Esto sugiere que los residuos del modelo están autocorrelacionados, lo que puede afectar la validez de las inferencias del modelo, como los intervalos de confianza y las pruebas de hipótesis. Para corregir este problema, podrías considerar el uso de modelos que manejan autocorrelación, como modelos de efectos fijos o modelos AR(1), o aplicar la corrección de Newey-West en los errores estándar.

Gráficos de Residuos

Los gráficos de residuos te permitirán observar visualmente la homocedasticidad y la normalidad de los residuos. También podemos hacer un gráfico de residuos vs. valores ajustados para ver si existe algún patrón (lo que indicaría problemas de homocedasticidad).

  1. Gráfico de Residuos vs Valores Ajustados (para verificar Homocedasticidad)
# Graficar residuos vs valores ajustados
plot(modelo2$fitted.values, modelo2$residuals,
     main = "Residuos vs Valores Ajustados", 
     xlab = "Valores Ajustados", 
     ylab = "Residuos")
abline(h = 0, col = "red")

# Histograma de los residuos para verificar normalidad
hist(modelo2$residuals, breaks = 20, main = "Histograma de Residuos", col = "lightblue", border = "black")

# Gráfico QQ de los residuos
qqnorm(modelo2$residuals)
qqline(modelo2$residuals, col = "red")

### Prueba de Multicolinealidad (VIF) El VIF (Índice de Inflación de la Varianza) mide la colinealidad entre las variables explicativas. Un VIF mayor a 10 sugiere que existe multicolinealidad.

# Instalar y cargar el paquete necesario para calcular el VIF
if (!require(car)) install.packages("car")
library(car)

# Calcular el VIF
vif(modelo2)
##      ied     cpib 
## 1.029185 1.029185

El VIF mide la multicolinealidad entre las variables independientes. Un VIF mayor a 10 sugiere problemas graves de multicolinealidad. En este caso, los VIF son bajos (menos de 2), lo que indica que no hay problemas de multicolinealidad significativa entre las variables en el modelo. Esto sugiere que las estimaciones de los coeficientes son confiables y no están siendo distorsionadas por la colinealidad entre las variables independientes.

Resumen y conclusiòn general

Resumen General del Análisis Modelo de Regresión Múltiple: El modelo examina la relación entre la tasa de desempleo (t_des) y dos variables económicas explicativas: inversión extranjera directa (ied) y crecimiento del PIB (cpib), usando datos posteriores a 2005.

Intercepción: Representa el valor de desempleo cuando ambas variables explicativas son cero.

IED: Se observa una relación negativa significativa entre la IED y el desempleo, lo que implica que un aumento en la IED disminuye el desempleo.

Crecimiento del PIB: También se encuentra una relación negativa significativa, lo que indica que un mayor crecimiento económico reduce la tasa de desempleo.

R² Ajustado: El modelo explica el 17.78% de la variabilidad del desempleo, lo que sugiere que existen otros factores no incluidos que afectan el desempleo.

Pruebas de Supuestos:

Homocedasticidad: La prueba de Breusch-Pagan sugiere heterocedasticidad, lo que implica que los residuos no tienen varianza constante.

Autocorrelación: La prueba de Durbin-Watson indica autocorrelación positiva significativa en los residuos.

Multicolinealidad: El VIF es bajo, lo que indica que no hay multicolinealidad significativa entre las variables.

Comparación con Modelo con IPC: El modelo sin IPC presenta un ajuste ligeramente peor que el modelo con IPC, pero ambos muestran resultados consistentes en cuanto a la relación negativa de IED y crecimiento del PIB con el desempleo.

Conclusión sobre el Modelo Elegido El modelo de regresión múltiple que incluye IED y Crecimiento del PIB como variables explicativas es estadísticamente significativo y muestra que ambos factores tienen un impacto negativo sobre la tasa de desempleo en Colombia. Sin embargo, el modelo tiene limitaciones en su capacidad explicativa (solo el 17.8% de la variabilidad del desempleo) y enfrenta problemas de heterocedasticidad y autocorrelación en los residuos. A pesar de estos problemas, las relaciones encontradas son coherentes con la teoría económica. Para mejorar el modelo, sería útil incorporar más variables explicativas y abordar los problemas de heterocedasticidad y autocorrelación.

Es decir que la metodología usada puede mejorar por lo que se sugiere metodologías de series de tiempo y/o un modelo de panel de datos que tenga en cuenta la variaciòn en el tiempo

Un modelo de regresión de panel de datos es una técnica econométrica que combina datos de series de tiempo y datos transversales, permitiendo analizar múltiples observaciones de los mismos individuos a lo largo del tiempo. Este enfoque es útil para capturar efectos individuales y temporales que pueden influir en la variable dependiente. Existen dos tipos principales de modelos de datos de panel: - Modelo de efectos fijos: Asume que las características individuales no observadas son constantes a lo largo del tiempo y pueden estar correlacionadas con las variables explicativas. - Modelo de efectos aleatorios: Supone que las diferencias individuales son aleatorias y no están correlacionadas con las variables explicativas.

Entendiendo en la programación de curso se da por concluido el modelo anterior teniendo en cuenta la recomendación de cambio de metodología.

CLASE 3

para efectos de las clase 3 se usará un set de datos proporcionado por el DANE llamado GEIH para el año 2019:

La Gran encuesta integrada de hogares es una encuesta mediante la cual se solicita información sobre las condiciones de empleo de las personas (si trabajan, en qué trabajan, cuánto ganan, si tienen seguridad social en salud o si están buscando empleo), además de las características generales de la población como sexo, edad, estado civil y nivel educativo, se pregunta sobre sus fuentes de ingresos. La GEIH proporciona al país información a nivel nacional, cabecera - resto, regional, departamental, y para cada una de las capitales de los departamentos.

La presente investigación tiene por objetivo determinar los factores que influyen en la probabilidad de contar con vivienda propia en Colombia. Tomando los microdatos de la Gran Encuesta integrada de Hogares (GEIH) del Departamento Administrativo Nacional de Estadística (DANE) para el año 2019 en Colombia. Se desarrollo un estudio econométrico de variables que posiblemente tengan una relación cusas sobre la probabilidad de tener casa propia en Colombia, que permita generarle una estabilidad económica a largo plazo.

library(haven)
geih_2019 <- read_dta ("G:/Mi unidad/Economía/Materias/Metodos Cuantitativos/Metodos cuantitativos -Libardo/articulo PROBABILIDAD VIVIENDA/BASE.dta")
#names(geih_2019)
summary(geih_2019)
##       sexo            edad         estado_civil      niveduc2    
##  Min.   :1.000   Min.   :  0.00   Min.   :1.0     Min.   :1.000  
##  1st Qu.:1.000   1st Qu.: 18.00   1st Qu.:3.0     1st Qu.:3.000  
##  Median :2.000   Median : 32.00   Median :4.0     Median :5.000  
##  Mean   :1.532   Mean   : 34.76   Mean   :4.1     Mean   :4.401  
##  3rd Qu.:2.000   3rd Qu.: 51.00   3rd Qu.:6.0     3rd Qu.:6.000  
##  Max.   :2.000   Max.   :107.00   Max.   :6.0     Max.   :9.000  
##                                   NA's   :46688   NA's   :12723  
##     nivEduc            educ        fondo_pensiones  ingresos_laborales 
##  Min.   :1.00     Min.   : 0.000   Min.   :1.0      Min.   :        0  
##  1st Qu.:2.00     1st Qu.: 5.000   1st Qu.:2.0      1st Qu.:   600000  
##  Median :2.00     Median :11.000   Median :2.0      Median :   828116  
##  Mean   :2.58     Mean   : 8.855   Mean   :2.1      Mean   :  1182271  
##  3rd Qu.:3.00     3rd Qu.:12.000   3rd Qu.:2.0      3rd Qu.:  1200000  
##  Max.   :9.00     Max.   :26.000   Max.   :9.0      Max.   :100000000  
##  NA's   :175354   NA's   :12758    NA's   :262338   NA's   :201043     
##  arriendoPension    remesas         internet        NpHogar      
##  Min.   :1.00    Min.   :1.00    Min.   :1.000   Min.   : 1.000  
##  1st Qu.:2.00    1st Qu.:2.00    1st Qu.:1.000   1st Qu.: 3.000  
##  Median :2.00    Median :2.00    Median :1.000   Median : 4.000  
##  Mean   :1.89    Mean   :1.78    Mean   :1.401   Mean   : 4.223  
##  3rd Qu.:2.00    3rd Qu.:2.00    3rd Qu.:2.000   3rd Qu.: 5.000  
##  Max.   :2.00    Max.   :2.00    Max.   :2.000   Max.   :28.000  
##  NA's   :57107   NA's   :57107                                   
##     estrato           mes               cp           JefeHogar     
##  Min.   :0.000   Min.   : 1.000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:1.000   1st Qu.: 3.000   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :2.000   Median : 6.000   Median :0.0000   Median :0.0000  
##  Mean   :2.241   Mean   : 6.483   Mean   :0.4084   Mean   :0.3085  
##  3rd Qu.:3.000   3rd Qu.: 9.000   3rd Qu.:1.0000   3rd Qu.:1.0000  
##  Max.   :9.000   Max.   :12.000   Max.   :1.0000   Max.   :1.0000  
##  NA's   :145

Modelo

\[ y = \beta_0 + \beta_1 lil + \beta_2 casado + \beta_3 NpHogar + \beta_4 e_1 + \beta_5 e_2 + \beta_6 e_3 + \beta_7 e_4 + \beta_8 e_5 + \beta_{9}e_6 + \beta_{10} n\_e\_primaria + \beta_{11} n\_e\_secundaria + \beta_{12}n\_e\_universitaria + e \] Variables: Dependeinte: cp: casa propia ingresos laborales: ingresos laborales educ: años de educación estado civil: 1 si es casado, 0 lo contario NpHogar: numero de personas del hogar estrato: estrato variables categoricas desde 0 hasta 6 (clasificaciòn por estrato)

names(geih_2019)
##  [1] "sexo"               "edad"               "estado_civil"      
##  [4] "niveduc2"           "nivEduc"            "educ"              
##  [7] "fondo_pensiones"    "ingresos_laborales" "arriendoPension"   
## [10] "remesas"            "internet"           "NpHogar"           
## [13] "estrato"            "mes"                "cp"                
## [16] "JefeHogar"

Modelo LOGIT

modelo_logit <- glm(cp ~ ingresos_laborales + educ + estado_civil + NpHogar + estrato, 
                    data = geih_2019, 
                    family = binomial)
summary(modelo_logit)
## 
## Call:
## glm(formula = cp ~ ingresos_laborales + educ + estado_civil + 
##     NpHogar + estrato, family = binomial, data = geih_2019)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -1.737e+00  2.333e-02 -74.457   <2e-16 ***
## ingresos_laborales  1.676e-07  5.021e-09  33.388   <2e-16 ***
## educ                1.292e-02  1.446e-03   8.932   <2e-16 ***
## estado_civil        1.137e-01  3.254e-03  34.949   <2e-16 ***
## NpHogar             1.323e-01  2.563e-03  51.643   <2e-16 ***
## estrato            -7.432e-03  5.534e-03  -1.343    0.179    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 211552  on 158534  degrees of freedom
## Residual deviance: 206093  on 158529  degrees of freedom
##   (201117 observations deleted due to missingness)
## AIC: 206105
## 
## Number of Fisher Scoring iterations: 4
Variable Estimación Significancia Interpretación
(Intercepto) -1.737 *** Valor base de los log-odds cuando X = 0
ingresos_laborales 1.68e-07 *** A mayor ingreso, mayor probabilidad de tener vivienda propia en colombia
educ 0.0129 *** Más educación → mayor probabilidad de tener vivienda
estado_civil 0.114 *** si la persona es casada tiene mayor probabilidad de tener vivenda
NpHogar 0.132 *** Hogares más grandes → mayor probabilidad
estrato -0.007 no significativa Estrato
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following object is masked from 'package:car':
## 
##     recode
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Crear variables categóricas para cada estrato
geih_2019 <- geih_2019 %>%
  mutate(
    estrato_0 = ifelse(estrato == 0, 1, 0),
    estrato_1 = ifelse(estrato == 1, 1, 0),
    estrato_2 = ifelse(estrato == 2, 1, 0),
    estrato_3 = ifelse(estrato == 3, 1, 0),
    estrato_4 = ifelse(estrato == 4, 1, 0),
    estrato_5 = ifelse(estrato == 5, 1, 0),
    estrato_6 = ifelse(estrato == 6, 1, 0)
  )

Modelo LOGIT con la variable estrato por categoria
Dado que el modelo anterior la varibale estrato no es significativa y es relevante en el modelo teorico, se genera una categoria por cada estrato

modelo_logit2 <- glm(cp ~ ingresos_laborales + educ + estado_civil + NpHogar + estrato_1 + estrato_2 + estrato_3 + estrato_4 + estrato_5 + estrato_6, 
                    data = geih_2019, 
                    family = binomial)
summary(modelo_logit2)
## 
## Call:
## glm(formula = cp ~ ingresos_laborales + educ + estado_civil + 
##     NpHogar + estrato_1 + estrato_2 + estrato_3 + estrato_4 + 
##     estrato_5 + estrato_6, family = binomial, data = geih_2019)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -2.711e+00  1.058e-01 -25.622  < 2e-16 ***
## ingresos_laborales  1.397e-07  5.081e-09  27.488  < 2e-16 ***
## educ                1.484e-02  1.459e-03  10.171  < 2e-16 ***
## estado_civil        1.147e-01  3.264e-03  35.146  < 2e-16 ***
## NpHogar             1.290e-01  2.573e-03  50.128  < 2e-16 ***
## estrato_1           1.145e+00  1.046e-01  10.945  < 2e-16 ***
## estrato_2           8.837e-01  1.045e-01   8.456  < 2e-16 ***
## estrato_3           8.564e-01  1.048e-01   8.175 2.95e-16 ***
## estrato_4           1.108e+00  1.064e-01  10.413  < 2e-16 ***
## estrato_5           1.389e+00  1.100e-01  12.625  < 2e-16 ***
## estrato_6           1.564e+00  1.149e-01  13.606  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 211552  on 158534  degrees of freedom
## Residual deviance: 205136  on 158524  degrees of freedom
##   (201117 observations deleted due to missingness)
## AIC: 205158
## 
## Number of Fisher Scoring iterations: 4
Variable Coef. estimado Significancia Interpretación
ingresos_laborales 1.40e-07 *** A mayor ingreso, mayor probabilidad de se observa que el efecto de los ingresos
educ 0.0148 *** Más años de educación aumentan la probabilidad
estado_civil 0.1147 *** Influye positivamente (dependiendo de la codificación)
NpHogar 0.1290 *** Hogares más grandes se asocian con mayor probabilidad
estrato_1 1.145 *** Mayor probabilidad respecto al estrato base
estrato_2 0.884 *** ↑ Probabilidad vs el estarto 0
estrato_3 0.856 *** ↑ Probabilidad vs.el estarto 0
estrato_4 1.108 *** ↑ Probabilidad vs. el estarto 0
estrato_5 1.389 *** ↑ Probabilidad vs. el estarto 0
estrato_6 1.564 *** ↑ Probabilidad vs. el estarto 0

Efectos marginales:

Los efectos marginales (o AME - Average Marginal Effect) indican el cambio en la probabilidad de que ocurra un evento para un cambio unitario en una variable independiente.

Los efectos marginales son una medida de probabilidad y muestran cuánto cambia la probabilidad de que el evento ocurra (p.ej., cp = 1) al variar una variable, manteniendo constantes las otras variables.

Se calculan en el punto de la media de las variables explicativas o a partir de la probabilidad predicha.

library(margins)

# Calcular efectos marginales
efectos_marginales <- margins(modelo_logit2)

# Ver resultados
summary(efectos_marginales)
##              factor    AME     SE       z      p  lower  upper
##                educ 0.0034 0.0003 10.1758 0.0000 0.0027 0.0040
##        estado_civil 0.0261 0.0007 35.6937 0.0000 0.0247 0.0275
##           estrato_1 0.2605 0.0238 10.9573 0.0000 0.2139 0.3071
##           estrato_2 0.2011 0.0238  8.4609 0.0000 0.1545 0.2477
##           estrato_3 0.1949 0.0238  8.1801 0.0000 0.1482 0.2416
##           estrato_4 0.2522 0.0242 10.4228 0.0000 0.2048 0.2997
##           estrato_5 0.3162 0.0250 12.6435 0.0000 0.2672 0.3652
##           estrato_6 0.3559 0.0261 13.6277 0.0000 0.3047 0.4071
##  ingresos_laborales 0.0000 0.0000 27.5780 0.0000 0.0000 0.0000
##             NpHogar 0.0294 0.0006 51.7071 0.0000 0.0282 0.0305
library(knitr)

# Crear tabla manual con los resultados que diste
efectos <- data.frame(
  Variable = c("educ", "estado_civil", "estrato_1", "estrato_2", "estrato_3", 
               "estrato_4", "estrato_5", "estrato_6", "ingresos_laborales", "NpHogar"),
  AME = c(0.0034, 0.0261, 0.2605, 0.2011, 0.1949, 0.2522, 0.3162, 0.3559, 0.0000, 0.0294),
  SE = c(0.0003, 0.0007, 0.0238, 0.0238, 0.0238, 0.0242, 0.0250, 0.0261, 0.0000, 0.0006),
  z = c(10.18, 35.69, 10.96, 8.46, 8.18, 10.42, 12.64, 13.63, 27.58, 51.71),
  p = rep("<0.001", 10),
  IC_2.5 = c(0.0027, 0.0247, 0.2139, 0.1545, 0.1482, 0.2048, 0.2672, 0.3047, 0.0000, 0.0282),
  IC_97.5 = c(0.0040, 0.0275, 0.3071, 0.2477, 0.2416, 0.2997, 0.3652, 0.4071, 0.0000, 0.0305)
)

# Mostrar tabla
kable(efectos, digits = 4, caption = "Efectos Marginales Promedio (AME) del Modelo Logit")
Efectos Marginales Promedio (AME) del Modelo Logit
Variable AME SE z p IC_2.5 IC_97.5
educ 0.0034 0.0003 10.18 <0.001 0.0027 0.0040
estado_civil 0.0261 0.0007 35.69 <0.001 0.0247 0.0275
estrato_1 0.2605 0.0238 10.96 <0.001 0.2139 0.3071
estrato_2 0.2011 0.0238 8.46 <0.001 0.1545 0.2477
estrato_3 0.1949 0.0238 8.18 <0.001 0.1482 0.2416
estrato_4 0.2522 0.0242 10.42 <0.001 0.2048 0.2997
estrato_5 0.3162 0.0250 12.64 <0.001 0.2672 0.3652
estrato_6 0.3559 0.0261 13.63 <0.001 0.3047 0.4071
ingresos_laborales 0.0000 0.0000 27.58 <0.001 0.0000 0.0000
NpHogar 0.0294 0.0006 51.71 <0.001 0.0282 0.0305
  • AME (Average Marginal Effect): Es el efecto marginal promedio, indicando cuánto cambia la probabilidad del evento por cada unidad de cambio en la variable independiente. Por ejemplo, para estrato_1, el efecto marginal de 0.2605 significa que pertenecer al estrato 1 aumenta la probabilidad del evento en un 26.05%.

  • SE (Standard Error): Es el error estándar asociado al efecto marginal. Mide la variabilidad del estimador y ayuda a evaluar su precisión.

  • z: Es el estadístico z, que se calcula dividiendo el coeficiente (AME) entre su error estándar (SE). Sirve para evaluar la significancia del efecto.

  • p: Es el p-valor asociado a la prueba de hipótesis sobre el efecto marginal. Un valor muy pequeño (generalmente < 0.05) indica que el efecto es estadísticamente significativo.

  • lower / upper: Representan los límites inferior y superior del int

Interpretación General educ: Cada año adicional de educación incrementa la probabilidad de cp = 1 en 0.34 puntos porcentuales.

estado_civil: Un cambio en estado civil (según codificación) aumenta la probabilidad en 2.61 puntos.

estrato_x: En comparación con el estrato base (no incluido en el modelo), vivir en estrato 6 aumenta la probabilidad en 35.6 puntos porcentuales, y en estrato 5, en 31.6 puntos.

ingresos_laborales: Aunque el valor es muy pequeño, es estadísticamente significativo. Si los ingresos están en pesos, se recomienda reescalar.

NpHogar: Cada persona adicional en el hogar aumenta la probabilidad de cp = 1 en 2.94 puntos porcentuales.

# Extraer los coeficientes
coeficientes <- coef(modelo_logit2)

# Calcular los odds ratios (exp(coef))
odds_ratios <- exp(coeficientes)

# Mostrar los resultados
print(odds_ratios)
##        (Intercept) ingresos_laborales               educ       estado_civil 
##         0.06645691         1.00000014         1.01495081         1.12155806 
##            NpHogar          estrato_1          estrato_2          estrato_3 
##         1.13767562         3.14132471         2.41973105         2.35474621 
##          estrato_4          estrato_5          estrato_6 
##         3.02879973         4.01191219         4.77650929

Los odds ratios que obtuviste son los resultados de exponenciar los coeficientes estimados de tu modelo logit. Estos valores nos indican cómo cambian las odds (razones de oportunidad) de que ocurra el evento (cp = 1) en relación con las variables explicativas, manteniendo constantes las demás.

Vamos a interpretar cada uno de los odds ratios obtenidos:

  1. Intercepto: 0.06645691 Este valor indica las odds de que ocurra el evento cuando todas las variables independientes son igual a cero.

Como el odds ratio es menor que 1, sugiere que la probabilidad de que el evento ocurra es baja cuando no hay influencia de las variables explicativas.

  1. ingresos_laborales: 1.00000014 Este odds ratio es casi igual a 1, lo que indica que los ingresos laborales tienen un impacto muy pequeño sobre las odds de que ocurra el evento.

En otras palabras, un aumento en los ingresos laborales no cambia de manera significativa las odds de que el evento ocurra.

  1. educ (Educación): 1.01495081 Cada aumento de un año de educación incrementa las odds de que el evento ocurra en un 1.49% (porque 1.01495081 − 1 = 0.01495 1.01495081−1=0.01495, o un aumento del 1.49%).

Esto significa que más educación está asociada con mayores probabilidades de que el evento se produzca.

  1. estado_civil: 1.12155806 Este odds ratio indica que, en comparación con el estado civil base (probablemente “soltero/a”), un cambio en el estado civil (por ejemplo, ser casado/a) aumenta las odds de que el evento ocurra en 12.16%.

  2. NpHogar (Número de personas en el hogar): 1.13767562 Este odds ratio sugiere que, por cada persona adicional en el hogar, las odds de que ocurra el evento aumentan en 13.77%.

  3. estrato_1 a estrato_6: Estos valores son comparativos respecto a un estrato base, que no está incluido en el modelo (probablemente el estrato 0 o el estrato de referencia).

estrato_1: Las odds de que el evento ocurra son 3.14 veces mayores en el estrato 1 en comparación con el estrato base 0.

estrato_2: Las odds de que el evento ocurra son 2.42 veces mayores en el estrato 2.

estrato_3: Las odds de que el evento ocurra son 2.35 veces mayores en el estrato 3.

estrato_4: Las odds de que el evento ocurra son 3.03 veces mayores en el estrato 4.

estrato_5: Las odds de que el evento ocurra son 4.01 veces mayores en el estrato 5.

estrato_6: Las odds de que el evento ocurra son 4.78 veces mayores en el estrato 6.

Resumen: Los estratos más altos (estratos 5 y 6) tienen las odds más altas de que ocurra el evento en comparación con el estrato base.

La educación y el estado civil también afectan las odds de que el evento ocurra, aunque en menor medida que los estratos y el número de personas en el hogar.

# Cargar librerías necesarias
library(ggplot2)
library(caret)
## Cargando paquete requerido: lattice
# Paso 1: Crear data.frame con observaciones completas
datos_modelo <- model.frame(modelo_logit2)

# Paso 2: Generar predicciones de probabilidad y convertirlas en binarias
predicciones_prob <- predict(modelo_logit2, type = "response")
predicciones_binarias <- ifelse(predicciones_prob > 0.5, 1, 0)

# Paso 3: Matriz de confusión
tabla_conf <- table(Predicho = predicciones_binarias, Real = datos_modelo$cp)

# Paso 4: Convertir la tabla a data frame para graficar
df_conf <- as.data.frame(tabla_conf)
colnames(df_conf) <- c("Predicho", "Real", "Frecuencia")

# Paso 5: Graficar la matriz de confusión (sin tildes ni caracteres especiales)
ggplot(data = df_conf, aes(x = Real, y = Predicho)) +
  geom_tile(aes(fill = Frecuencia), color = "white") +
  geom_text(aes(label = Frecuencia), vjust = 1.5, color = "white", size = 6) +
  scale_fill_gradient(low = "#6baed6", high = "#08306b") +
  labs(title = "Matriz de Confusion", x = "Valor Real", y = "Valor Predicho") +
  theme_minimal(base_size = 14)

Real = 1 (Casos Positivos) Real = 0 (Casos Negativos)
Predicho = 1 10,310 (Falsos Positivos) 7,806 (Verdaderos Positivos)
Predicho = 0 50,982 (Falsos Negativos) 89,437 (Verdaderos Negativos)

Análisis e Interpretación Bajo poder predictivo positivo: El modelo solo identifica correctamente el 13% de los casos positivos reales (Recall). Esto indica alta tasa de falsos negativos, lo que es crítico si los positivos son importantes de detectar.

Moderada precisión para positivos: Cuando predice que alguien pertenece a la clase positiva, solo acierta el 43% de las veces.

Buen desempeño con la clase negativa: La mayoría de las predicciones negativas son correctas (TN = 89,437), lo que infla el Accuracy a aproximadamente 61%. Pero eso es engañoso si las clases están desbalanceadas, como parece ser el caso.

Posible desbalance de clases: Hay muchos más casos negativos que positivos. Esto puede estar afectando la capacidad del modelo de detectar correctamente los positivos.

Recomendaciones

  1. Revisar el balance de clases Es posible que haya desbalance de clases (muy pocos casos positivos reales).

  2. Ajusta el umbral de decisión El umbral estándar suele ser 0.5. Pero si es un problema donde te importa detectar más positivos, puedes bajar el umbral (ej. 0.3 o 0.2) para aumentar el recall.

  3. Prueba otro modelo Algunos modelos capturan mejor los patrones de clases minoritarias: Random Forest, XGBoost, SVM con pesos, etc.