El Programa de Atención Domiciliaria (PAD) de Nueva EPS atiende una población predominantemente crónica y con alta carga de dependencia funcional, lo que se traduce en un uso intensivo de servicios asistenciales en el domicilio. En este contexto, resulta relevante comprender hasta qué punto el nivel de funcionalidad medido mediante el índice de Barthel, junto con la edad y el sexo de los usuarios, se asocia con la cantidad de servicios solicitados en el marco del PAD. Esta problemática se enmarca en la necesidad de optimizar la asignación de recursos domiciliarios y de identificar subgrupos de pacientes que concentran mayor demanda asistencial, con el fin de priorizar intervenciones preventivas, fortalecer el seguimiento y mejorar la eficiencia del modelo de atención.
El problema de investigación se orienta a cuantificar la relación entre la dependencia funcional y el uso de servicios de atención domiciliaria en usuarios del PAD de Nueva EPS, utilizando información proveniente del censo de noviembre de 2025. Específicamente, se plantea modelar la cantidad de servicios solicitados como función del puntaje de la Escala de Barthel, de la edad y del sexo de los usuarios, con el fin de estimar la capacidad explicativa de estas covariables sobre la variabilidad observada en el consumo de servicios. Desde una perspectiva estadística, el problema se formula como la construcción y validación de un modelo de regresión lineal múltiple en el que la variable dependiente es la cantidad de servicios solicitados, y las variables independientes son el puntaje de Barthel (continuo), la edad (continua) y el sexo (categórica), evaluando el ajuste global del modelo, la significancia de los coeficientes y el cumplimiento de los supuestos clásicos de la regresión.
En este primer momento se cargan los paquetes requeridos y se importa la base de datos del censo PAD a partir del archivo Excel.
paquetes <- c(“readxl”, “dplyr”, “ggplot2”, “car”, “lmtest”, “readr”, “DataExplorer”) instalar <- paquetes[!(paquetes %in% installed.packages()[, “Package”])] if (length(instalar) > 0) install.packages(instalar)
lapply(paquetes, library, character.only = TRUE)
ruta_base <- “C:/Users/vanesa/OneDrive/Escritorio/Rstudio 5” archivo_xls <- file.path( ruta_base, “CENSO_PAD_MASIVA NOVIEMBRE 2025_CONSOLIDADO MANUAL.xlsx” )
datos_raw <- readxl::read_excel(archivo_xls)
En este momento se identifican y construyen las variables cuantitativas y categóricas que alimentarán el modelo matemático: cantidad de servicios solicitados, índice de Barthel, edad y sexo. Posteriormente, se genera un subconjunto de datos con observaciones completas en estas variables.
datos <- datos_raw |> dplyr::mutate( cant_servicios =
as.numeric(CANTIDAD DE SERVICIOS SOLICITADOS), barthel =
as.numeric(Escala De Barthel), edad = as.numeric(Edad),
sexo = as.factor(Genero) ) |> dplyr::select(cant_servicios, barthel,
edad, sexo)
datos_m <- datos |> dplyr::filter( !is.na(cant_servicios), !is.na(barthel), !is.na(edad), !is.na(sexo) )
El análisis descriptivo permite caracterizar la distribución de la cantidad de servicios, del índice de Barthel y de la edad, así como explorar diferencias básicas por sexo. Esta etapa contextualiza el posterior ajuste del modelo.
summary(datos_m[, c(“cant_servicios”, “barthel”, “edad”)])
datos_m |> dplyr::group_by(sexo) |> dplyr::summarise( n = dplyr::n(), serv_mediana = median(cant_servicios, na.rm = TRUE), barthel_mediana = median(barthel, na.rm = TRUE), edad_media = mean(edad, na.rm = TRUE), edad_sd = sd(edad, na.rm = TRUE) )
La exploración visual se centra en la forma de las distribuciones y en la variación de la cantidad de servicios y del índice de Barthel según el sexo. Los histogramas permiten identificar asimetrías y posibles grupos, mientras que los boxplots evidencian diferencias en medianas y dispersión.
ggplot(datos_m, aes(x = barthel)) + geom_histogram(binwidth = 10, fill = “#41ab5d”, color = “white”) + labs(title = “Distribución del índice Barthel”, x = “Barthel”, y = “Frecuencia”)
ggplot(datos_m, aes(x = cant_servicios)) + geom_histogram(binwidth = 1, fill = “#2c7fb8”, color = “white”) + labs(title = “Distribución de la cantidad de servicios”, x = “Cantidad de servicios”, y = “Frecuencia”)
ggplot(datos_m, aes(x = edad)) + geom_histogram(binwidth = 5, fill = “#feb24c”, color = “white”) + labs(title = “Distribución de la edad”, x = “Edad (años)”, y = “Frecuencia”)
ggplot(datos_m, aes(x = sexo, y = cant_servicios, fill = sexo)) + geom_boxplot() + labs(title = “Cantidad de servicios por sexo”, x = “Sexo”, y = “Cantidad de servicios”) + theme(legend.position = “none”)
El modelo matemático propuesto es una regresión lineal múltiple donde la variable dependiente es la cantidad de servicios solicitados y las variables independientes son el índice de Barthel, la edad y el sexo. Este modelo permite cuantificar el efecto marginal de cada covariable sobre el uso de servicios, controlando por las demás.
modelo_final <- lm(cant_servicios ~ barthel + edad + sexo, data = datos_m) summary(modelo_final)
datos_m$pred_final <- predict(modelo_final)
ggplot(datos_m, aes(x = barthel, y = cant_servicios, color = sexo)) + geom_point(alpha = 0.4) + geom_line(aes(y = pred_final), color = “darkgreen”, size = 1) + labs(title = “Modelo final: cant_servicios ~ barthel + edad + sexo”, x = “Barthel”, y = “Cantidad de servicios”) + theme_bw() + theme(legend.position = “bottom”)
En este punto se interpreta en el texto la magnitud y la dirección de los coeficientes estimados, así como el valor del R² y del R² ajustado como indicadores de capacidad explicativa del modelo.
La validación se orienta a comprobar el cumplimiento de los supuestos clásicos de la regresión lineal: homocedasticidad, linealidad, normalidad de los residuos e influencia de observaciones extremas. Esta evaluación otorga soporte metodológico a la interpretación de los parámetros.
res <- resid(modelo_final) fit <- fitted(modelo_final)
plot(fit, res, xlab = “Valores ajustados”, ylab = “Residuos”, main = “Residuos vs valores ajustados”) abline(h = 0, col = “red”)
lmtest::bptest(modelo_final)
qqnorm(res); qqline(res, col = “red”) hist(res, breaks = 20, main = “Histograma de residuos del modelo final”, xlab = “Residuos”)
cook <- cooks.distance(modelo_final) plot(cook, ylab = “Distancia de Cook”, main = “Puntos influyentes (Distancia de Cook)”) abline(h = 4 / nrow(datos_m), col = “red”, lty = 2)
umbral_cook <- 4 / nrow(datos_m) which(cook > umbral_cook)
A partir de estos resultados se discute en el texto si los residuos se comportan de forma aproximadamente normal, si la varianza parece constante y si existe un número limitado de observaciones influyentes sin comprometer la estabilidad global del modelo.
Con el fin de contenerlos en una carpeta junto a los anexos generados por RStudio.
tabla_modelo_final <- data.frame( termino = names(coef(modelo_final)), estimador = coef(modelo_final), error_std = coef(summary(modelo_final))[, “Std. Error”], t_value = coef(summary(modelo_final))[, “t value”], p_value = coef(summary(modelo_final))[, “Pr(>|t|)”], R2 = summary(modelo_final)\(r.squared, R2_aj = summary(modelo_final)\)adj.r.squared, AIC = AIC(modelo_final) )
readr::write_csv( tabla_modelo_final, file.path(ruta_base, “PAD_modelo_final_M3_resumen.csv”) )
residuos_final <- data.frame( id_fila = seq_len(nrow(datos_m)), cant_servicios = datos_m\(cant_servicios, barthel = datos_m\)barthel, edad = datos_m\(edad, sexo = datos_m\)sexo, ajuste = fit, residuo = res, residuo_std = rstandard(modelo_final), cook_distance = cook )
readr::write_csv( residuos_final, file.path(ruta_base, “PAD_modelo_final_M3_residuos_completos.csv”) )
outliers_final <- residuos_final |> dplyr::filter(abs(residuo_std) > 2)
readr::write_csv( outliers_final, file.path(ruta_base, “PAD_modelo_final_M3_outliers_residuos_std.csv”)
Con el fin de documentar el análisis y facilitar su reutilización, se exportan tablas claves a formato CSV y se genera un reporte EDA automático de las variables empleadas en el modelo.
datos_modelos <- datos_raw |> dplyr::mutate( cant_servicios =
as.numeric(CANTIDAD DE SERVICIOS SOLICITADOS), barthel =
as.numeric(Escala De Barthel), edad = as.numeric(Edad),
sexo = as.factor(Genero) ) |> dplyr::select(cant_servicios, barthel,
edad, sexo)
DataExplorer::create_report( datos_modelos, output_file = “PAD_modelo_final_M3_EDA.html”, output_dir = ruta_base, report_title = “NUEVA EPS - PAD: EDA de variables del modelo final M3” )
El modelo estimado muestra que el índice de Barthel se asocia de manera significativa con la cantidad de servicios de atención domiciliaria, de tal forma que valores más bajos de funcionalidad se corresponden con un mayor uso de servicios, una vez controlados los efectos de la edad y del sexo. La edad también contribuye de forma relevante, reflejando que el envejecimiento se vincula con incrementos en la demanda asistencial dentro del PAD. Por su parte, el sexo introduce diferencias sistemáticas en el patrón de utilización, lo que sugiere posibles diferencias de género en la forma en que se acumula la dependencia funcional o se expresa la necesidad de atención en el domicilio. El valor del R² y del R² ajustado indica que el modelo explica una fracción importante, aunque no total, de la variabilidad en la cantidad de servicios, lo que es coherente con la complejidad clínica y social de la población analizada.
El análisis realizado permite concluir que, en la cohorte de usuarios del PAD de Nueva EPS con corte a noviembre de 2025, el nivel de dependencia funcional medido por el índice de Barthel constituye un determinante clave del uso de servicios de atención domiciliaria, en interacción con la edad y el sexo. La evidencia empírica respalda la pertinencia de utilizar medidas de funcionalidad como criterios de priorización y de asignación de recursos dentro del PAD, dado que los pacientes con mayor deterioro funcional concentran mayor carga de atenciones. El modelo matemático ajustado cumple razonablemente los supuestos de linealidad, homocedasticidad, normalidad de los residuos e influencia limitada de observaciones extremas, por lo que sus parámetros pueden interpretarse con confianza para la toma de decisiones. Futuras extensiones del trabajo podrían incorporar variables de comorbilidad, eventos adversos y soporte tecnológico para refinar la capacidad explicativa y explorar modelos predictivos de mayor complejidad orientados a la gestión proactiva del riesgo en atención domiciliaria.