Nota de integridad científica. Este es un ejercicio académico elaborado con datos sintéticos, generados íntegramente en R. No representa a un hospital real, no corresponde a una base del Ministerio de Salud ni permite inferir resultados de pacientes reales. Los umbrales de trabajo son supuestos gerenciales pedagógicos, no estándares clínicos obligatorios. El análisis es descriptivo, asociativo y de escenarios; no identifica efectos causales.

1 Resumen ejecutivo

Este informe plantea un problema de decisión: ¿cómo priorizar intervenciones para contener la congestión de urgencias, cuando la demanda, la ocupación y los tiempos de espera aumentan de forma simultánea? El valor del estudio no reside únicamente en presentar indicadores, sino en reconstruir una cadena de inferencia verificable que vincula problema, datos, métricas, hipótesis, pruebas y acciones.

El trabajo se organiza siguiendo A³ (Atención–Análisis–Acción), combina el ciclo pregunta–dato–indicador–evidencia–decisión, describe la unidad de observación y la calidad de información, explora heterogeneidad temporal, incorpora asociaciones estadísticas, verifica sensibilidad a umbrales y contrasta un escenario ilustrativo de reducción de demoras. La salida complementaria en flexdashboard permite exploración de la evidencia con indicadores y gráficos interactivos.

# Una observación equivale a una franja de seis horas de un día.
fechas <- seq(as.Date("2026-01-01"),as.Date("2026-03-31"),by="day")
franjas <- c("00:00-05:59","06:00-11:59","12:00-17:59","18:00-23:59")
datos <- tidyr::expand_grid(fecha=fechas,franja=factor(franjas,levels=franjas)) %>%
  mutate(t=as.integer(fecha-min(fecha))+1,
         id_franja=as.integer(franja),
         fin_semana=lubridate::wday(fecha,week_start=1)>=6,
         choque=fecha>=as.Date("2026-02-15") & fecha<=as.Date("2026-02-21"),
         demanda_esperada=pmax(4,23+c(-11,5,13,7)[id_franja]+4*fin_semana+
             10*choque+2*sin(t/8)+0.07*t),
         llegadas=rpois(n(),lambda=demanda_esperada),
         ocupacion_pct=round(pmax(57,pmin(108,72+0.32*llegadas+4*choque+
             3*(id_franja==3)+rnorm(n(),0,5))),1),
         espera_min=round(pmax(8,12+1.12*llegadas+
             1.5*pmax(ocupacion_pct-90,0)+rnorm(n(),0,8)),1),
         abandono=rbinom(n(),size=llegadas,
             prob=plogis(-4.5+0.023*espera_min)),
         hospitalizaciones=rbinom(n(),size=llegadas,prob=0.23),
         atencion_60_pct=round(100*plogis(3.6-0.046*espera_min),1),
         mes=format(fecha,"%Y-%m")) %>%
  select(fecha,mes,franja,fin_semana,choque,llegadas,ocupacion_pct,
         espera_min,abandono,hospitalizaciones,atencion_60_pct)
stopifnot(nrow(datos)==length(fechas)*4, !anyNA(datos),
          all(datos$llegadas>=0),all(datos$abandono<=datos$llegadas),
          all(datos$hospitalizaciones<=datos$llegadas))

Hallazgos descriptivos del experimento: a partir de 11.400 llegadas simuladas distribuidas en 360 franjas de seis horas, el tiempo medio de espera ponderado fue 53,0 minutos y la ocupación media ponderada fue 84,7 %. La tasa acumulada simulada de abandono fue 3,95 %. El máximo promedio diario de espera ocurrió el 21/02/2026, con 75,6 minutos. Las cifras constituyen resultados del experimento computacional, no estimaciones de la situación real del sector salud.

Lectura directiva: los promedios generales no muestran, por sí solos, dónde actuar. Para asignar recursos deben complementarse con el análisis por franja, la intensidad de los picos y la duración de los periodos críticos. La recomendación preliminar es implementar primero medición operacional confiable y luego realizar una prueba piloto de redistribución de capacidad con evaluación antes–después y grupo comparable, si es viable.

2 I. Fase de Atención: problema, audiencia y teoría de cambio

2.1 1.1. Problema público-gerencial

La congestión en urgencias puede entenderse como un desajuste dinámico entre flujo de llegadas, capacidad de clasificación y valoración, disponibilidad de espacios y tiempos de salida de pacientes. Una política basada en la media del trimestre puede ocultar saturaciones puntuales: una operación que parece adecuada en promedio puede fallar sistemáticamente en ciertas franjas. El costo gerencial potencial incluye reprogramaciones, insatisfacción, deserción y presión laboral; tales impactos no se cuantifican aquí porque no se dispone de variables clínicas ni financieras.

Pregunta central: ¿cuáles franjas y episodios concentran mayor riesgo operativo y qué intervención proporcional, medible y reversible debería priorizar la gerencia de una IPS de alta complejidad?

Unidad de decisión: programación operativa semanal de personal y coordinación de flujos; el ejercicio no recomienda modificar triage clínico o priorización médica sin evaluación especializada.

2.2 1.2. Audiencia, decisión y uso previsto

Perfil destinatario Pregunta que debe resolver Evidencia que necesita Decisión plausible
Gerencia general ¿Dónde priorizar inversión de gestión? Magnitud, recurrencia, incertidumbre Autorizar piloto delimitado
Dirección médica / urgencias ¿Cuándo se deteriora la oportunidad? Picos por día/franja y cargas Revisar secuencia de atención
Calidad y seguridad del paciente ¿Qué riesgos requieren seguimiento? Umbrales, abandono, consistencia Diseñar alertas con validación clínica
Talento humano y operaciones ¿La asignación acompaña la demanda? Curva horaria y variabilidad Probar redistribución de turnos
Analítica y planeación ¿Cuánto es tendencia y cuánto ruido? Diccionario, trazabilidad, incertidumbre Institucionalizar monitoreo

2.3 1.3. A³: cadena de razonamiento

Atención: delimitar el problema, los grupos afectados y la decisión específica; evitar gráficos sin pregunta. Análisis: elegir unidades de observación, construir medidas, desagregar patrones, evaluar supuestos e incertidumbre. Acción: traducir resultados a decisiones verificables, asignando responsables, indicadores, horizonte y criterios de suspensión.

2.4 1.4. Modelo lógico o teoría de cambio

Se plantea un mecanismo hipotético: mayor variabilidad de llegadas, sumada a rigidez en la distribución de capacidad, se asocia con mayor ocupación y espera; las demoras pueden estar asociadas con más abandono. Si se adapta la capacidad operativa a los patrones documentados y se monitorean resultados, podrían reducirse las demoras. Es una hipótesis de intervención, no un efecto demostrado por estos datos.

2.5 1.5. Objetivos e hipótesis contrastables

Objetivo general: construir evidencia cuantitativa reproducible que apoye la priorización de intervenciones de gestión de urgencias.

Objetivos específicos: caracterizar demanda por tiempo y franja; detectar variaciones y valores extremos; estimar la asociación entre demanda y espera; explorar sensibilidad ante distintos umbrales; y proponer un protocolo de evaluación de la intervención.

  • H1 (descriptiva): la media de llegadas difiere entre franjas.
  • H2 (asociativa): una mayor demanda por franja se asocia con esperas mayores.
  • H3 (descriptiva): los días del episodio extraordinario simulado exhiben más presión que el resto.
  • H4 (decisión): la priorización por franjas podría ser preferible a una intervención uniforme, sujeto a validación con datos reales.

3 II. Fase de Análisis: diseño, fuentes y calidad

3.1 2.1. Diseño y alcance inferencial

Estudio observacional simulado, de corte longitudinal descriptivo, con 90 días y cuatro franjas por día. No existe muestreo de pacientes: cada registro es un agregado por franja. Las pruebas y sus intervalos reflejan únicamente la variabilidad generada por el mecanismo sintético y no son generalizables a ninguna IPS. No se usa identificación personal.

El conjunto sintético incluye un incremento extraordinario programado para el 15–21 de febrero con fines pedagógicos. Conocer este mecanismo de generación facilita verificar si la técnica gráfica y la lectura analítica identifican el fenómeno esperado; en datos reales el origen de un pico requeriría verificación documental.

3.2 2.2. Variables, operacionalización y sesgos

Variable Escala y unidad Regla de cálculo Riesgo interpretativo
Fecha y franja día, bloque de 6 h Identificación temporal No es hora individual de cada ingreso
Llegadas conteo/franja Simulación Poisson No equivale a severidad clínica
Ocupación porcentaje/franja Índice simulado Puede exceder 100 %; capacidad tensionada
Espera minutos/franja Media sintética No es mediana ni percentil individual
Abandono pacientes/franja Conteo simulado No mide causalidad del retiro
Atención 60 min porcentaje/franja Probabilidad modelada No acredita oportunidad clínica observada
Choque indicador binario Fechas definidas antes del análisis Es un evento diseñado en los datos

Denominadores: las tasas agregadas de abandono se calculan como la suma de abandonos dividida entre la suma de llegadas, multiplicada por 100. Los promedios globales de espera y ocupación se ponderan por llegadas; por tanto representan el promedio por volumen atendido en cada franja, no una medición continua ni a nivel individual. Un registro con cero llegadas, si ocurriera, requeriría una regla explícita de agregación.

3.3 2.3. Control de calidad y trazabilidad

control <- data.frame(
  Prueba=c("Registros", "Duplicados fecha-franja", "Celdas vacías", "Llegadas negativas",
           "Abandonos mayores que llegadas", "Días completos (4 franjas)"),
  Resultado=c(nrow(datos), sum(duplicated(datos[c("fecha","franja")])),
              sum(is.na(datos)),sum(datos$llegadas<0),
              sum(datos$abandono>datos$llegadas),
              sum(as.integer(table(datos$fecha))==4)),
  Criterio=c("360 para 90 días", "0", "0", "0", "0", "90"))
knitr::kable(control,caption="Controles básicos de integridad y cobertura")
Controles básicos de integridad y cobertura
Prueba Resultado Criterio
Registros 360 360 para 90 días
Duplicados fecha-franja 0 0
Celdas vacías 0 0
Llegadas negativas 0 0
Abandonos mayores que llegadas 0 0
Días completos (4 franjas) 90 90

Se recomienda, para una futura base institucional, incorporar auditoría de: sellos temporales, duplicidad de episodios, definición única de llegada y valoración, consistencia entre egresos/ingresos y reglas de anonimización. Un dato técnicamente válido puede seguir siendo clínicamente inapropiado para evaluar desempeño si la métrica carece de ajuste por complejidad o triage.

3.4 2.4. Estrategia analítica y elección de geometrías

Cada visualización cumple una función. geom_line() muestra trayectorias temporales; geom_col() compara valores agregados por franja; geom_boxplot() documenta dispersión y asimetría; geom_point() examina asociaciones; annotate() enfatiza episodios críticos; ggrepel::geom_text_repel() evita solapamientos de etiquetas. theme_minimal() y scale_fill_brewer() reducen interferencias y facilitan lectura estratégica.

El análisis distingue volumen, nivel y frecuencia: no confundir la tasa de abandono con el número de abandonos ni la ocupación promedio con el porcentaje de franjas que superan cierto umbral.

4 III. Resultados: del patrón al problema de gestión

4.1 3.1. Evolución temporal de la demanda y episodio crítico

max_llegadas <- diario %>% slice_max(llegadas,n=1,with_ties=FALSE)
p_demanda <- ggplot(diario,aes(fecha,llegadas))+
  annotate("rect",xmin=as.Date("2026-02-15"),xmax=as.Date("2026-02-21"),
           ymin=-Inf,ymax=Inf,fill="#F9D8C9",alpha=.35)+
  geom_line(color=col_azul,linewidth=.65)+
  geom_smooth(method="loess",se=FALSE,color=col_rojo,linewidth=.9)+
  geom_point(data=max_llegadas,color=col_rojo,size=2.4)+
  ggrepel::geom_text_repel(data=max_llegadas,
      aes(label=paste("Máximo:",llegadas,"llegadas")),size=3.3,max.overlaps=8)+
  annotate("text",x=as.Date("2026-02-18"),y=Inf,label="Evento simulado",vjust=1.5,size=3.3)+
  labs(title="Demanda diaria: nivel, variación y episodio atípico",
       subtitle="Banda sombreada: evento de alta presión incorporado en la simulación",
       x=NULL,y="Llegadas por día")+tema
p_demanda
Figura 1. Llegadas diarias simuladas y máximo observado

Figura 1. Llegadas diarias simuladas y máximo observado

¿Qué evidencia? El máximo diario alcanzó 177 llegadas el 16/02/2026; la curva evidencia variaciones diarias y un periodo de tensión definido deliberadamente. ¿Por qué importa? La dotación fija puede ser menos efectiva ante variabilidad sistemática; un máximo aislado no justifica de inmediato expansión permanente. ¿Qué acción sugiere? Verificar recurrencia con históricos reales y dimensionar un esquema flexible para periodos de mayor presión.

4.2 3.2. Desigualdad entre franjas y priorización

p_franja <- datos %>% group_by(franja) %>% summarise(media=mean(llegadas),.groups="drop") %>%
  ggplot(aes(franja,media,fill=franja))+
  geom_col(width=.65,show.legend=FALSE)+
  geom_text(aes(label=fmt(media)),vjust=-.3,size=3.7)+
  scale_fill_brewer(palette="Blues")+
  scale_y_continuous(expand=expansion(mult=c(0,.15)))+
  labs(title="La demanda no se distribuye uniformemente durante el día",
       x=NULL,y="Llegadas promedio por franja de 6 horas")+tema
p_franja
Figura 2. Comparación de demanda media por franja de atención

Figura 2. Comparación de demanda media por franja de atención

¿Qué evidencia? La franja de mayor volumen medio es 12:00-17:59, considerando llegadas acumuladas en franjas de igual duración. ¿Por qué importa? La distribución promedio puede revelar oportunidades de programar recursos de manera asimétrica. ¿Qué acción sugiere? Contrastar esta curva con nómina efectiva, tiempos de entrega de turno y mix de triage, antes de rediseñar jornadas.

4.3 3.3. Distribución de esperas: no basta con la media

p_box <- ggplot(datos,aes(franja,espera_min,fill=franja))+
  geom_boxplot(alpha=.8,show.legend=FALSE,outlier.colour=col_rojo)+
  scale_fill_brewer(palette="Set2")+
  geom_hline(yintercept=params$umbral_espera,linetype="dashed",color=col_rojo)+
  annotate("text",x=1.5,y=params$umbral_espera+4,label="Referencia analítica: 60 min",
           color=col_rojo,size=3.2)+
  labs(title="Variabilidad de la espera entre franjas",
       subtitle="Cada punto subyacente es un promedio por franja, no un paciente",
       x=NULL,y="Espera media por franja (min)")+tema
p_box
Figura 3. Variabilidad de la espera promedio por franja

Figura 3. Variabilidad de la espera promedio por franja

¿Qué evidencia? Hay dispersión interfranja y dentro de cada franja; la mediana y los valores extremos son diferentes de un promedio trimestral único. ¿Por qué importa? Medidas que reducen la media podrían dejar intactas las esperas más altas. ¿Qué acción sugiere? Complementar un sistema real con percentiles individuales P50, P90 y P95, que no pueden estimarse legítimamente con estos datos agregados.

4.4 3.4. Ocupación y persistencia de la presión

p_ocup <- ggplot(diario,aes(fecha,ocupacion))+
  geom_line(color=col_azul,linewidth=.8)+
  geom_hline(yintercept=params$umbral_ocupacion,linetype="dashed",color=col_rojo)+
  annotate("label",x=as.Date("2026-01-20"),y=params$umbral_ocupacion+3,
           label="Umbral analítico 90 %",color=col_rojo,size=3)+
  labs(title="Ocupación observada en la simulación",
       subtitle="El umbral es gerencial e ilustrativo; requiere validación institucional",
       x=NULL,y="Ocupación ponderada (%)")+tema
p_ocup
Figura 4. Serie de ocupación media diaria ponderada

Figura 4. Serie de ocupación media diaria ponderada

¿Qué evidencia? 17,8 % de las franjas supera el umbral exploratorio de 90 %. ¿Por qué importa? La frecuencia de episodios sobre umbral captura persistencia de presión y complementa el promedio ponderado. ¿Qué acción sugiere? Acordar con urgencias y calidad umbrales por tipología de servicio, definir responsables de alertas y auditar la capacidad disponible.

4.5 3.5. Relación entre carga y espera: asociación, no causalidad

modelo <- lm(espera_min ~ llegadas, data=datos)
coef_pend <- unname(coef(modelo)["llegadas"])
r2 <- summary(modelo)$r.squared
p_disp <- ggplot(datos,aes(llegadas,espera_min))+
  geom_point(aes(color=franja),alpha=.5,size=1.8)+
  geom_smooth(method="lm",se=TRUE,color=col_rojo,fill="#E8C6C0")+
  scale_color_brewer(palette="Dark2")+
  labs(title="Mayor demanda se asocia con mayor espera en los datos generados",
       subtitle="Regresión lineal descriptiva; no constituye identificación causal",
       x="Llegadas por franja",y="Espera media por franja (min)",color="Franja")+tema
p_disp
Figura 5. Asociación bivariada entre demanda y espera

Figura 5. Asociación bivariada entre demanda y espera

knitr::kable(data.frame(Indicador=c("Pendiente (min por llegada adicional)","R² descriptivo",
"Observaciones (franjas)"),Valor=c(fmt(coef_pend,2),fmt(r2,3),nrow(datos))),
caption="Resumen del modelo lineal exploratorio")
Resumen del modelo lineal exploratorio
Indicador Valor
Pendiente (min por llegada adicional) 1,15
R² descriptivo 0,688
Observaciones (franjas) 360

¿Qué evidencia? Una llegada adicional por franja se asocia, dentro del modelo bivariado sintético, con 1,15 minutos adicionales de espera media; 68,8 % de la variación se ajusta linealmente a la demanda. ¿Por qué importa? Permite reconocer covariación operacional, pero ocupación, franja y el propio mecanismo simulado también intervienen. ¿Qué acción sugiere? Nunca interpretar la pendiente como el beneficio causal de evitar una llegada; contrastar el patrón con modelos ajustados y, preferiblemente, con un piloto evaluado.

4.6 3.6. Modelo multivariable: verificar estabilidad descriptiva

modelo_ajustado <- lm(espera_min ~ llegadas + ocupacion_pct + franja + fin_semana,
                     data=datos)
tabla_modelos <- data.frame(
  Modelo=c("Bivariado","Ajustado por ocupación, franja y fin de semana"),
  Pendiente_llegadas=c(coef(modelo)["llegadas"],coef(modelo_ajustado)["llegadas"]),
  R2=c(summary(modelo)$r.squared,summary(modelo_ajustado)$r.squared))
knitr::kable(tabla_modelos,digits=3,caption="Análisis de especificaciones alternativas")
Análisis de especificaciones alternativas
Modelo Pendiente_llegadas R2
Bivariado 1.148 0.688
Ajustado por ocupación, franja y fin de semana 1.074 0.705

El modelo ajustado introduce controles observados; no resuelve confusión no medida, dependencia temporal ni simultaneidad. La comparación de coeficientes no representa evaluación de impacto. El diseño de los datos incluye intencionalmente una relación entre carga, ocupación y espera; la detección de esa relación valida el procedimiento computacional, no una teoría clínica.

4.7 3.7. Interactividad exploratoria y autonomía del lector

plotly::ggplotly(p_demanda,tooltip=c("x","y")) %>%
  plotly::layout(hovermode="closest")

¿Qué evidencia? Al pasar el cursor se consultan días y volúmenes puntuales, y el zoom permite examinar variaciones en ventanas cortas sin cambiar la escala del análisis de origen. ¿Por qué importa? Una dirección puede corroborar fechas anómalas antes de asignar explicaciones. ¿Qué acción sugiere? Asociar eventos destacados a bitácoras administrativas y de operación, sin atribuir causas por inspección visual aislada. La conversión con plotly::ggplotly() conserva el gráfico base de ggplot2 y facilita exploración autónoma.

5 IV. Robustez, sensibilidad e incertidumbre

5.1 4.1. Sensibilidad del porcentaje de ocupación crítica

umbrales <- c(85,90,95,100)
sensibilidad <- data.frame(
  Umbral_porcentaje=umbrales,
  Franjas_superan= vapply(umbrales,function(u)sum(datos$ocupacion_pct>u),numeric(1)),
  Porcentaje_de_franjas=vapply(umbrales,function(u)100*mean(datos$ocupacion_pct>u),numeric(1)))
knitr::kable(sensibilidad,digits=1,caption="Cambios en clasificación de presión según umbral")
Cambios en clasificación de presión según umbral
Umbral_porcentaje Franjas_superan Porcentaje_de_franjas
85 142 39.4
90 64 17.8
95 18 5.0
100 2 0.6

Interpretación: variar la referencia entre 85 % y 100 % modifica cuántos episodios se clasificarían como críticos. Los umbrales son supuestos para probar robustez de la decisión, no estándares normativos ni límites clínicos. Para el uso institucional debería documentarse quién define el límite, con qué evidencia y qué respuesta se activa al superarlo.

5.2 4.2. Incertidumbre de la espera media diaria: bootstrap

# Bootstrap descriptivo de días completos (conserva las cuatro franjas de cada día).
set.seed(params$semilla+5)
B <- 1000
medias_boot <- replicate(B,{
  d <- diario[sample.int(nrow(diario),replace=TRUE),]
  weighted.mean(d$espera,d$llegadas)
})
ic_boot <- quantile(medias_boot,c(.025,.975))
knitr::kable(data.frame(Estadistico=c("Media ponderada","Percentil 2,5 %","Percentil 97,5 %"),
 Minutos=round(c(espera_global,ic_boot),2)),caption="Intervalo bootstrap ilustrativo")
Intervalo bootstrap ilustrativo
Estadistico Minutos
Media ponderada 52.99
2.5% Percentil 2,5 % 51.48
97.5% Percentil 97,5 % 54.59

El intervalo de 51,5 a 54,6 minutos expresa variabilidad al remuestrear días de la población sintética simulada. No equivale a un intervalo de confianza válido para una institución real. Tampoco corrige correlación serial compleja: para datos longitudinales institucionales se estudiaría un bootstrap por bloques o modelos de serie de tiempo.

5.3 4.3. Comparación del episodio atípico (análisis contextual)

tabla_evento <- datos %>% group_by(choque) %>% summarise(
  Franjas=n(), Llegadas_medias=mean(llegadas),
  Espera_media=weighted.mean(espera_min,llegadas),
  Ocupacion_media=weighted.mean(ocupacion_pct,llegadas),.groups="drop") %>%
  mutate(Periodo=ifelse(choque,"Evento sintético","Resto del periodo")) %>%
  select(Periodo,everything(),-choque)
knitr::kable(tabla_evento,digits=1,caption="Contraste contextual no experimental")
Contraste contextual no experimental
Periodo Franjas Llegadas_medias Espera_media Ocupacion_media
Resto del periodo 332 30.9 51.5 84.0
Evento sintético 28 40.6 66.5 91.5

¿Qué evidencia? El evento diseñado exhibe un cambio simultáneo en carga y presión. ¿Por qué importa? Ayuda a distinguir condiciones habituales de episodios que ameritarían planes de contingencia. ¿Qué acción sugiere? Construir un registro fechado de contingencias reales (brotes, cierres de servicios, incapacidades, fallos de sistemas) y verificar si coinciden temporalmente con las alertas. La comparación de grupos no estima un efecto causal.

6 V. De evidencia a decisiones: priorización y escenarios

6.1 5.1. Cuadro de mando subordinado a la metodología

indicadores <- data.frame(
  KPI=c("Llegadas acumuladas","Espera media ponderada (min)",
        "Ocupación media ponderada (%)","Tasa de abandono (%)",
        "Franjas > umbral de ocupación (%)"),
  Valor=c(fmt(n_ingresos,0),fmt(espera_global),fmt(ocup_global),
          fmt(tasa_aband_global,2),fmt(frac_ocupacion_alta)))
knitr::kable(indicadores,caption="Indicadores operativos para la decisión")
Indicadores operativos para la decisión
KPI Valor
Llegadas acumuladas 11.400
Espera media ponderada (min) 53,0
Ocupación media ponderada (%) 84,7
Tasa de abandono (%) 3,95
Franjas > umbral de ocupación (%) 17,8

En el archivo anexo Anexo_Dashboard_Flexdashboard.Rmd se encuentran flexdashboard::valueBox() y flexdashboard::gauge() con visualizaciones responsivas, que cumplen el requerimiento tecnológico. Aquí los indicadores quedan contextualizados por preguntas, definiciones y restricciones de uso.

6.2 5.2. Simulación de escenario: potencial de mejora no pronosticado

Supuesto explícito: una intervención hipotética reduce en 15 % el componente de espera en franjas cuya ocupación supera 90 %, sin cambiar volumen ni severidad. Es una sensibilidad aritmética, no una predicción validada.

escenario <- datos %>% mutate(
  espera_escenario=ifelse(ocupacion_pct>params$umbral_ocupacion,
                         espera_min*(1-params$efecto_escenario),espera_min))
actual <- weighted.mean(escenario$espera_min,escenario$llegadas)
hipotetico <- weighted.mean(escenario$espera_escenario,escenario$llegadas)
resultado <- data.frame(
 Escenario=c("Línea base simulada","Escenario supuesto de mejora"),
 Espera_media_min=c(actual,hipotetico))
knitr::kable(resultado,digits=2,caption="Efecto aritmético de un supuesto de mejora focalizada")
Efecto aritmético de un supuesto de mejora focalizada
Escenario Espera_media_min
Línea base simulada 52.99
Escenario supuesto de mejora 50.64

Bajo el supuesto, la diferencia es de 2,35 minutos en la media ponderada, equivalente a 4,43 %. Esto no significa que implementar una estrategia real vaya a lograr tal beneficio. Para estimarlo habría que especificar recursos adicionales, mecanismo, riesgos de desplazamiento, seguridad clínica y un diseño de evaluación adecuado.

6.3 5.3. Priorización con criterios verificables

Criterio Pregunta operativa Evidencia mínima requerida Riesgo si se omite
Magnitud ¿Cuántas llegadas y cuánto tiempo se concentra? Volumen y espera por franja Atender solo casos visualmente llamativos
Persistencia ¿Cuántos días se repite el problema? Frecuencia y duración de alertas Sobrerreaccionar a un solo pico
Seguridad ¿Se compromete un proceso clínico crítico? Triage, eventos adversos, revisión médica Optimizar tiempos a costa de calidad
Factibilidad ¿Hay recursos y coordinación disponibles? Turnos, costos, camas, acuerdos Recomendar medidas no implementables
Evaluabilidad ¿Se puede medir su resultado? Línea base y comparación válida No distinguir mejora de variación natural

7 VI. Fase de Acción: recomendaciones ejecutivas y protocolo de evaluación

7.1 Recomendación 1. Piloto de ajuste de capacidad por franja

Decisión: autorizar un piloto de ocho semanas de redistribución operativa en las franjas con mayor presión solo después de confirmar los patrones en registros institucionales y revisar seguridad clínica. No se propone ampliar indiscriminadamente la planta.

Responsables: Dirección de Urgencias (líder), Operaciones, Talento Humano y Calidad (validación). Ruta: dos semanas de línea base; una semana de diseño de turnos y verificación jurídica/laboral; cuatro semanas de piloto; una semana de análisis y decisión. Indicadores: mediana y P90 de espera a nivel paciente, porcentaje de valoración oportuna según triage y definición clínica, abandonos por 100 llegadas, incidentes de seguridad y horas-persona adicionales. Criterio de escalamiento: mejora sostenida sin deterioro de seguridad, costos ni equidad por nivel de triage. Criterio de suspensión: incremento relevante de incidentes o deterioro de oportunidad de casos prioritarios.

7.2 Recomendación 2. Sistema de gobierno del dato y alertas de congestión

Decisión: institucionalizar un protocolo de captura, validación y revisión semanal de flujos operativos, con alertas escalonadas y responsables definidos.

Responsables: Planeación/Analítica (diseño de datos), Sistemas (integración), Calidad (validación de indicadores) y Urgencias (respuesta). Horizonte: 30 días para diccionario de datos y reglas, 30 días adicionales para tablero y pruebas de consistencia, 30 días para evaluación y ajustes. Indicadores: integridad de campos obligatorios, latencia de actualización, duplicidad de episodios, porcentaje de alertas atendidas y tiempo de respuesta a anomalías. Criterio de éxito: trazabilidad y capacidad de actuar sobre alertas verificadas; no medir únicamente el número de visualizaciones publicadas.

7.3 6.3. Diseño recomendado para evaluar impacto real

La eficacia de un piloto no se evalúa comparando únicamente dos promedios antes–después. Es preferible construir una línea base temporal suficiente; definir intervención y resultados antes del despliegue; incluir, cuando sea viable, servicios o periodos de comparación; revisar estacionalidad, severidad, turnos y choques exógenos; documentar costos; y analizar eventos adversos. Un enfoque de diferencias en diferencias requeriría defender tendencias paralelas y un grupo comparable; un diseño de serie de tiempo interrumpida exigiría suficientes observaciones antes y después. Ninguna de estas técnicas se estima como causal en el presente trabajo.

7.4 6.4. Matriz ejecutiva de seguimiento

Producto Dueño Plazo indicativo Evidencia de cumplimiento Regla de decisión
Línea base confiable y segmentada Analítica + Urgencias Semanas 1–2 Base validada y ficha técnica Validar continuidad del piloto
Piloto de turnos y flujos Urgencias + TH Semanas 3–7 Registros de cambios y seguimiento Escalar/corregir/suspender
Evaluación operacional y clínica Calidad + Planeación Semana 8 Informe de resultados y riesgos Adopción condicionada
Diccionario y reglas de alerta Sistemas + Analítica Primer mes Protocolos versionados Habilitar operación de monitoreo
Comité de revisión de indicadores Gerencia + Calidad Mensual Acta con decisiones y responsables Ajuste de umbrales/recursos

8 VII. Limitaciones, ética y reproducibilidad

  1. Naturaleza sintética: la evidencia solo demuestra cómo desarrollar un análisis reproducible; no puede sustentar decisiones clínicas reales ni inferencias poblacionales.
  2. Agregación: franjas de seis horas ocultan colas intrahorarias, diferencias entre pacientes, triage y distribución individual de tiempos de espera.
  3. Construcción conjunta: el proceso generador introduce relaciones entre llegadas, ocupación y espera; un ajuste estadístico recupera relaciones diseñadas y no valida causalidad.
  4. Horizonte temporal: tres meses no permiten caracterizar patrones estacionales anuales, epidemias ni cambios sostenidos de oferta.
  5. Validez externa: el comportamiento de IPS concretas depende de complejidad clínica, sistema de referencia, talento humano y estructura local.
  6. Confidencialidad: con datos reales se exigiría anonimización, mínimo privilegio, custodia y revisión institucional del tratamiento de datos sensibles.

8.1 7.1. Entorno, semilla y replicación

La semilla establecida en YAML es 20261023. El código genera todos los datos desde cero, por lo que no depende de rutas locales ni archivos externos. Para replicar, instalar las librerías indicadas, abrir el .Rmd y seleccionar Knit → Knit to HTML. El dashboard adicional se genera por separado con flexdashboard.

print(R.version.string)
## [1] "R version 4.6.1 (2026-06-24 ucrt)"
cat("Semilla:",params$semilla,"\n")
## Semilla: 20261023
cat("Filas de datos sintéticos:",nrow(datos),"\n")
## Filas de datos sintéticos: 360
cat("Paquetes requeridos:",paste(paquetes,collapse=", "),"\n")
## Paquetes requeridos: ggplot2, dplyr, tidyr, lubridate, scales, RColorBrewer, ggrepel, plotly, knitr, flexdashboard, DT

9 VIII. Conclusiones

El hallazgo metodológico central es que una métrica aislada no es una decisión. La lectura integral exige comprender variabilidad, composición del volumen, frecuencia de situaciones críticas, incertidumbre, limitaciones y costos de respuesta. En el ejercicio simulado, el análisis segmentado revela dónde merece la pena investigar la congestión y cómo transformar observaciones en hipótesis de intervención. El reporte se detiene deliberadamente antes de afirmar que redistribuir recursos causa una reducción determinada en los tiempos de espera.

Para una institución real, la secuencia recomendada es: (i) construir una base auditada y ajustada por necesidad clínica; (ii) formular una intervención operacional viable; (iii) medir resultados e impactos no deseados; y (iv) decidir continuidad sobre evidencia y no sobre impresiones visuales. El anexo interactivo es un mecanismo complementario de comunicación, no el sustituto de esta metodología.

10 IX. Referencias y recursos metodológicos

Nota bibliográfica: las referencias explican herramientas y enfoques. Los resultados numéricos corresponden exclusivamente al proceso sintético implementado aquí.