El reto de gestión seleccionado consiste en predecir el tiempo de espera en sala de los pacientes antes del inicio de la atención, utilizando información administrativa disponible en una base de citas médicas. Este problema es relevante porque los tiempos de espera elevados afectan la experiencia del usuario, generan congestión en salas de espera, disminuyen la percepción de calidad y pueden evidenciar desajustes entre la capacidad instalada, la programación de agendas y la duración real de las consultas.
El objetivo analítico es diseñar y validar un modelo predictivo de
regresión lineal múltiple que permita estimar el
waiting_time a partir de variables como edad, sexo, días
entre programación y cita, duración de la consulta y estado final de la
cita. Aunque se trata de un ejercicio académico, el enfoque es aplicable
a la gestión hospitalaria porque permite anticipar escenarios de
congestión y tomar decisiones sobre programación, redistribución de
horarios y mejora del flujo de pacientes.
Como métrica de éxito se define un RMSE máximo tolerable de 15 minutos en el conjunto de prueba. Esta métrica es adecuada porque el RMSE expresa el error promedio del modelo en la misma unidad del indicador analizado. En términos administrativos, un error menor o igual a 15 minutos podría considerarse útil para apoyar decisiones de planeación operativa. También se revisará la diferencia entre el desempeño en entrenamiento y prueba para identificar posible sobreajuste.
Se seleccionaron variables candidatas con base en su utilidad para
explicar el tiempo de espera en sala. La variable objetivo es
waiting_time, que representa el tiempo de espera del
paciente antes del inicio de la atención. Como variables predictoras se
incluyeron age, sex, dias_espera,
appointment_duration y status.
La selección responde a una lógica de gestión. La edad y el sexo
permiten caracterizar diferencias poblacionales; los días de espera
pueden reflejar el comportamiento de la programación; la duración de la
cita se relaciona con la capacidad operativa; y el estado de la cita
permite identificar diferencias entre atenciones completadas, canceladas
o no asistidas. Antes de ajustar el modelo, se eliminan registros
incompletos mediante drop_na() para evitar errores en la
estimación.
| Indicador | Valor |
|---|---|
| Registros originales | 111488 |
| Registros para el modelo | 86014 |
| Variable objetivo | waiting_time |
| Técnica seleccionada | Regresión lineal múltiple |
La regresión lineal múltiple se seleccionó porque el desenlace es
continuo. Para evitar errores cuando una variable categórica queda con
un solo nivel en entrenamiento, el código verifica automáticamente los
niveles de sex y status antes de incorporarlas
al modelo. El modelo busca estimar un valor numérico de tiempo de espera
y no clasificar al paciente en categorías. Esta elección también permite
interpretar el efecto de cada variable sobre el tiempo de espera, lo
cual resulta útil para explicar los hallazgos ante directivos y equipos
de gestión.
El modelo propuesto sigue un flujo analítico simple: primero se cargan y limpian los datos; luego se seleccionan las variables candidatas; posteriormente se divide la información en entrenamiento y prueba; después se ajusta el modelo de regresión; finalmente se evalúa su desempeño mediante RMSE y se revisan residuos para un diagnóstico preliminar.
| Etapa | Descripción ejecutiva |
|---|---|
| 1. Datos reales | Citas médicas con variables administrativas y de atención |
| 2. Variable objetivo | Tiempo de espera en sala (waiting_time) |
| 3. Predictores | Edad, sexo, días de espera, duración de cita y estado de cita |
| 4. División | 75% entrenamiento y 25% prueba |
| 5. Modelo | Regresión lineal múltiple con lm() |
| 6. Evaluación | RMSE en entrenamiento y prueba |
| 7. Mejora | Ingeniería de variables y nuevos datos operativos |
De forma conceptual, el modelo puede representarse así:
waiting_time = f(age + sex + dias_espera + appointment_duration + status)
Este esquema facilita comprender que el tiempo de espera no depende de un único factor, sino de la interacción entre características del usuario, programación y comportamiento operativo. En una organización de salud, esta lógica permite pasar de decisiones reactivas a decisiones basadas en datos.
Para validar el modelo se dividió la base en dos subconjuntos: 75% para entrenamiento y 25% para prueba. Esta división permite ajustar el modelo con una parte de los datos y evaluar su capacidad predictiva sobre registros no utilizados durante el entrenamiento. De esta manera se evita evaluar el modelo únicamente sobre los mismos datos con los que fue construido.
| Conjunto | RMSE_minutos | Criterio_exito | Cumple |
|---|---|---|---|
| Entrenamiento | 40.73 | RMSE ≤ 15 minutos | No |
| Prueba | 40.97 | RMSE ≤ 15 minutos | No |
La tabla permite evaluar si el modelo cumple el criterio de éxito definido. Si el RMSE en prueba es cercano al RMSE en entrenamiento, el modelo tiene un comportamiento relativamente estable. Si el RMSE en prueba es mucho mayor, puede existir sobreajuste o falta de variables explicativas relevantes. En gestión, esta diferencia es clave porque un modelo que solo funciona en datos históricos no necesariamente será útil para apoyar decisiones futuras.
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 44.061 | 0.580 | 75.916 | 0.00000 |
| age | -0.005 | 0.008 | -0.596 | 0.55122 |
| dias_espera | 0.050 | 0.026 | 1.923 | 0.05454 |
| appointment_duration | -0.001 | 0.014 | -0.101 | 0.91976 |
| sexMale | -0.074 | 0.331 | -0.224 | 0.82261 |
La tabla de coeficientes permite revisar qué variables aportan más al modelo y si su relación con el tiempo de espera es positiva o negativa. No obstante, la interpretación debe hacerse con precaución, porque una asociación estadística no implica causalidad. Para tomar decisiones institucionales, los resultados deben complementarse con conocimiento operativo del servicio.
El diagnóstico preliminar se realizó con
broom::augment(), extrayendo los valores ajustados y los
residuos del modelo. El objetivo es revisar si los residuos presentan un
comportamiento aleatorio alrededor de cero y si no se observa un patrón
evidente de heterocedasticidad. La actividad menciona
geom_residuals(), pero en ggplot2 base no
existe una función estándar con ese nombre; por eso se usa el enfoque
equivalente con geom_point() y una línea horizontal en
cero.
Si los residuos se distribuyen de manera aleatoria alrededor de cero, el modelo presenta un comportamiento aceptable para una primera aproximación. Si se observan patrones, curvaturas o aumento de dispersión en ciertos rangos, se requiere mejorar la especificación del modelo, transformar variables o evaluar técnicas más flexibles.
El gráfico Q-Q permite evaluar de forma visual si los residuos se aproximan a una distribución normal. Desviaciones marcadas en los extremos sugieren que el modelo puede tener dificultades para predecir casos atípicos, lo que es frecuente en procesos asistenciales con alta variabilidad.
El modelo de regresión lineal múltiple permite construir una primera aproximación para predecir tiempos de espera en sala a partir de variables administrativas disponibles. Su principal fortaleza es la interpretabilidad: permite observar la dirección y magnitud de la relación entre cada variable y el resultado esperado. Esta característica es valiosa para un informe ejecutivo, porque facilita explicar los hallazgos a directivos y líderes de proceso.
Sin embargo, el desempeño debe interpretarse según el RMSE observado en entrenamiento y prueba. Si el modelo cumple el criterio de éxito, puede utilizarse como herramienta inicial para anticipar congestión y priorizar acciones preventivas. Si no lo cumple, no debe descartarse el enfoque analítico, sino fortalecerse con mejores variables, mayor granularidad temporal y métodos de modelado más robustos.
Las dos principales acciones de mejora propuestas son las siguientes:
Ingeniería de variables: construir variables adicionales como día de la semana, franja horaria, mes de atención, número de citas programadas por día, histórico de inasistencias y carga de agenda por profesional. Estas variables pueden capturar mejor la dinámica operativa del servicio.
Recolección de datos adicionales: incorporar información sobre especialidad, profesional tratante, tipo de consulta, prioridad clínica, motivo de consulta, disponibilidad de consultorios y número de pacientes en sala de espera. Estos datos pueden mejorar la capacidad predictiva y permitir intervenciones más precisas.
Adicionalmente, se recomienda comparar la regresión lineal con modelos alternativos como árboles de decisión, bosques aleatorios o regresión penalizada. Estos métodos podrían capturar relaciones no lineales que la regresión lineal no identifica fácilmente.
El ciclo de conceptualización del modelo permitió definir un problema de gestión, seleccionar variables relevantes, dividir los datos en entrenamiento y prueba, ajustar un modelo predictivo, evaluar su desempeño y realizar un diagnóstico preliminar de supuestos. Este proceso demuestra que la analítica de datos puede aportar valor a la gestión hospitalaria cuando se orienta a problemas concretos, medibles y conectados con decisiones administrativas.
En este caso, la predicción del tiempo de espera en sala representa una oportunidad para mejorar la experiencia del paciente y optimizar el flujo operativo. El modelo lineal constituye una primera aproximación útil por su sencillez e interpretabilidad; sin embargo, debe ser mejorado con nuevas variables y validaciones adicionales antes de implementarse como herramienta institucional.
Finalmente, el uso de RStudio y R Markdown permite construir un informe reproducible, en el cual el análisis técnico queda documentado dentro del código y los resultados visibles se presentan de forma ejecutiva. Este enfoque responde a la recomendación docente de diferenciar entre la programación técnica y el contenido que puede presentarse ante una junta directiva.
Fundación Universitaria de Ciencias de la Salud. Actividad Semana 3. Analítica de datos con RStudio: Diseño y validación de un modelo analítico.
RPubs. Regresión lineal múltiple. Disponible en: https://rpubs.com/DavidGS/rlm
R Core Team. (2024). R: A language and environment for statistical computing. R Foundation for Statistical Computing.
Wickham, H., & Grolemund, G. (2016). R for Data Science. O’Reilly Media.
Kuhn, M., & Johnson, K. (2013). Applied Predictive Modeling. Springer.