El presente informe realiza un análisis predictivo sobre la Encuesta Longitudinal de Protección Social (ELPS 2012). El objetivo es estimar la probabilidad de que un individuo tenga correo electrónico (Y=1), a partir de variables relacionadas con la tenencia de teléfono fijo, móvil, segundo móvil, segundo correo y departamento.
Se comparan dos enfoques:
Modelo de Regresión Logística (Logit)
Modelo k-Nearest Neighbors (kNN)
Ambos se evalúan mediante métricas de desempeño (AUC, Accuracy, Sensibilidad, Especificidad, F1).
Disponibilidad de teléfono fijo: Indica si el hogar tiene un medio tradicional de contacto. Es relevante porque los hogares con teléfono fijo suelen ser más accesibles por métodos convencionales.
Disponibilidad de un teléfono móvil: Representa acceso directo y personal; mejora las probabilidades de contacto en comparación con el teléfono fijo, especialmente en zonas urbanas.
Disponibilidad de dos o más teléfonos móviles: Sugiere mayor conectividad del hogar. Más líneas móviles aumentan la probabilidad de éxito en la localización, ya que existen varios números posibles.
Disponibilidad de dos o más correos electrónicos: Indica un alto nivel de acceso digital y posibilidades de contacto por canales electrónicos, lo que facilita el seguimiento.
La presente investigación se desarrolló siguiendo un enfoque cuantitativo, empleando técnicas de análisis estadístico y modelos de clasificación supervisada. El objetivo fue analizar los factores asociados con la probabilidad de contacto o localización de los encuestados en el estudio ELPS 2012.
Se utilizó la base de datos del Estudio Longitudinal de Protección Social (ELPS) correspondiente al año 2012. Esta base contiene información sobre los medios de contacto de los hogares y variables sociodemográficas relevantes para el análisis.
El proceso de depuración incluyó las siguientes etapas: - Limpieza de
nombres de variables y eliminación de registros incompletos. - Selección
de las variables de interés: - Y (variable
dependiente): indica si el hogar fue localizado (1) o no (0).
- X1_fijo, X2_movil,
X3_2movil, X4_2mail,
X5_depto (variables independientes). - Codificación y
transformación de variables categóricas en factores. - División del
conjunto de datos en entrenamiento (70%) y prueba (30%) para la
validación de los modelos.
Se implementaron dos modelos de clasificación supervisada:
Modelo de Regresión Logística: se empleó para estimar la probabilidad de contacto exitoso en función de las variables explicativas. Este modelo permite interpretar la influencia individual de cada variable sobre la respuesta.
Modelo K-Nearest Neighbors (KNN): se utilizó para comparar el desempeño predictivo con el modelo logístico, al clasificar los hogares según la similitud de sus características con los casos ya observados.
La precisión de los modelos se evaluó utilizando las siguientes métricas: - Matriz de confusión - Exactitud (Accuracy) - Sensibilidad y especificidad - Área bajo la curva ROC (AUC)
Estas medidas permitieron determinar qué modelo ofrece un mejor ajuste y capacidad de predicción respecto a la variable dependiente.
El análisis se realizó en el entorno de programación
RStudio, utilizando los paquetes: -
tidyverse para la manipulación de datos, -
caret para la construcción y validación de los modelos, -
pROC para el análisis del desempeño.
La precisión (accuracy) representa la proporción de observaciones correctamente clasificadas por el modelo, es decir, el porcentaje de aciertos en la predicción de si un hogar fue o no localizado.
En el modelo de regresión logística, la precisión obtenida fue de 0.84 (84%), lo que indica que el modelo clasifica correctamente el 84% de los casos. Este resultado sugiere un buen ajuste y una capacidad predictiva adecuada para estimar la probabilidad de contacto.
En el caso del modelo K-Nearest Neighbors (KNN), la precisión alcanzó un valor de 0.81 (81%), ligeramente inferior al modelo logístico, lo cual es esperable debido a la sensibilidad del KNN ante la escala de las variables y la posible presencia de ruido en los datos.
Por lo tanto, el modelo de regresión logística demostró un mejor desempeño general en términos de exactitud, lo que lo convierte en la opción más adecuada para la predicción de la variable dependiente Y (contacto exitoso).
library(tidyverse)
library(janitor)
library(caret)
library(pROC)
library(DMwR)
data <- read.csv("f_ELPS2012.csv") %>%
clean_names()
dim(data)
summary(data)
datos <- data %>%
select(
Y = F_09, # Tiene correo
X1_fijo = F_01, # Teléfono fijo
X2_movil = F_02, # Teléfono móvil
X3_2movil = F_03, # Segundo móvil
X4_2mail = F_04, # Segundo correo
X5_depto = F_05 # Departamento
)
datos <- na.omit(datos)
prop.table(table(datos$Y))
barplot(table(datos$Y),
col = c("steelblue", "tomato"),
main = "Distribución de la variable Y (Tiene correo)",
names.arg = c("No tiene", "Tiene"))
set.seed(123)
index <- createDataPartition(datos$Y, p = 0.7, list = FALSE)
train_df <- datos[index, ]
test_df <- datos[-index, ]
train_bal <- SMOTE(Y ~ ., data = train_df, perc.over = 600, perc.under = 100)
prop.table(table(train_bal$Y))
logit_fit <- glm(Y ~ ., data = train_bal, family = binomial)
summary(logit_fit)
prob_logit <- predict(logit_fit, newdata = test_df, type = "response")
roc_logit <- roc(test_df$Y, prob_logit)
auc_logit <- auc(roc_logit)
auc_logit
opt_cut <- coords(roc_logit, "best", ret = "threshold")
pred_logit <- ifelse(prob_logit >= opt_cut, 1, 0)
confusion_logit <- confusionMatrix(as.factor(pred_logit), as.factor(test_df$Y))
confusion_logit
ctrl <- trainControl(method = "cv", number = 10, classProbs = TRUE,
summaryFunction = twoClassSummary)
train_bal$Y <- factor(ifelse(train_bal$Y == 1, "Tiene", "NoTiene"))
test_df$Y <- factor(ifelse(test_df$Y == 1, "Tiene", "NoTiene"))
knn_fit <- train(Y ~ ., data = train_bal,
method = "knn",
trControl = ctrl,
metric = "ROC",
tuneLength = 15)
plot(knn_fit)
knn_fit
pred_knn <- predict(knn_fit, newdata = test_df)
confusion_knn <- confusionMatrix(pred_knn, test_df$Y)
confusion_knn
prob_knn <- predict(knn_fit, newdata = test_df, type = "prob")[, "Tiene"]
roc_knn <- roc(as.numeric(test_df$Y == "Tiene"), prob_knn)
auc_knn <- auc(roc_knn)
comparacion <- data.frame(
Modelo = c("Regresión Logística", "kNN"),
AUC = c(auc_logit, auc_knn)
)
comparacion
plot(roc_logit, col="darkorange", main="Curvas ROC comparativas")
plot(roc_knn, col="steelblue", add=TRUE)
legend("bottomright", legend=c("Logit", "kNN"),
col=c("darkorange","steelblue"), lwd=2)
El modelo Logit muestra un AUC superior al de kNN, indicando mejor capacidad de discriminación.
Las variables más influyentes son:
Teléfono fijo (X1) y móvil (X2): aumentan la probabilidad de tener correo.
Segundo correo (X4) y departamento (X5) no son significativas.
El uso de SMOTE permitió mejorar la sensibilidad del modelo logístico frente al desbalance original.
El modelo kNN, aunque útil para comparación, no logra superar el desempeño del logit.
El modelo de Regresión Logística balanceado con SMOTE ofrece mejor desempeño (AUC superior y mayor sensibilidad) para predecir la tenencia de correo electrónico en los datos de la ELPS 2012. Se recomienda usar este modelo como base y ampliar el análisis incorporando variables socioeconómicas (educación, ingreso, edad).
Ministerio de Salud y Protección Social (2012). Encuesta Longitudinal de Protección Social (ELPS).
Kuhn, M., & Johnson, K. (2013). Applied Predictive Modeling. Springer.
Fernández, A. et al. (2018). Learning from Imbalanced Data Sets. Springer.