Taller regresión logística - Aprendizaje Estadístico - MINE VIII

Introducción.

El acceso a una vivienda propia es un factor determinante en la estabilidad económica y social de los hogares, particularmente en sectores de bajos ingresos, la falta de vivienda propia puede estar asociada con condiciones de vida precarias, inseguridad habitacional y dificultades para la acumulación de patrimonio, para abordar esta problemática, el gobierno ha implementado un programa de subsidios destinado a facilitar la adquisición de vivienda, pero su efectividad aún no ha sido evaluada de manera cuantitativa.

Este estudio tiene como objetivo analizar los determinantes de la adquisición de vivienda propia y evaluar cómo factores como el nivel de ingresos, acceso al crédito, educación del jefe de hogar, ubicación geográfica y tamaño del hogar influyen en la probabilidad de que una familia logre acceder a una vivienda, para ello, se emplea un modelo de regresión logística, una técnica estadística adecuada para modelar variables binarias como la tenencia de vivienda.

El análisis se basa en una base de datos que contiene información de 1,000 hogares, permitiendo explorar el impacto de cada variable en la decisión de compra de vivienda, se evalúa la bondad de ajuste del modelo mediante métricas como el Criterio de Información de Akaike (AIC) y el pseudo R² de McFadden, así como el desempeño del modelo a través de la curva ROC (Receiver Operating Characteristic), además, se realiza un análisis específico sobre cómo el efecto del ingreso en la probabilidad de acceso a vivienda varía según la zona geográfica (urbana o rural).

Finalmente, con base en las estimaciones del modelo, se generan predicciones para distintos perfiles de hogares y se visualizan las probabilidades predichas en función del nivel de ingresos, los resultados de este estudio pueden contribuir a mejorar el diseño de políticas públicas de vivienda, optimizando la asignación de subsidios y facilitando el acceso equitativo a una vivienda digna.

path <-"C:/Users/nicor/OneDrive/Escritorio/Aprendizaje Estadistico/Taller reg logistica"
setwd(path)
library(ggplot2)
library(dplyr)
library(MASS)
library(readxl)
library(pROC)
library(pscl) 
library(kableExtra)
datos <- read_excel("C:/Users/nicor/OneDrive/Escritorio/Aprendizaje Estadistico/Taller reg logistica/Base_Datos_Vivienda.xlsx")

Estadisticas Descriptivas.

summary(datos)
##     Ingreso       Educacion        Credito          Zona          
##  Min.   : 500   Min.   :0.000   Min.   :0.000   Length:1000       
##  1st Qu.:2029   1st Qu.:1.000   1st Qu.:0.000   Class :character  
##  Median :3038   Median :3.000   Median :1.000   Mode  :character  
##  Mean   :3050   Mean   :2.556   Mean   :0.698                     
##  3rd Qu.:3972   3rd Qu.:4.000   3rd Qu.:1.000                     
##  Max.   :8779   Max.   :5.000   Max.   :1.000                     
##    Edad_Jefe      Tamano_Hogar      Vivienda    
##  Min.   :25.00   Min.   :1.000   Min.   :0.000  
##  1st Qu.:35.00   1st Qu.:2.000   1st Qu.:1.000  
##  Median :44.00   Median :4.000   Median :1.000  
##  Mean   :44.55   Mean   :3.465   Mean   :0.844  
##  3rd Qu.:54.00   3rd Qu.:5.000   3rd Qu.:1.000  
##  Max.   :64.00   Max.   :6.000   Max.   :1.000

Analisis Exploratorio.

colors <- c("red", "blue")[datos$Vivienda + 1]

pairs(datos[, c("Ingreso", "Edad_Jefe", "Tamano_Hogar")],
      pch = 1, cex = 0.8, gap = 0, col = colors, 
      labels = c("Ingreso", "Edad Jefe", "Tamaño Hogar"))

Interpretación: el dispersograma muestra la relación entre las variables Ingreso, Edad Jefe de Hogar y Tamaño del Hogar

  • Ingreso vs Edad del Jefe del Hogar: se evidencia alta dispersión del ingreso en todos los rangos de edad, no se muestra una relación clara entre la edad y el ingreso, se presenta mayor concentración de datos en los ingresos bajos y edades entre 30 y 60 años.

  • Ingreso vs Tamaño del Hogar: no se evidencia relación fuerte entre las variables, se muestra que el ingreso es muy variable en todos los tamaños del hogar, se presentan valores extremos de ingreso.

  • Edad del Jefe del Hogar vs Tamaño del Hogar: se evidencia que los valores se encuentran entre 1 a 6, la mayoría de estos datos se encuentran en tamaños de hogar pequeños, no se evidencia tendencia clara.

par(mfrow = c(1, 2))

boxplot(Ingreso ~ Vivienda, data = datos, col = c("red", "blue"),
        main = "Ingreso por Vivienda", xlab = "Vivienda", ylab = "Ingreso",
        names = c("No posee", "Posee"))
boxplot(Edad_Jefe ~ Vivienda, data = datos, col = c("red", "blue"),
        main = "Edad del jefe por vivienda", xlab = "Vivienda", ylab = "Edad",
        names = c("No posee", "Posee")) 

  • Boxplot ingreso por vivienda: el gráfico muestra que las personas que poseen vivienda tiene un ingreso mayor en comparación con los que no poseen vivienda, la mediana del ingreso para quienes poseen vivienda es considerablemente mas alto que de las que no poseen vivienda. Se evidencia presencia de outliers en los que poseen y no poseen vivienda, lo que indica que hay hogares con ingresos altos en este grupo.

  • Boxplot edad del jefe por vivienda: el gráfico evidencia que las personas que poseen vivienda tienen edad mayor a quienes no poseen, la mediana de la edad en el grupo de los que poseen vivienda es mayor, se presenta dispersión similar en los dos grupos, pero las personas que tienen vivienda se evidencia mayor concentración entre 40 y 60 años.

Modelamineto - Acceso a vivienda propia.

datos$Credito <- factor(datos$Credito)
datos$Vivienda <- factor(datos$Vivienda)
datos$Educacion <- factor(datos$Educacion)
datos$Zona <- factor (datos$Zona) 

str(datos)
## tibble [1,000 × 7] (S3: tbl_df/tbl/data.frame)
##  $ Ingreso     : num [1:1000] 3745 2793 3972 5285 2649 ...
##  $ Educacion   : Factor w/ 6 levels "0","1","2","3",..: 4 1 3 5 3 3 6 1 6 1 ...
##  $ Credito     : Factor w/ 2 levels "0","1": 2 2 2 1 2 2 2 2 2 1 ...
##  $ Zona        : Factor w/ 2 levels "Rural","Urbana": 1 2 1 2 2 2 1 1 1 1 ...
##  $ Edad_Jefe   : num [1:1000] 42 35 40 42 59 50 40 30 36 37 ...
##  $ Tamano_Hogar: num [1:1000] 5 2 6 1 3 4 2 3 3 6 ...
##  $ Vivienda    : Factor w/ 2 levels "0","1": 2 1 2 2 2 2 2 2 1 2 ...
mylogit <- glm(Vivienda ~ Ingreso + Educacion + Credito + Zona + 
               Edad_Jefe + Tamano_Hogar, 
               data = datos, family = "binomial")

summary(mylogit)
## 
## Call:
## glm(formula = Vivienda ~ Ingreso + Educacion + Credito + Zona + 
##     Edad_Jefe + Tamano_Hogar, family = "binomial", data = datos)
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -3.259e+00  6.066e-01  -5.372 7.77e-08 ***
## Ingreso       8.651e-04  8.809e-05   9.821  < 2e-16 ***
## Educacion1   -1.283e-01  3.045e-01  -0.421 0.673638    
## Educacion2    2.207e-01  3.326e-01   0.664 0.506982    
## Educacion3    5.906e-01  3.203e-01   1.844 0.065144 .  
## Educacion4    1.178e+00  3.689e-01   3.194 0.001405 ** 
## Educacion5    1.408e+00  4.010e-01   3.511 0.000446 ***
## Credito1      7.709e-01  2.048e-01   3.764 0.000168 ***
## ZonaUrbana    5.507e-01  2.102e-01   2.620 0.008786 ** 
## Edad_Jefe     3.530e-02  8.988e-03   3.927 8.59e-05 ***
## Tamano_Hogar -3.324e-02  5.724e-02  -0.581 0.561413    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 865.95  on 999  degrees of freedom
## Residual deviance: 670.73  on 989  degrees of freedom
## AIC: 692.73
## 
## Number of Fisher Scoring iterations: 6

Componentes aleatorios y sistemáticos del modelo.

Componentes aleatorias:

La variable dependiente es \(Vivienda_i\) la cual es dicotómica, indica si un hogar tiene o no vivienda propia, donde 1 es posee y 0 no posee vivienda propia.

La variable se modela bajo la distribución Bernoulli.

\[ Vivienda_i \sim Bernoulli(\pi_i) \]

donde:

  • \(\pi_i = P(Vivienda_i = 1)\) es la probabilidad de que el hogar posea vivienda.
  • \(1 - \pi_i = P(Vivienda_i = 0)\) es la probabilidad de que el hogar no posea vivienda.

Componentes sistemáticas del modelo:

Modela la relación entre la probabilidad de poseer vivienda y las varaibles predictorasmediante una transformación logit:

\[ \log \left( \frac{\pi_i}{1 - \pi_i} \right) = \beta_0 + \beta_1 \cdot Ingreso_i + \beta_2 \cdot Educacion_i + \beta_3 \cdot Credito_i + \]

\[ \beta_4 \cdot Zona_i + \beta_5 \cdot Edad\_Jefe_i + \beta_6 \cdot Tamano\_Hogar_i \]

donde:

  • \(\beta_0\) (Intercepto): Es el valor base de los log-odds cuando todas las variables predictoras son 0.
  • \(\beta_1\) a \(\beta_6\): Son los coeficientes de cada variable predictora, indicando el cambio en los log-odds de poseer vivienda cuando la variable aumenta en una unidad, manteniendo las demás constantes.

Interpretación.

Variable Estimación Interpretación
Intercepto -3.259 Representa los log-odds de poseer vivienda cuando todas las variables predictoras son 0. Como es negativo, indica que la probabilidad de tener vivienda es baja.
Ingreso 0.0008651 Por cada unidad adicional en el Ingreso, los log-odds de poseer vivienda aumentan en 0.0008651. Esto indica que un mayor ingreso incrementa la probabilidad de poseer vivienda (muy significativo, p < 2e-16).
Educacion1 -0.1283 No es significativo (p = 0.6736), lo que indica que tener primaria incompleta no tiene un impacto claro en la probabilidad de poseer vivienda.
Educacion2 0.2207 No es significativo (p = 0.5069), lo que indica que tener primaria completa no tiene un impacto claro en la probabilidad de poseer vivienda.
Educacion3 0.5906 Casi significativo (p = 0.0651). Puede indicar que tener secundaria completa podría aumentar la probabilidad de poseer vivienda, pero el efecto no es fuerte.
Educacion4 1.178 Significativo (p = 0.0014). Tener educación universitaria incompleta aumenta los log-odds de poseer vivienda en 1.178.
Educacion5 1.408 Significativo (p = 0.0004). Tener educación universitaria completa o posgrado aumenta los log-odds de poseer vivienda en 1.408, lo que indica un impacto positivo fuerte.
Credito1 0.7709 Significativo (p = 0.000168). Acceder a crédito bancario aumenta los log-odds de poseer vivienda en 0.7709, lo que indica que el acceso a crédito ayuda a la adquisición de vivienda.
ZonaUrbana 0.5507 Significativo (p = 0.0087). Vivir en una zona urbana, en comparación con una zona rural, incrementa los log-odds de poseer vivienda en 0.5507.
Edad_Jefe 0.3520 Muy significativo (p = 8.59e-05). Por cada año adicional en la edad del jefe del hogar, los log-odds de poseer vivienda aumentan en 0.3520, indicando que las personas mayores tienen mayor probabilidad de poseer vivienda.
Tamano_Hogar -0.03324 No es significativo (p = 0.5614), lo que indica que el tamaño del hogar no tiene un efecto claro en la probabilidad de poseer vivienda.

Significancia estadística.

Variable Estimación p-valor Significancia Interpretación
Intercepto -3.259 7.77e-08 Muy significativo Indica que los log-odds de poseer vivienda cuando todas las variables son 0 son bajos.
Ingreso 0.0008651 < 2e-16 Muy significativo Un mayor ingreso incrementa significativamente la probabilidad de poseer vivienda.
Educacion1 -0.1283 0.6736 No significativo Tener primaria incompleta no tiene un efecto claro en la probabilidad de poseer vivienda.
Educacion2 0.2207 0.5069 No significativo Tener primaria completa no tiene un efecto claro en la probabilidad de poseer vivienda.
Educacion3 0.5906 0.0651 Parcialmente significativo Tener secundaria completa podría aumentar la probabilidad de poseer vivienda, pero no tiene un efecto fuerte
Educacion4 1.178 0.0014 Significativo Tener educación universitaria incompleta aumenta significativamente la probabilidad de poseer vivienda.
Educacion5 1.408 0.0004 Muy significativo Tener educación universitaria completa o posgrado incrementa fuertemente la probabilidad de poseer vivienda.
Credito1 0.7709 0.000168 Muy significativo Acceder a crédito bancario aumenta significativamente la probabilidad de poseer vivienda.
ZonaUrbana 0.5507 0.0087 Significativo Vivir en una zona urbana incrementa significativamente la probabilidad de poseer vivienda.
Edad_Jefe 0.3520 8.59e-05 Muy significativo Por cada año adicional en la edad del jefe del hogar, la probabilidad de poseer vivienda aumenta significativamente.
Tamano_Hogar -0.03324 0.5614 No significativo El tamaño del hogar no tiene un efecto significativo en la probabilidad de poseer vivienda.

Bondad de ajuste.

kable(round(AIC(mylogit),3))
x
692.734
kable(round(pR2(mylogit),3))
## fitting null model for pseudo-r2
x
llh -335.367
llhNull -432.977
G2 195.220
McFadden 0.225
r2ML 0.177
r2CU 0.306
roc_curve <- roc(datos$Vivienda, fitted(mylogit))
plot(roc_curve, col = "blue", lwd = 2, main = "Curva ROC del Modelo Logístico", 
     xlab = "Tasa de Falsos Positivos (1 - Especificidad)", 
     ylab = "Tasa de Verdaderos Positivos (Sensibilidad)", 
     cex.main = 1.4, cex.lab = 1.2, cex.axis = 1.1)

kable(round(auc(roc_curve),3))
x
0.82

El modelo ajustado presentó un AIC de 692.7338, lo que indica un equilibrio entre la complejidad del modelo y su capacidad de ajuste a los datos. En términos generales, un menor valor de AIC sugiere un mejor ajuste, pero es importante considerar que este criterio penaliza modelos excesivamente complejos, aunque el valor obtenido no es el más bajo posible, sugiere que el modelo captura una parte significativa de la variabilidad en la tenencia de vivienda sin caer en el sobreajuste.

Por otro lado, el pseudo R² de McFadden fue de 0.2254, lo que indica que el modelo explica aproximadamente un 22.54% de la variabilidad en la variable dependiente, si bien este valor puede parecer relativamente bajo en comparación con el coeficiente de determinación R² en modelos de regresión lineal, en el contexto de modelos logísticos, un pseudo R² entre 0.2 y 0.4 es generalmente considerado como un indicador de buen ajuste, esto sugiere que los factores incluidos en el modelo tienen un impacto significativo en la probabilidad de acceso a vivienda, aunque otros elementos no contemplados en el análisis podrían estar influyendo en la decisión de compra.

Además, se evaluó el poder predictivo del modelo mediante la curva ROC, obteniendo un AUC de 0.8202. Un valor de AUC superior a 0.8 se considera un buen desempeño, lo que indica que el modelo tiene una alta capacidad para distinguir entre hogares que han adquirido vivienda y aquellos que nom en términos prácticos, esto significa que si se selecciona aleatoriamente un hogar que ha adquirido vivienda y otro que no, el modelo asignará una mayor probabilidad al primero en más del 82% de los casos.

Probabilidad de acceso a vivienda propia para un hogar con características específicas.

nuevo_hogar <- data.frame(
  Ingreso = 1500,
  Educacion = factor(3, levels = levels(datos$Educacion)),  
  Credito = factor(1, levels = levels(datos$Credito)),      
  Zona = factor("Urbana", levels = levels(datos$Zona)),   
  Edad_Jefe = 40,
  Tamano_Hogar = 4
)

prob_vivienda <- predict(mylogit, newdata = nuevo_hogar, type = "response")
kable(round(prob_vivienda,3))
x
0.774

Efecto de los ingresos sobre la probabilidad de acceso a vivienda propia según la zona geográfica.

mylogit_inter <- glm(Vivienda ~ Ingreso * Zona + Educacion + Credito + 
                      Edad_Jefe + Tamano_Hogar, 
                      data = datos, family = "binomial")

summary(mylogit_inter)
## 
## Call:
## glm(formula = Vivienda ~ Ingreso * Zona + Educacion + Credito + 
##     Edad_Jefe + Tamano_Hogar, family = "binomial", data = datos)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -2.8977558  0.6570956  -4.410 1.03e-05 ***
## Ingreso             0.0007122  0.0001380   5.163 2.44e-07 ***
## ZonaUrbana         -0.0049250  0.4560903  -0.011 0.991384    
## Educacion1         -0.0958542  0.3064500  -0.313 0.754441    
## Educacion2          0.2230659  0.3325703   0.671 0.502391    
## Educacion3          0.5870979  0.3200063   1.835 0.066558 .  
## Educacion4          1.1663460  0.3671926   3.176 0.001491 ** 
## Educacion5          1.4037156  0.3994222   3.514 0.000441 ***
## Credito1            0.7792120  0.2050951   3.799 0.000145 ***
## Edad_Jefe           0.0350190  0.0089860   3.897 9.74e-05 ***
## Tamano_Hogar       -0.0336725  0.0572542  -0.588 0.556449    
## Ingreso:ZonaUrbana  0.0002442  0.0001774   1.376 0.168709    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 865.95  on 999  degrees of freedom
## Residual deviance: 668.87  on 988  degrees of freedom
## AIC: 692.87
## 
## Number of Fisher Scoring iterations: 6

El modelo ajustado arroja un coeficiente positivo y significativo para los ingresos (β = 0.0007122, p < 0.001), lo que indica que, en general, a medida que aumentan los ingresos, la probabilidad de acceder a vivienda propia también se incrementa, sin embargo, el coeficiente correspondiente a la variable Zona Urbana (β = -0.0049250, p = 0.991) no es significativo, lo que sugiere que, en ausencia de interacción, la diferencia entre zonas no tiene un efecto notable en la probabilidad de acceso a vivienda.

En cuanto al término de interacción Ingreso:Zona Urbana (β = 0.0002442, p = 0.169), se observa que no es estadísticamente significativo (p > 0.05), lo que indica que no hay suficiente evidencia para afirmar que el impacto de los ingresos sobre la probabilidad de acceso a vivienda varíe entre las zonas urbanas y rurales, dicho de otra forma, el efecto del ingreso sobre la probabilidad de adquirir vivienda es similar en ambas zonas.

Probabilidades predichas en función del nivel de ingresos.

ingresos_seq <- data.frame(
  Ingreso = seq(min(datos$Ingreso), max(datos$Ingreso), length.out = 100),
  Educacion = factor(3, levels = levels(datos$Educacion)),  
  Credito = factor(1, levels = levels(datos$Credito)),      
  Zona = factor("Urbana", levels = levels(datos$Zona)),     
  Edad_Jefe = 40,
  Tamano_Hogar = 4
)

ingresos_seq$Probabilidad <- predict(mylogit, newdata = ingresos_seq, type = "response")

ggplot(ingresos_seq, aes(x = Ingreso, y = Probabilidad)) +
  geom_line(color = "#0073C2FF", size = 1.2) +  
  geom_point(size = 1.5, color = "#0073C2FF", alpha = 0.7) +  
  labs(title = "Relación entre Ingreso y Probabilidad de Adquirir Vivienda",
       subtitle = "Estimaciones basadas en el modelo de regresión logística",
       x = "Ingreso Mensual ($)", 
       y = "Probabilidad de Poseer Vivienda") +
  theme_minimal(base_size = 14) +  
  theme(
    plot.title = element_text(face = "bold", size = 16, hjust = 0.5),  #
    plot.subtitle = element_text(size = 12, hjust = 0.5, color = "gray30"),  
    axis.title = element_text(face = "bold"),  
    axis.text = element_text(color = "gray40"),  
    panel.grid.major = element_line(color = "gray80", linetype = "dashed"),  
    panel.grid.minor = element_blank()  
  ) +
  scale_x_continuous(labels = scales::dollar_format()) +  
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))  

Comentarios.

Diversos factores influyen en la probabilidad de que una familia posea una vivienda, y el análisis realizado revela hallazgos clave que pueden servir de base para la formulación de políticas públicas y estrategias de desarrollo económico.

Uno de los determinantes más significativos es el nivel de ingresos, los resultados muestran que existe una relación positiva y altamente significativa entre el ingreso y la probabilidad de poseer vivienda propia, es decir, a medida que aumentan los ingresos, la posibilidad de adquirir una propiedad también se incrementa, esto refuerza la idea de que la acumulación de capital es un factor clave en la adquisición de activos como la vivienda, sin embargo, este hallazgo también resalta la necesidad de implementar estrategias que permitan a los hogares de bajos ingresos acceder a oportunidades de financiamiento y subsidios que faciliten la compra de una propiedad.

Además del ingreso, el nivel educativo se presenta como un factor determinante en la tenencia de vivienda, aquellos individuos con niveles educativos más altos tienen una mayor probabilidad de poseer vivienda propia, la educación no solo está vinculada con mejores oportunidades laborales e ingresos más altos, sino también con una mayor capacidad para acceder a créditos y gestionar recursos financieros de manera efectiva, este resultado sugiere que invertir en educación puede generar beneficios de largo plazo, no solo en términos de empleabilidad e ingresos, sino también en la seguridad habitacional de los hogares.

Otro elemento fundamental en la adquisición de vivienda es el acceso al crédito, los datos indican que disponer de mecanismos de financiamiento aumenta significativamente la probabilidad de adquirir una propiedad, en este sentido, la existencia de programas de crédito accesibles y flexibles se vuelve crucial para ampliar las oportunidades de compra de vivienda, especialmente para aquellos hogares que, aunque tienen ingresos moderados, no cuentan con el capital inicial necesario para una adquisición directa.

Por otro lado, el análisis revela diferencias importantes entre las zonas urbanas y rurales, vivir en una zona urbana se asocia con una mayor probabilidad de tener vivienda propia, esto podría explicarse por una mayor disponibilidad de empleo, mejores condiciones económicas y una mayor oferta de programas de financiamiento en las ciudades, no obstante, esta diferencia también sugiere la necesidad de fortalecer políticas que fomenten el desarrollo de vivienda en zonas rurales, promoviendo equidad en el acceso a este derecho fundamental.

En términos generales, los resultados del estudio refuerzan la idea de que la vivienda propia no solo depende de la capacidad económica inmediata de los hogares, sino también de factores estructurales como el acceso al crédito, la educación y las condiciones del mercado inmobiliario en cada región, a partir de estos hallazgos, es posible derivar algunas recomendaciones para la formulación de políticas públicas, en primer lugar, es fundamental fortalecer los programas de financiamiento y subsidios para facilitar la adquisición de vivienda a sectores de bajos ingresos, asimismo, mejorar el acceso a la educación y fomentar la capacitación financiera pueden contribuir a que más personas logren estabilidad habitacional.