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
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"
# 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.
# 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.
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()
# 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
Intercepto (β₀ = 14.01): Cuando la inversión extranjera directa (ied) es 0, se espera que la tasa de desempleo (t_des) sea aproximadamente 14.01%.
Pendiente (β₁ = -0.0009144): Por cada aumento de una unidad en ied (presumiblemente millones de dólares o similar), la tasa de desempleo disminuye en 0.0009144 puntos porcentuales, en promedio.
Significancia estadistica: El p-valor asociado al coeficiente de
ied es 1.17e-09, mucho menor que 0.05.
Esto indica que la variable ied es estadísticamente significativa para
explicar la variación de la tasa de desempleo (t_des).
R² = 0.3269: El modelo explica aproximadamente el 32.7% de la variabilidad en la tasa de desempleo.
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)
# 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")
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
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
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.
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.
# 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.
# 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 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 |
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.
# 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).
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
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).
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.
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).
# 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 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.
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
\[ 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 |
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")
| 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:
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.
En otras palabras, un aumento en los ingresos laborales no cambia de manera significativa las odds de que el evento ocurra.
Esto significa que más educación está asociada con mayores probabilidades de que el evento se produzca.
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%.
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%.
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.
Revisar el balance de clases Es posible que haya desbalance de clases (muy pocos casos positivos reales).
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.
Prueba otro modelo Algunos modelos capturan mejor los patrones de clases minoritarias: Random Forest, XGBoost, SVM con pesos, etc.