Dinámica de los Servicios de Salud en Barranquilla: Un Estudio Integrado de Demanda, Accesibilidad y Duración de la Hospitalización

Maestria estadística aplicada

Autor/a
Afiliación

Universidad del Norte, Barranquilla

Fecha de publicación

1 de enero de 2024

Introducción

Este estudio aborda la dinámica de las atenciones en salud recibidas por la población de Barranquilla entre enero de 2022 y julio de 2024. El análisis se focaliza en tres zonas clave de la ciudad: Metropolitana, Suroriente y Suroccidente. Estas áreas, con predominancia de población del régimen subsidiado, se encuentran cubiertas por una red integral de centros de salud georreferenciados, estratégicamente ubicados para garantizar un acceso eficiente y equitativo a los servicios de salud.

La red de atención en salud en Barranquilla está conformada por los Puntos de Atención en Salud Oportuna (P.A.S.O.S.), los Centros de Atención Médica Integral Oportuna (C.A.M.I.N.O.S.), y los Hospitales de Alta Complejidad. Cada nivel de atención tiene un propósito definido dentro del sistema, facilitando la atención escalonada según las necesidades de los pacientes.

  • P.A.S.O.S.: Estos centros representan la puerta de entrada principal al sistema de salud, enfocándose en la atención primaria. Distribuidos a lo largo de la ciudad, tienen el objetivo de mantener la salud de las comunidades mediante un enfoque preventivo y de promoción. Los P.A.S.O.S. trabajan en colaboración con los Caminantes de la Salud, quienes refuerzan estas labores preventivas, asegurando que los habitantes puedan acceder a atención básica cerca de sus hogares.

  • C.A.M.I.N.O.S.: Estos centros ofrecen atención médica de mayor complejidad y hospitalización, incluyendo servicios de urgencias. Los C.A.M.I.N.O.S. se ubican estratégicamente en áreas con mayores necesidades, brindando atención especializada que no está disponible en los P.A.S.O.S., y gestionando casos clínicos más complejos, como enfermedades crónicas.

  • Hospitales de Alta Complejidad: Representan el máximo nivel de atención en la red, ofreciendo servicios de alta complejidad que incluyen procedimientos quirúrgicos avanzados y atención prolongada. Además, estos hospitales están vinculados con actividades de investigación y docencia médica, lo que los convierte en pilares fundamentales para la formación y el avance de la atención en salud en la ciudad.

El análisis presentado busca identificar patrones de demanda, accesibilidad y duración de la hospitalización en estas zonas de Barranquilla, proporcionando insumos para una mejor planificación estratégica de los servicios de salud en la ciudad.

Conexión a la Base de Datos

El análisis de datos se realizó utilizando una base de datos almacenada en PostgreSQL, la cual contiene información detallada sobre las atenciones en salud. A continuación, se describe el proceso de conexión a dicha base de datos:

Código
# Conectar a la base de datos
con <- dbConnect(RPostgres::Postgres(),
                 dbname = db,
                 host = host, 
                 port = port,
                 user = user, 
                 password = pswd)

# Verificar la conexión
if (dbIsValid(con)) {
  print("Conexión exitosa a la base de datos.")
} else {
  stop("Fallo en la conexión a la base de datos.")
}
[1] "Conexión exitosa a la base de datos."
Código
# Ejecutar el query para extraer los  registros
query <- "SELECT * FROM atn_primer_nvl "
data <- dbGetQuery(con, query)

Descripción del Dataset

El dataset contiene información detallada sobre las atenciones en salud brindadas a los pacientes de la ciudad de Barranquilla entre enero de 2022 y julio de 2024. Estas atenciones, registradas en centros como P.A.S.O.S., C.A.M.I.N.O.S. y Hospitales, están enfocadas principalmente en la población perteneciente al régimen subsidiado. Cada fila del dataset representa una atención individual, aunque un mismo paciente puede haber recibido múltiples servicios, lo que implica que el conjunto de datos incluye varias entradas para un solo individuo.

El dataset abarca un total de 14.439.675 observaciones y 46 variables, capturando tanto la información sociodemográfica de los pacientes como los detalles específicos de las atenciones recibidas. Variables clave como el código del paciente, el tipo de documento, la edad, el género, el diagnóstico médico y los costos asociados permiten realizar un análisis profundo de los patrones de demanda, así como de los factores que influyen en la accesibilidad y la duración de las hospitalizaciones. Esto proporciona una base sólida para entender la dinámica de los servicios de salud en Barranquilla durante el periodo analizado.

Variables en el Dataset

A continuación, se describe el significado de las principales variables del dataset:

Código
# Crear un dataframe con la información de las variables
variables <- data.frame(
  Variable = c(
    "ingreso", "tipo_documento", "codigo_paciente", "municipio", "barrio",
    "direccion", "codigo_planb_ingreso", "nombre_planb_ingreso", "codigo_cups_cum", "nombre_servicio",
    "total", "codigo_grupo", "nombre_grupo", "codigo_subgrupo", "nombre_subgrupo",
    "codigo_plantilla_cubrimiento", "nombre_plantilla_cubrimiento", "codigo_manual", "nombre_manual", "codigo_medico",
    "especialidad_medico", "codigo_cencosto", "nombre_cencosto", "codigo_area_servicio", "nombre_area_servicio",
    "codigo_cenatencion", "nombre_cenatencion", "fecha_naciento", "edad", "genero",
    "modalidad", "diagnostico", "ingresado_por", "clase_ingreso", "fecha_asignacion_cita",
    "fecha_ingreso", "fecha_egreso", "nomb_pas_cam", "direccion_pas_cam", "latitud_cen_aten",
    "long_cen_aten", "latitud_paciente", "longitud_paciente", "dias_hospitalizacion", "localidad",
    "distancia", "tipo_cen_aten"
  ),
  Definición_Operacional = c(
    "Código único asignado a cada atención recibida en el sistema de salud",
    "Tipo de documento de identificación presentado por el paciente",
    "Código único asignado a cada paciente en el sistema de salud",
    "Municipio donde reside el paciente",
    "Barrio donde reside el paciente",
    "Dirección exacta de residencia del paciente",
    "Código que identifica el plan de salud o tipo de atención del paciente",
    "Nombre del plan de salud o programa de atención del paciente",
    "Código estandarizado que identifica el servicio o procedimiento médico realizado",
    "Nombre descriptivo del servicio o procedimiento médico realizado",
    "Costo total en pesos colombianos de la atención médica recibida",
    "Código que clasifica el servicio en un grupo específico",
    "Nombre del grupo al que pertenece el servicio brindado",
    "Código que identifica el subgrupo dentro del grupo de servicios",
    "Nombre del subgrupo al que pertenece el servicio",
    "Código que identifica el esquema de cobertura aplicado al servicio",
    "Nombre del esquema de cobertura de los servicios",
    "Código que identifica el manual tarifario utilizado para facturación",
    "Nombre del manual tarifario utilizado",
    "Código que identifica al médico que atendió al paciente",
    "Especialidad médica del profesional que atendió al paciente",
    "Código que identifica el centro de costo asociado al servicio",
    "Nombre del centro de costo asociado al servicio",
    "Código que identifica el área de servicio en la institución",
    "Nombre del área de servicio donde se prestó la atención",
    "Código que identifica el centro de atención médica",
    "Nombre del centro de atención donde se brindó el servicio",
    "Fecha de nacimiento del paciente",
    "Edad del paciente en años en el momento de la atención",
    "Género del paciente",
    "Modalidad bajo la cual se prestó el servicio",
    "Código del diagnóstico médico según clasificación estándar (e.g., CIE-10)",
    "Vía o canal por el cual el paciente ingresó al sistema de atención",
    "Clasificación del tipo de ingreso del paciente",
    "Fecha en que se programó la cita médica",
    "Fecha en que el paciente ingresó al centro de atención",
    "Fecha en que el paciente finalizó la atención o fue dado de alta",
    "Nombre del centro de atención (P.A.S.O.S., C.A.M.I.N.O.S., HOSPITALES)",
    "Dirección del centro de atención",
    "Coordenada geográfica de latitud del centro de atención",
    "Coordenada geográfica de longitud del centro de atención",
    "Coordenada geográfica de latitud del domicilio del paciente",
    "Coordenada geográfica de longitud del domicilio del paciente",
    "Número de días que el paciente permaneció hospitalizado",
    "Localidad geográfica donde reside el paciente",
    "Distancia en kilómetros entre el domicilio del paciente y el centro de atención",
    "Clasificación del centro de atención según su tipo"
  ),
  Tipo_de_Variable = c(
    "Numérica entera", "Categórica", "Texto", "Categórica", "Categórica",
    "Texto", "Texto", "Categórica", "Texto", "Categórica",
    "Numérica continua", "Numérica entera", "Categórica", "Numérica entera", "Categórica",
    "Texto", "Categórica", "Texto", "Categórica", "Texto",
    "Categórica", "Numérica entera", "Categórica", "Texto", "Categórica",
    "Texto", "Categórica", "Fecha", "Numérica entera", "Categórica",
    "Categórica", "Categórica", "Categórica", "Categórica", "Fecha",
    "Fecha", "Fecha", "Categórica", "Texto", "Numérica continua",
    "Numérica continua", "Numérica continua", "Numérica continua", "Numérica entera", "Categórica",
    "Numérica continua", "Categórica"
  ),
  Nivel_de_Medición = c(
    "Nominal", "Nominal", "Nominal", "Nominal", "Nominal",
    "Nominal", "Nominal", "Nominal", "Nominal", "Nominal",
    "Razón", "Nominal", "Nominal", "Nominal", "Nominal",
    "Nominal", "Nominal", "Nominal", "Nominal", "Nominal",
    "Nominal", "Nominal", "Nominal", "Nominal", "Nominal",
    "Nominal", "Nominal", "Intervalo", "Razón", "Nominal",
    "Nominal", "Nominal", "Nominal", "Nominal", "Intervalo",
    "Intervalo", "Intervalo", "Nominal", "Nominal", "Razón",
    "Razón", "Razón", "Razón", "Razón", "Nominal",
    "Razón", "Nominal"
  ),
  Valores_Categorías = c(
    "Números enteros únicos", "CC, TI, etc.", "Códigos alfanuméricos únicos", "Nombres de municipios", "Nombres de barrios",
    "Cadenas de texto de direcciones", "Códigos alfanuméricos", "Nombres de planes de salud", "Códigos CUPS o CUM", "Nombres de servicios médicos",
    "Valores numéricos positivos en moneda", "Números enteros", "Nombres de grupos de servicios", "Números enteros", "Nombres de subgrupos de servicios",
    "Códigos alfanuméricos", "Nombres de esquemas de cobertura", "Códigos alfanuméricos", "Nombres de manuales tarifarios", "Códigos alfanuméricos únicos",
    "Nombres de especialidades médicas", "Números enteros", "Nombres de centros de costo", "Códigos alfanuméricos", "Nombres de áreas de servicio",
    "Códigos alfanuméricos", "Nombres de centros de atención", "Fechas", "Números enteros no negativos", "M, F",
    "Pago por servicio, Capitación", "Códigos de diagnósticos", "Urgencias, Consulta externa", "Hospitalario, Ambulatorio", "Fechas",
    "Fechas", "Fechas", "Nombres de centros de atención", "Cadenas de texto de direcciones", "Valores numéricos de latitud en grados",
    "Valores numéricos de longitud en grados", "Valores numéricos de latitud en grados", "Valores numéricos de longitud en grados", "Números enteros no negativos", "Nombres de localidades",
    "Valores numéricos positivos", "P.A.S.O.S., C.A.M.I.N.O.S., HOSPITALES"
  )
)

# Mostrar la tabla con kable
kable(variables, col.names = c("Variable", "Definición Operacional", "Tipo de Variable", "Nivel de Medición", "Valores/Categorías"), align = "l", caption = "Matriz de Operacionalización de las Variables")
Matriz de Operacionalización de las Variables
Variable Definición Operacional Tipo de Variable Nivel de Medición Valores/Categorías
ingreso Código único asignado a cada atención recibida en el sistema de salud Numérica entera Nominal Números enteros únicos
tipo_documento Tipo de documento de identificación presentado por el paciente Categórica Nominal CC, TI, etc.
codigo_paciente Código único asignado a cada paciente en el sistema de salud Texto Nominal Códigos alfanuméricos únicos
municipio Municipio donde reside el paciente Categórica Nominal Nombres de municipios
barrio Barrio donde reside el paciente Categórica Nominal Nombres de barrios
direccion Dirección exacta de residencia del paciente Texto Nominal Cadenas de texto de direcciones
codigo_planb_ingreso Código que identifica el plan de salud o tipo de atención del paciente Texto Nominal Códigos alfanuméricos
nombre_planb_ingreso Nombre del plan de salud o programa de atención del paciente Categórica Nominal Nombres de planes de salud
codigo_cups_cum Código estandarizado que identifica el servicio o procedimiento médico realizado Texto Nominal Códigos CUPS o CUM
nombre_servicio Nombre descriptivo del servicio o procedimiento médico realizado Categórica Nominal Nombres de servicios médicos
total Costo total en pesos colombianos de la atención médica recibida Numérica continua Razón Valores numéricos positivos en moneda
codigo_grupo Código que clasifica el servicio en un grupo específico Numérica entera Nominal Números enteros
nombre_grupo Nombre del grupo al que pertenece el servicio brindado Categórica Nominal Nombres de grupos de servicios
codigo_subgrupo Código que identifica el subgrupo dentro del grupo de servicios Numérica entera Nominal Números enteros
nombre_subgrupo Nombre del subgrupo al que pertenece el servicio Categórica Nominal Nombres de subgrupos de servicios
codigo_plantilla_cubrimiento Código que identifica el esquema de cobertura aplicado al servicio Texto Nominal Códigos alfanuméricos
nombre_plantilla_cubrimiento Nombre del esquema de cobertura de los servicios Categórica Nominal Nombres de esquemas de cobertura
codigo_manual Código que identifica el manual tarifario utilizado para facturación Texto Nominal Códigos alfanuméricos
nombre_manual Nombre del manual tarifario utilizado Categórica Nominal Nombres de manuales tarifarios
codigo_medico Código que identifica al médico que atendió al paciente Texto Nominal Códigos alfanuméricos únicos
especialidad_medico Especialidad médica del profesional que atendió al paciente Categórica Nominal Nombres de especialidades médicas
codigo_cencosto Código que identifica el centro de costo asociado al servicio Numérica entera Nominal Números enteros
nombre_cencosto Nombre del centro de costo asociado al servicio Categórica Nominal Nombres de centros de costo
codigo_area_servicio Código que identifica el área de servicio en la institución Texto Nominal Códigos alfanuméricos
nombre_area_servicio Nombre del área de servicio donde se prestó la atención Categórica Nominal Nombres de áreas de servicio
codigo_cenatencion Código que identifica el centro de atención médica Texto Nominal Códigos alfanuméricos
nombre_cenatencion Nombre del centro de atención donde se brindó el servicio Categórica Nominal Nombres de centros de atención
fecha_naciento Fecha de nacimiento del paciente Fecha Intervalo Fechas
edad Edad del paciente en años en el momento de la atención Numérica entera Razón Números enteros no negativos
genero Género del paciente Categórica Nominal M, F
modalidad Modalidad bajo la cual se prestó el servicio Categórica Nominal Pago por servicio, Capitación
diagnostico Código del diagnóstico médico según clasificación estándar (e.g., CIE-10) Categórica Nominal Códigos de diagnósticos
ingresado_por Vía o canal por el cual el paciente ingresó al sistema de atención Categórica Nominal Urgencias, Consulta externa
clase_ingreso Clasificación del tipo de ingreso del paciente Categórica Nominal Hospitalario, Ambulatorio
fecha_asignacion_cita Fecha en que se programó la cita médica Fecha Intervalo Fechas
fecha_ingreso Fecha en que el paciente ingresó al centro de atención Fecha Intervalo Fechas
fecha_egreso Fecha en que el paciente finalizó la atención o fue dado de alta Fecha Intervalo Fechas
nomb_pas_cam Nombre del centro de atención (P.A.S.O.S., C.A.M.I.N.O.S., HOSPITALES) Categórica Nominal Nombres de centros de atención
direccion_pas_cam Dirección del centro de atención Texto Nominal Cadenas de texto de direcciones
latitud_cen_aten Coordenada geográfica de latitud del centro de atención Numérica continua Razón Valores numéricos de latitud en grados
long_cen_aten Coordenada geográfica de longitud del centro de atención Numérica continua Razón Valores numéricos de longitud en grados
latitud_paciente Coordenada geográfica de latitud del domicilio del paciente Numérica continua Razón Valores numéricos de latitud en grados
longitud_paciente Coordenada geográfica de longitud del domicilio del paciente Numérica continua Razón Valores numéricos de longitud en grados
dias_hospitalizacion Número de días que el paciente permaneció hospitalizado Numérica entera Razón Números enteros no negativos
localidad Localidad geográfica donde reside el paciente Categórica Nominal Nombres de localidades
distancia Distancia en kilómetros entre el domicilio del paciente y el centro de atención Numérica continua Razón Valores numéricos positivos
tipo_cen_aten Clasificación del centro de atención según su tipo Categórica Nominal P.A.S.O.S., C.A.M.I.N.O.S., HOSPITALES

Exploración Inicial de los Datos

Tras establecer la conexión con la base de datos, se procede a una exploración preliminar de los datos disponibles. Esta fase inicial incluye la revisión de la estructura y contenido de la tabla atn_primer_nvl, que almacena los registros relacionados con las atenciones en salud.

Vista previa de los datos
ingreso tipo_documento codigo_paciente municipio barrio direccion codigo_planb_ingreso nombre_planb_ingreso codigo_cups_cum nombre_servicio total codigo_grupo nombre_grupo codigo_subgrupo nombre_subgrupo codigo_plantilla_cubrimiento nombre_plantilla_cubrimiento codigo_manual nombre_manual codigo_medico especialidad_medico codigo_cencosto nombre_cencosto codigo_cenatencion nombre_cenatencion fecha_naciento edad genero modalidad diagnostico ingresado_por clase_ingreso fecha_asignacion_cita fecha_ingreso fecha_egreso nomb_pas_cam direccion_pas_cam latitud_cen_aten long_cen_aten latitud_paciente longitud_paciente check dias_hospitalizacion localidad distancia tipo_cen_aten
10793216 AS VEN29557183 NA NA NA 30 SECRETARIA DE SALUD DE BARRANQUILLA (POBLACION VENEZOLANA) 906913 PROTEINA C REACTIVA PCR- PRUEBA CUANTITATIVA DE ALTA PRECISION 42200.0 1 AYUDAS DIAGNOSTICAS 1 LABORATORIO A74 PLANTILLA SECRETARIA BQUILLA POBLACION MIGRANTES A29 MANUAL SECRETARIA BQUILLA SOAT VIGENTE 2019 -25% 1143114157 NA 2 URGENCIAS CMU CAMINO MURILLO (Calle 45 # 8H-48) 23/10/1997 25 F PAGO_SERVICIOS R509-FIEBRE, NO ESPECIFICADA URGENCIAS HOSPITALARIO NA 2022-06-22 2022-06-23 CAMINO MURILLO Av. Murillo #8h-79 10.94908 -74.79942 NA NA NA 1 SURORIENTE NA CAMINO
10813465 TI 1119392096 NA NA NA 158 CAJA DE COMPENSACION FAMILIAR GUAJIRA 902210 HEMOGRAMA IV (HEMOGLOBINA HEMATOCRITO RECUENTO DE ERITROCITOS INDICES ERITROCITARIOS LEUCOGRAMA RECUENTO DE PLAQUETAS INDICES PLAQUETARIOS Y MORFOLOGIA ELECTRONICA E HISTOGRAMA) AUTOMATIZADO 27700.0 1 AYUDAS DIAGNOSTICAS 1 LABORATORIO A23 SIN CONTRATO SOAT PLENO A23 MANUAL TARIFA SIN CONTRATO 1143466631 NA 2 URGENCIAS CSB CAMINO SIMON BOLIVAR (Calle 23 # 5-50) 12/12/2005 16 F PAGO_SERVICIOS O470-FALSO TRABAJO DE PARTO ANTES DE LAS 37 SEMANAS COMPLETAS DE GESTACION URGENCIAS HOSPITALARIO NA 2022-06-25 2022-06-29 CAMINO SIMON BOLIVAR Calle 23 # 5-50 10.94354 -74.77816 NA NA NA 4 SURORIENTE NA CAMINO
10769018 CC 1143238728 NA NA NA 201 COOSALUD (SUBSIDIADO) EVENTO 902210 HEMOGRAMA IV [HEMOGLOBINA, HEMATOCRITO, RECUENTO DE ERITROCITOS,INDICES ERITROCITARIOS,LEUCOGRAMA,RECUENTO DE PLAQUETAS,INDICES PLAQUETARIOS Y MORFOLOGIA ELECTRONICA E HISTOGRAMA] METODO AUTOMATICO (233) 13769.0 1 AYUDAS DIAGNOSTICAS 1 LABORATORIO A28 COOSALUD EVENTO ISS 2001+22% A32 MANUAL COOSALUD EVENTO ISS 2001 72346733 NA 2 URGENCIAS CBM CAMINO BOSQUES DE MARIA (Diag. 64B # 9D-66) 15/10/1997 25 F PAGO_SERVICIOS O470-FALSO TRABAJO DE PARTO ANTES DE LAS 37 SEMANAS COMPLETAS DE GESTACION URGENCIAS HOSPITALARIO NA 2022-06-20 2022-06-28 CAMINO BOSQUE DE MARIA Diag. 64B # 9D-66 10.95675 -74.81726 NA NA NA 8 SUROCCIDENTE NA CAMINO
10768442 CC 1045699328 NA NA NA 15 MUTUAL SER EVENTO SUBSIDIADO V03AN01 OXIGENO POR VENTURY 31% A 35% 68400.0 4 PLANTA OXIGENO 7 OXIGENO A11 MUTUAL SER EVENTO ISS 2001 A11 MUTUAL SER ISS 2001 1140884704 NA 12 HEMODINAMIA CUD CAMINO UNIVERSITARIO ADELITA DE CHAR (Calle 50 # 20-91) 26/05/2001 21 M PAGO_SERVICIOS R509-FIEBRE, NO ESPECIFICADA URGENCIAS HOSPITALARIO NA 2022-06-19 2022-07-03 Camino Adelita de Char Calle 50 # 20-91 10.96528 -74.79795 NA NA NA 14 SUROCCIDENTE NA HOSPITAL
10769018 CC 1143238728 NA NA NA 201 COOSALUD (SUBSIDIADO) EVENTO 903111 ACIDO LACTICO [L-LACTATO] POR METODO ENZIMATICO 23594.0 1 AYUDAS DIAGNOSTICAS 1 LABORATORIO A28 COOSALUD EVENTO ISS 2001+22% A32 MANUAL COOSALUD EVENTO ISS 2001 72269269 NA 5 HOSPITALIZACION GINECOBSTETRICA CBM CAMINO BOSQUES DE MARIA (Diag. 64B # 9D-66) 15/10/1997 25 F PAGO_SERVICIOS O470-FALSO TRABAJO DE PARTO ANTES DE LAS 37 SEMANAS COMPLETAS DE GESTACION URGENCIAS HOSPITALARIO NA 2022-06-20 2022-06-28 CAMINO BOSQUE DE MARIA Diag. 64B # 9D-66 10.95675 -74.81726 NA NA NA 8 SUROCCIDENTE NA CAMINO
10807236 MS VEN6874937 NA NA NA 30 SECRETARIA DE SALUD DE BARRANQUILLA (POBLACION VENEZOLANA) 890383 CONSULTA DE CONTROL O DE SEGUIMIENTO POR ESPECIALISTA EN PEDIATRIA 0.0 5 CONSULTAS 28 CONSULTA ESPECIALIZADA PEDIATRIA A74 PLANTILLA SECRETARIA BQUILLA POBLACION MIGRANTES A29 MANUAL SECRETARIA BQUILLA SOAT VIGENTE 2019 -25% 1140903652 NA 12 HEMODINAMIA CBM CAMINO BOSQUES DE MARIA (Diag. 64B # 9D-66) 29/08/2014 8 F PAGO_SERVICIOS R509-FIEBRE, NO ESPECIFICADA URGENCIAS AMBULATORIO NA 2022-06-25 2022-06-25 CAMINO BOSQUE DE MARIA Diag. 64B # 9D-66 10.95675 -74.81726 NA NA NA 0 SUROCCIDENTE NA CAMINO

Transformación de los Tipos de Datos

Antes de proceder con el análisis exploratorio, es crucial garantizar que las variables del dataset tengan los tipos de datos correctos, acorde a la naturaleza de la información que contienen. Esta transformación es esencial para asegurar la precisión de las operaciones estadísticas, visualizaciones y análisis que se realizarán.

  • Variables Numéricas Enteras (integer): Las columnas que contienen datos discretos, como los identificadores de atención (ingreso), los códigos de grupos, subgrupos y centros de costo, así como la edad de los pacientes, se convierten a tipo entero. Estas variables permiten realizar cálculos y clasificaciones específicas en el análisis.

  • Variables Numéricas Continuas (numeric): La columna total, que representa el costo total de cada atención, se convierte a tipo numérico decimal. Esto es fundamental para realizar análisis de tendencia central, dispersión y comparaciones entre servicios.

  • Variables Categóricas (factor): Algunas columnas que representan categorías discretas, como tipo_documento, nombre_servicio, modalidad y diagnostico, se convierten en factores. Estas variables son útiles para análisis de frecuencia, tablas de contingencia y modelos estadísticos que usan categorías como predictores.

  • Variables de Texto (character): Las columnas con cadenas de texto no categorizadas, como codigo_paciente y direccion, se mantienen como caracteres. Estas variables son principalmente identificadores o descripciones.

  • Variables de Fecha (Date): Las columnas que contienen datos temporales, como fecha_naciento, fecha_ingreso y fecha_egreso, se convierten al formato de fecha, lo que permite realizar análisis temporales como el cálculo de la duración de hospitalización o el estudio de tendencias a lo largo del tiempo.

Código
# Convertir cada columna al tipo de dato adecuado
data <- data %>%
  mutate(
    # Variables tipo INTEGER
    ingreso = as.integer(ingreso),
    codigo_grupo = as.integer(codigo_grupo),
    codigo_subgrupo = as.integer(codigo_subgrupo),
    codigo_cencosto = as.integer(codigo_cencosto),
    edad = as.integer(edad),
    
    # Variables tipo FLOAT o NUMERIC
    total = as.numeric(total),
    
    # Variables tipo TEXT o CHARACTER
    tipo_documento = as.factor(tipo_documento),
    codigo_paciente = as.character(codigo_paciente),
    municipio = as.factor(municipio),
    barrio = as.character(barrio),
    direccion = as.character(direccion),
    codigo_planb_ingreso = as.character(codigo_planb_ingreso),
    nombre_planb_ingreso = as.character(nombre_planb_ingreso),
    codigo_cups_cum = as.character(codigo_cups_cum),
    nombre_servicio = as.factor(nombre_servicio),
    nombre_grupo = as.factor(nombre_grupo),
    nombre_subgrupo = as.factor(nombre_subgrupo),
    codigo_plantilla_cubrimiento = as.character(codigo_plantilla_cubrimiento),
    nombre_plantilla_cubrimiento = as.character(nombre_plantilla_cubrimiento),
    codigo_manual = as.character(codigo_manual),
    nombre_manual = as.factor(nombre_manual),
    codigo_medico = as.character(codigo_medico),
    especialidad_medico = as.factor(especialidad_medico),
    nombre_cencosto = as.factor(nombre_cencosto),
    codigo_cenatencion = as.character(codigo_cenatencion),
    nombre_cenatencion = as.factor(nombre_cenatencion),
    genero = as.factor(genero),
    modalidad = as.factor(modalidad),
    diagnostico = as.factor(diagnostico),
    ingresado_por = as.factor(ingresado_por),
    clase_ingreso = as.factor(clase_ingreso),
    
    # Variables tipo DATE (Asegurarse de que el formato sea correcto)
    fecha_naciento = as.Date(fecha_naciento, format = "%d/%m/%Y"),
    fecha_asignacion_cita = as.Date(fecha_asignacion_cita, format = "%Y-%m-%d"),
    fecha_ingreso = as.Date(fecha_ingreso, format = "%Y-%m-%d"),
    fecha_egreso = as.Date(fecha_egreso, format = "%Y-%m-%d")
  )
Código
str(data)
'data.frame':   14439675 obs. of  46 variables:
 $ ingreso                     : int  10793216 10813465 10769018 10768442 10769018 10807236 10813465 10768858 11662902 10769018 ...
 $ tipo_documento              : Factor w/ 14 levels "AS","CC","CD",..: 1 14 2 2 2 7 14 12 2 2 ...
 $ codigo_paciente             : chr  "VEN29557183" "1119392096" "1143238728" "1045699328" ...
 $ municipio                   : Factor w/ 273 levels "ABRIAQUI","ACHI",..: NA NA NA NA NA NA NA NA NA NA ...
 $ barrio                      : chr  NA NA NA NA ...
 $ direccion                   : chr  NA NA NA NA ...
 $ codigo_planb_ingreso        : chr  "30" "158" "201" "15" ...
 $ nombre_planb_ingreso        : chr  "SECRETARIA DE SALUD DE BARRANQUILLA (POBLACION VENEZOLANA)" "CAJA DE COMPENSACION FAMILIAR GUAJIRA" "COOSALUD (SUBSIDIADO) EVENTO" "MUTUAL SER EVENTO SUBSIDIADO" ...
 $ codigo_cups_cum             : chr  "906913" "902210" "902210" "V03AN01" ...
 $ nombre_servicio             : Factor w/ 3984 levels "=\"ANASTOMOSIS DE INTESTINO DELGADO AL ANO, CON FORMACION DE RESERVORIO (EN \"J\", \" H\" O \"S\")\"",..: 2815 1851 1852 2532 32 755 832 1852 2077 975 ...
 $ total                       : num  42200 27700 13769 68400 23594 ...
 $ codigo_grupo                : int  1 1 1 4 1 5 5 1 6 7 ...
 $ nombre_grupo                : Factor w/ 12 levels "AMBULANCIAS",..: 2 2 2 11 2 5 5 2 8 12 ...
 $ codigo_subgrupo             : int  1 1 1 7 1 28 2 1 3 3 ...
 $ nombre_subgrupo             : Factor w/ 75 levels "BANCO DE SANGRE",..: 50 50 50 56 50 37 74 50 48 48 ...
 $ codigo_plantilla_cubrimiento: chr  "A74" "A23" "A28" "A11" ...
 $ nombre_plantilla_cubrimiento: chr  "PLANTILLA SECRETARIA BQUILLA POBLACION MIGRANTES" "SIN CONTRATO SOAT PLENO" "COOSALUD EVENTO ISS 2001+22%" "MUTUAL SER EVENTO ISS 2001" ...
 $ codigo_manual               : chr  "A29" "A23" "A32" "A11" ...
 $ nombre_manual               : Factor w/ 75 levels "CLINICA GENERAL NORTE (MAGISTERIO ATLANTICO) MANUAL ISS+25%",..: 47 56 31 74 31 47 56 38 24 31 ...
 $ codigo_medico               : chr  "1143114157" "1143466631" "72346733" "1140884704" ...
 $ especialidad_medico         : Factor w/ 57 levels "ACTIVIDAD FISICO TERAPEUTICA",..: NA NA NA NA NA NA NA NA NA NA ...
 $ codigo_cencosto             : int  2 2 2 12 5 12 12 2 12 6 ...
 $ nombre_cencosto             : Factor w/ 13 levels "ADMINISTRATIVO",..: 13 13 13 5 7 5 5 13 5 8 ...
 $ codigo_cenatencion          : chr  "CMU" "CSB" "CBM" "CUD" ...
 $ nombre_cenatencion          : Factor w/ 34 levels "CAMINO BOSQUES DE MARIA (Diag. 64B # 9D-66)",..: 5 7 1 9 1 1 7 5 10 1 ...
 $ fecha_naciento              : Date, format: "1997-10-23" "2005-12-12" ...
 $ edad                        : int  25 16 25 21 25 8 16 1 81 25 ...
 $ genero                      : Factor w/ 2 levels "F","M": 1 1 1 2 1 1 1 1 1 1 ...
 $ modalidad                   : Factor w/ 2 levels "CAPITACION","PAGO_SERVICIOS": 2 2 2 2 2 2 2 1 2 2 ...
 $ diagnostico                 : Factor w/ 6726 levels "A000-COLERA DEBIDO A VIBRIO CHOLERAE O1, BIOTIPO CHOLERAE",..: 4503 3779 3779 4503 3779 4503 3779 4503 1945 3779 ...
 $ ingresado_por               : Factor w/ 9 levels "CIRUGIA_AMBULATORIA",..: 9 9 9 9 9 9 9 9 9 9 ...
 $ clase_ingreso               : Factor w/ 2 levels "AMBULATORIO",..: 2 2 2 2 2 1 2 1 2 2 ...
 $ fecha_asignacion_cita       : Date, format: NA NA ...
 $ fecha_ingreso               : Date, format: "2022-06-22" "2022-06-25" ...
 $ fecha_egreso                : Date, format: "2022-06-23" "2022-06-29" ...
 $ nomb_pas_cam                : chr  "CAMINO MURILLO" "CAMINO SIMON BOLIVAR" "CAMINO BOSQUE DE MARIA" "Camino Adelita de Char" ...
 $ direccion_pas_cam           : chr  "Av. Murillo #8h-79" "Calle 23 # 5-50" "Diag. 64B # 9D-66" "Calle 50 # 20-91" ...
 $ latitud_cen_aten            : num  10.9 10.9 11 11 11 ...
 $ long_cen_aten               : num  -74.8 -74.8 -74.8 -74.8 -74.8 ...
 $ latitud_paciente            : num  NA NA NA NA NA NA NA NA NA NA ...
 $ longitud_paciente           : num  NA NA NA NA NA NA NA NA NA NA ...
 $ check                       : chr  NA NA NA NA ...
 $ dias_hospitalizacion        : int  1 4 8 14 8 0 4 0 5 8 ...
 $ localidad                   : chr  "SURORIENTE" "SURORIENTE" "SUROCCIDENTE" "SUROCCIDENTE" ...
 $ distancia                   : num  NA NA NA NA NA NA NA NA NA NA ...
 $ tipo_cen_aten               : chr  "CAMINO" "CAMINO" "CAMINO" "HOSPITAL" ...

Análisis Demográfico

A continuación, se presenta un análisis descriptivo de las principales características demográficas de los pacientes atendidos en los centros de salud.

Distribución de la Edad de los Pacientes

El siguiente histograma ilustra la distribución de las edades de los pacientes únicos registrados en la base de datos:

Código
# Filtrar pacientes únicos según tipo_documento y codigo_paciente
data_unicos <- data %>%
  distinct(tipo_documento, codigo_paciente, .keep_all = TRUE)

# Gráfico de distribución de edades para pacientes únicos
ggplot(data_unicos, aes(x = edad)) +
  geom_histogram(aes(y = ..density..), binwidth = 5, fill = "#4A90E2", color = "white", alpha = 0.6) +
  geom_density(color = "#E94F37", size = 1) +
  labs(title = "Distribución de las Edades de los Pacientes Únicos", 
       x = "Edad", 
       y = "Densidad") +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.title = element_text(size = 14))

Código
# Resumen de edad
edad_summary <- data_unicos %>%
  summarise(
    Min = min(edad, na.rm = TRUE),
    Max = max(edad, na.rm = TRUE),
    Media = mean(edad, na.rm = TRUE),
    Mediana = median(edad, na.rm = TRUE),
    Desviación_Estándar = sd(edad, na.rm = TRUE)
  )

# Tabla resumen

kable(edad_summary, caption = "Resumen Descriptivo de las Edades de los Pacientes")
Resumen Descriptivo de las Edades de los Pacientes
Min Max Media Mediana Desviación_Estándar
0 114 30.30063 26 22.51254

La distribución de edades de los pacientes únicos atendidos en los centros de salud refleja una concentración significativa en el rango de 20 a 30 años, lo que sugiere que una gran parte de la población atendida son jóvenes adultos. La distribución presenta una ligera asimetría hacia la derecha, lo que indica la presencia de pacientes de mayor edad, con registros que alcanzan hasta los 114 años.

En el resumen descriptivo de la edad se destacan los siguientes puntos clave: La edad mínima registrada es de 0 años, lo que refleja la atención a recién nacidos. La edad máxima llega a 114 años, lo que evidencia la atención a personas de edad avanzada. La edad media de los pacientes es de 30.33 años, con una mediana de 26 años, lo que indica que la mitad de los pacientes tienen 25 años o menos. La desviación estándar es de 22.51 años, lo que indica una gran variabilidad en las edades de los pacientes.

Distribución de Género de los Pacientes

Código
# Resumen de género
genero_summary <- data_unicos %>%
  count(genero) %>%
  mutate(Porcentaje = n / sum(n) * 100)

# Tabla resumen de género
kable(genero_summary, caption = "Distribución de Género de los Pacientes")
Distribución de Género de los Pacientes
genero n Porcentaje
F 403971 57.56286
M 297820 42.43714

A continuación, se presenta un boxplot que visualiza la distribución de las edades según el género de los pacientes atendidos en los centros de salud.

Código
# Filtrar pacientes únicos según tipo_documento y codigo_paciente
data_unicos <- data %>%
  distinct(tipo_documento, codigo_paciente, .keep_all = TRUE)

# Crear el boxplot con diagrama de violín de edad por género
ggplot(data_unicos, aes(x = edad, y = genero, fill = genero)) +
  geom_violin(trim = FALSE, color = "black", alpha = 0.3) +  # Añadir el diagrama de violín
  geom_boxplot(width = 0.1, color = "black", alpha = 0.7) +  # Añadir el boxplot
  scale_fill_manual(values = c("#FF6F61", "#4A90E2"), labels = c("Hombres", "Mujeres")) +
  labs(title = "Distribución de Edad por Género con Boxplot y Diagrama de Violín",
       x = "Género",
       y = "Edad") +
  theme_minimal() +
  theme(plot.title = element_text(size = 14),
        axis.title = element_text(size = 14),
        legend.position = "none")

Distribución Desigual entre Géneros: Del total de pacientes atendidos, el 57.56% son mujeres (F), mientras que el 42.43% son hombres (M). Esto indica que las mujeres constituyen la mayoría de los pacientes en los centros de salud, superando a los hombres por aproximadamente un 11%.

Frecuencia Absoluta: En términos absolutos, 403,963 mujeres y 297,828 hombres recibieron atención en los centros de salud. Esta diferencia en la frecuencia puede estar influenciada por varios factores, como las condiciones de salud específicas de las mujeres, la cobertura médica de servicios de maternidad, o una mayor tendencia de las mujeres a buscar atención médica preventiva y asistencial.

Esto refleja una mayor tendencia de este grupo a buscar atención médica, posiblemente debido a factores relacionados con la salud materna o ginecológica. Estos datos son consistentes con estudios previos que muestran un acceso más frecuente a servicios de salud preventivos por parte de las mujeres en América Latina, lo cual también ha sido documentado en el contexto colombiano, donde se evidencia inequidad de género en el acceso a servicios de salud, con un mayor uso por parte de las mujeres Guarnizo-Herreño y Agudelo (2008).

Análisis Conjunto de Edad y Género

Después de analizar la distribución de los pacientes por edad y género de manera individual, es importante examinar cómo interactúan ambas variables. La pirámide poblacional de edad y género permite observar de manera integrada la estructura demográfica de los pacientes, mostrando cómo se distribuyen los distintos grupos de edad entre hombres y mujeres. Esta visualización es fundamental para identificar posibles patrones en la atención médica en función de la edad y el género, proporcionando información clave para el análisis de las necesidades de atención en salud.

Código
# Crear una variable que agrupe las edades en intervalos de 5 años
data_unicos <- data_unicos %>%
  mutate(grupo_edad = cut(edad, breaks = seq(0, 120, by = 5), right = FALSE))

# Crear una tabla de resumen de frecuencias por grupo de edad y género
tabla_piramide <- data_unicos %>%
  group_by(grupo_edad, genero) %>%
  summarise(n = n())

# Invertir la cantidad para el género masculino para la pirámide
tabla_piramide <- tabla_piramide %>%
  mutate(n = ifelse(genero == "M", -n, n))

# Crear la pirámide de población
ggplot(tabla_piramide, aes(x = grupo_edad, y = n, fill = genero)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  scale_y_continuous(labels = abs) +
  labs(title = "Pirámide Poblacional de Edad y Género",
       x = "Grupo de Edad",
       y = "Frecuencia") +
  scale_fill_manual(values = c("#FF6F61", "#4A90E2"), 
                    labels = c("Mujeres", "Hombres")) +
  theme_minimal() +
  theme(plot.title = element_text(size = 16),
        axis.title = element_text(size = 14))

La pirámide poblacional de edad y género muestra que la mayor parte de los pacientes atendidos en los centros de salud de Barranquilla son jóvenes y adultos jóvenes, con una notable concentración en los grupos de 0 a 35 años. Además, se observa una mayor proporción de mujeres atendidas en casi todos los grupos etarios, especialmente a partir de los 55 años, lo que sugiere una mayor demanda de servicios de salud en mujeres de edad avanzada. Estos patrones destacan la importancia de enfocar recursos en servicios pediátricos, preventivos y en la atención a enfermedades crónicas en pacientes mayores, particularmente mujeres.

Análisis de Pacientes por Barrio

A continuación, se presenta un análisis del número de pacientes únicos atendidos en los distintos barrios de Barranquilla, lo que permite identificar áreas con mayor demanda de servicios de salud y evaluar la distribución geográfica de la atención médica.

Código
# Filtrar pacientes únicos del municipio de Barranquilla
pacientes_barranquilla <- data %>%
  filter(municipio == "BARRANQUILLA") %>%
  distinct(tipo_documento, codigo_paciente, .keep_all = TRUE)

# Contar pacientes por barrio
conteo_barrios <- pacientes_barranquilla %>%
  count(barrio) %>%
  arrange(desc(n))

# Mostrar el top 20 barrios con más pacientes
top_20_barrios <- head(conteo_barrios, 20)

# Gráfico de barras del top 20 de barrios con más pacientes con mejoras
ggplot(top_20_barrios, aes(x = reorder(barrio, n), y = n, fill = reorder(barrio, n))) +
  geom_bar(stat = "identity", width = 0.8) +  # Ajuste del ancho de las barras
  coord_flip() +
  labs(title = "Barrios con Mayor Número de Pacientes",
       x = "Barrio",
       y = "Número de Pacientes") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 18, hjust = -0.3),  # Centramos el título
    axis.title.x = element_text(size = 14, face = "bold"),
    axis.title.y = element_text(size = 14, face = "bold"),
    axis.text.x = element_text(size = 12),
    axis.text.y = element_text(size = 10),
    legend.position = "none",  # Eliminamos la leyenda innecesaria
    panel.grid.major.y = element_blank()  # Eliminamos las líneas de la cuadrícula horizontal
  ) +
  geom_text(aes(label = n), hjust = -0.3, size = 3)  # Añadimos etiquetas de número de pacientes

El gráfico evidencia que los barrios con mayor número de pacientes únicos en Barranquilla, como El Bosque, El Recreo, y La Luz, corresponden en su mayoría a zonas populares con recursos económicos limitados. Esto sugiere que la demanda de atención médica es particularmente alta en estas áreas debido a la baja accesibilidad a recursos de salud privados y a la fuerte dependencia de los servicios de salud pública. Otros barrios como Rebolo, 7 de Abril, y Carrizal también se destacan entre los más atendidos, lo que refuerza la urgencia de asignar más recursos y mejorar la infraestructura médica en estas zonas vulnerables.

Análisis de Pacientes por Centro de Atención

A continuación, se presenta un análisis del número de pacientes únicos atendidos en cada centro de atención de la ciudad de Barranquilla, lo que permite identificar los centros con mayor demanda y evaluar la distribución de la carga asistencial entre los diferentes niveles de atención.

Código
# Filtrar pacientes únicos
pacientes_centros <- data %>%
  distinct(tipo_documento, codigo_paciente, .keep_all = TRUE)

# Contar pacientes por centro de atención
conteo_centros <- pacientes_centros %>%
  count(nomb_pas_cam) %>%
  arrange(desc(n))

# Mostrar el top 20 centros con más pacientes
top_20_centros <- head(conteo_centros, 20)

# Gráfico de barras mejorado del top 20 de centros de atención con más pacientes
ggplot(top_20_centros, aes(x = reorder(nomb_pas_cam, n), y = n, fill = reorder(nomb_pas_cam, n))) +
  geom_bar(stat = "identity", width = 0.8) +  # Ajusta el ancho de las barras
  coord_flip() +
  labs(title = "Centros de Atención con Mayor Número de Pacientes",
       x = "Centro de Atención",
       y = "Número de Pacientes") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 18, hjust = 1),  # Centramos el título
    axis.title.x = element_text(size = 14, face = "bold"),
    axis.title.y = element_text(size = 13, face = "bold"),
    axis.text.x = element_text(size = 12),
    axis.text.y = element_text(size = 10),
    legend.position = "none",  # Eliminamos la leyenda innecesaria
    panel.grid.major.y = element_blank()  # Eliminamos las líneas de la cuadrícula horizontal
  ) +
  geom_text(aes(label = n), hjust = -0.3, size = 3)  # Añadimos etiquetas de número de pacientes

El gráfico muestra que los centros de atención más grandes, como los CAMINOS y HOSPITALES, concentran la mayor cantidad de pacientes en Barranquilla, con los CAMINO SIMON BOLIVAR CAMINO BOSQUE DE MARIA, HOSPITAL NAZARETH liderando significativamente en número de atenciones. Estos centro se posicionan como alunos de principal punto de atención médica en la ciudad, lo que sugiere su papel crucial en la cobertura de servicios de salud. La distribución de pacientes entre los distintos centros refleja un equilibrio entre los niveles de complejidad de los servicios ofrecidos, donde los CAMINOS cubren atenciones más complejas, mientras que los PASOS son clave en la atención primaria y preventiva.

Análisis de Pacientes por EPS

A continuación, se presenta un análisis del número de pacientes únicos atendidos según las diferentes Entidades Promotoras de Salud (EPS), las cuales están representadas en la columna nombre_planilla_cubrimiento. Este análisis permite identificar cuáles EPS concentran la mayor cantidad de pacientes, proporcionando una visión clara de la distribución de la atención médica entre las distintas entidades de salud en Barranquilla.

Código
# Filtrar pacientes únicos
pacientes_eps <- data %>%
  distinct(tipo_documento, codigo_paciente, .keep_all = TRUE)

# Contar pacientes por EPS
conteo_eps <- pacientes_eps %>%
  count(nombre_planb_ingreso) %>%
  arrange(desc(n))

# Mostrar el top 20 EPS con más pacientes
top_20_eps <- head(conteo_eps, 20)

# Gráfico de barras del top 20 EPS con más pacientes con ajuste en el texto del eje Y
ggplot(top_20_eps, aes(x = reorder(nombre_planb_ingreso, n), y = n, fill = reorder(nombre_planb_ingreso, n))) +
  geom_bar(stat = "identity", width = 0.8) +  # Ajuste del ancho de las barras
  coord_flip() +
  labs(title = "EPS con Mayor Número de Pacientes",
       x = "EPS",
       y = "Número de Pacientes") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, hjust = 1),  # Centramos el título
    axis.title.x = element_text(size = 14, face = "bold"),
    axis.title.y = element_text(size = 14, face = "bold"),
    axis.text.x = element_text(size = 12),
    axis.text.y = element_text(size = 6),  # Reducimos el tamaño del texto en el eje Y
    legend.position = "none",  # Eliminamos la leyenda innecesaria
    panel.grid.major.y = element_blank()  # Eliminamos las líneas de la cuadrícula horizontal
  ) 

El gráfico destaca que las EPS Mutual SER y Coosalud concentran la mayor cantidad de pacientes en el sistema de salud subsidiado de Barranquilla, lo que indica una alta demanda de sus servicios. Este patrón sugiere que estas entidades podrían enfrentar mayores desafíos en términos de capacidad y eficiencia para atender a su población afiliada.

Análisis Georreferenciados de Centros de Atención

En esta sección, se presenta un análisis georreferenciado de los centros de atención en Barranquilla, con un enfoque específico en los PASOS y CAMINOS. Este tipo de análisis es crucial para comprender la distribución espacial de los servicios de salud y cómo esta afecta la accesibilidad de los ciudadanos a dichos servicios.

Obtención y Separación de Direcciones

Los datos originales contienen una columna denominada nombre_completo, que incluye tanto el nombre del centro de atención como su dirección. Un ejemplo de cómo se estructuran estos datos es el siguiente:

Ejemplo de nombre_completo: "CAMINO SIMON BOLIVAR (Calle 23 # 5-50)"

Para facilitar el análisis georreferenciado, se procedió a separar esta información en dos componentes principales:

  1. Nombre del Lugar (nombre_lugar): Incluye exclusivamente el nombre del centro de atención.
  2. Dirección (direccion): Contiene únicamente la dirección del centro, excluyendo el nombre del lugar.

Separación de los Datos

Para realizar esta separación de forma eficaz, se llevaron a cabo diversas operaciones de limpieza y transformación en PostgreSQL. A continuación, se detallan los pasos clave de este proceso:

  1. Creación de Columnas Separadas:

    • Se añadieron dos nuevas columnas a la tabla atn_primer_nvl para almacenar el nombre_lugar y la direccion por separado:
    ALTER TABLE atn_primer_nvl
    ADD COLUMN nombre_lugar text,
    ADD COLUMN direccion text;
  2. Extracción de Información:

    • Utilizando funciones de manipulación de texto en SQL, se separó la columna nombre_completo para extraer el nombre y la dirección:
    UPDATE atn_primer_nvl
    SET 
        nombre_lugar = TRIM(SPLIT_PART(nombre_completo, '(', 1)),
        direccion = TRIM(BTRIM(SPLIT_PART(nombre_completo, '(', 2), ')'))
    WHERE nombre_completo IS NOT NULL;

Preparación para el Análisis Georreferenciado

Una vez que las direcciones fueron separadas y almacenadas correctamente, el siguiente paso fue geocodificarlas, es decir, convertir las direcciones en coordenadas geográficas (latitud y longitud). Esto permite realizar análisis espaciales más detallados, tales como la evaluación de distancias entre los domicilios de los pacientes y los centros de atención, y estudiar la accesibilidad y cobertura de los servicios de salud en Barranquilla.

Extracción y Preparación de Direcciones

Se procedió a extraer las combinaciones únicas de nombres y direcciones de los centros de atención para evitar duplicaciones y optimizar el proceso de geocodificación.

Vista previa de las direcciones
nomb_pas_cam direccion_pas_cam
CAMINO MURILLO Av. Murillo #8h-79
CAMINO SIMON BOLIVAR Calle 23 # 5-50
CAMINO BOSQUE DE MARIA Diag. 64B # 9D-66
Camino Adelita de Char Calle 50 # 20-91
HOSPITAL GENERAL DE BARRANQUILLA Calle 33 # 33-09
Camino Suroccidente El Pueblito Cra 12 # 110-91

Geocodificación de las Direcciones de los centros de atención

Las direcciones de los centros de atención se geocodifican utilizando el servicio de OpenStreetMap (OSM), el cual devuelve las coordenadas geográficas (latitud y longitud) asociadas a cada ubicación. Dado el volumen considerable de datos, este proceso se ejecuta en paralelo para maximizar la eficiencia

Las coordenadas geográficas obtenidas a través de la geocodificación se utilizan para crear un mapa interactivo en leaflet, que permite visualizar la ubicación de los centros de atención. Este mapa es útil para comprender cómo se distribuyen espacialmente los servicios de salud en la ciudad y cómo influye esta distribución en la accesibilidad de los habitantes.

El mapa interactivo muestra la ubicación geográfica de los centros de atención en las localidades de Barranquilla, específicamente concentrados en las zonas de Suroccidente, Suroriente, y Metropolitana. La distribución de los puntos sugiere una buena cobertura en términos de cercanía entre los centros, lo que debería facilitar el acceso a servicios de salud para la población en estas áreas.

En particular, se observa una mayor densidad de centros de atención en la zona central y este de la ciudad, lo que puede reflejar una planificación enfocada en áreas de mayor demanda. No obstante, algunas áreas periféricas, como las situadas al oeste, presentan menos centros, lo que podría implicar mayores distancias para los pacientes en esas zonas.

Geocodificación de Direcciones de Pacientes y Actualización en la Base de Datos

En esta fase, se procede con la geocodificación de las direcciones de los pacientes, extrayendo exclusivamente aquellos pacientes que aún no han sido procesados. La geocodificación se realiza de manera paralela para maximizar la eficiencia y reducir el tiempo de procesamiento, dada la gran cantidad de datos involucrados.

Este proceso permite obtener las coordenadas geográficas (latitud y longitud) de los domicilios de los pacientes, lo que es fundamental para llevar a cabo análisis espaciales, como el cálculo de distancias entre los pacientes y los centros de atención. Posteriormente, los resultados de la geocodificación son actualizados directamente en la base de datos, garantizando la integración de la información en el sistema.

Vista previa de las coordenadas de pacientes
codigo_paciente latitud_paciente longitud_paciente
7742685 10.93862 -74.82841
00017021993 10.94634 -74.82635
042489830 10.97238 -74.77132
08001D0915 10.99386 -74.79261
08001NN3448 10.96669 -74.82977

visualización de las ubicaciones de los pacientes

El mapa de calor muestra áreas con mayor concentración de pacientes en colores más intensos, y áreas con menor concentración en colores más fríos (por ejemplo, azul o verde). Esto te permitirá identificar visualmente las zonas con mayor densidad de pacientes.

Se observa una alta concentración de pacientes en la zona central de Barranquilla, lo que indica que la mayoría reside en áreas cercanas a los centros de atención. Sin embargo, también hay puntos más dispersos hacia las afueras de la ciudad, lo que sugiere que algunos pacientes deben recorrer mayores distancias para acceder a los servicios de salud.

Análisis de la demanda de servicios

Incialmente se muestran como fue la distribuccion de las atenciones segun los centros de atencion.

A continuación, se presenta la evolución mensual del número de atenciones realizadas por la red de salud desde enero de 2022. El análisis se basa en los registros únicos de la variable ingreso, lo que permite observar cómo ha cambiado la demanda de servicios de salud a lo largo del tiempo.

Código
# Filtrar registros únicos de "ingreso" y convertir la fecha de ingreso al formato Date
data_unicos <- data %>%
  distinct(ingreso, .keep_all = TRUE) %>%
  mutate(fecha_ingreso = as.Date(fecha_ingreso)) %>%
  filter(fecha_ingreso >= as.Date("2022-01-02"))

# Agrupar por mes y contar el número de atenciones desde enero de 2022
serie_tiempo_atenciones <- data_unicos %>%
  mutate(mes_ingreso = floor_date(fecha_ingreso, "week")) %>%
  group_by(mes_ingreso) %>%
  summarise(atenciones = n()) %>%
  ungroup()

# Crear gráfico dinámico con Plotly
plot_ly(serie_tiempo_atenciones, x = ~mes_ingreso, y = ~atenciones, type = 'scatter', mode = 'lines+markers',
        line = list(color = '#4A90E2', width = 2),
        marker = list(size = 6)) %>%
  layout(title = list(text = "Número de Atenciones por Semanas", x = 0.5, y = 0.95),
         xaxis = list(title = "Mes de Ingreso", tickformat = "%b %Y", tickangle = -45),
         yaxis = list(title = "Número de Atenciones"),
         margin = list(l = 50, r = 50, t = 80, b = 100),
         hovermode = "closest",
         showlegend = FALSE)

Se observa una fluctuación constante en la cantidad de atenciones, con picos que coinciden con periodos de alta demanda, seguidos de caídas pronunciadas. Estos patrones pueden estar influenciados por factores estacionales, como brotes de enfermedades, periodos de vacaciones, o fluctuaciones en la disponibilidad de recursos.

Número de Atenciones por Modalidad

El gráfico presenta la evolución del número de atenciones en la red de salud desde enero de 2022, clasificadas según las distintas modalidades de atención. Este análisis permite visualizar cómo ha cambiado la demanda de cada modalidad a lo largo del tiempo, facilitando la identificación de tendencias y patrones.

Código
# Filtrar registros únicos de "ingreso", convertir la fecha de ingreso al formato Date, y filtrar desde enero de 2022
data_unicos <- data %>%
  distinct(ingreso, modalidad, .keep_all = TRUE) %>%
  mutate(fecha_ingreso = as.Date(fecha_ingreso)) %>%
  filter(fecha_ingreso >= as.Date("2022-01-02"))

# Agrupar por mes y modalidad, y contar el número de atenciones
serie_tiempo_modalidad <- data_unicos %>%
  mutate(mes_ingreso = floor_date(fecha_ingreso, "week")) %>%
  group_by(mes_ingreso, modalidad) %>%
  summarise(atenciones = n()) %>%
  ungroup()

# Crear gráfico dinámico con Plotly clasificado por modalidad
plot_ly(serie_tiempo_modalidad, x = ~mes_ingreso, y = ~atenciones, color = ~modalidad, 
        type = 'scatter', mode = 'lines+markers',
        line = list(width = 2),
        marker = list(size = 6)) %>%
  layout(title = list(text = "Número de Atenciones por Modalidad", x = 0.5, y = 0.95),
         xaxis = list(title = "Mes de Ingreso", tickformat = "%b %Y", tickangle = -45),
         yaxis = list(title = "Número de Atenciones"),
         legend = list(title = list(text = "Modalidad de Atención"), orientation = 'h', x = 0.5, y = -0.3, xanchor = 'center'),
         margin = list(l = 50, r = 50, t = 80, b = 100),
         hovermode = "closest")

Claramente, las atenciones bajo la modalidad de Capitación predominan a lo largo del tiempo, mientras que Pago por Servicios mantiene una cantidad significativamente menor y estable. Esto sugiere que la mayoría de los pacientes atendidos pertenecen a esquemas de salud con un modelo de capitación, en el cual la atención está prefinanciada para garantizar la cobertura de una población fija. La estabilidad en la modalidad de Pago por Servicios también podría indicar que esta opción es menos utilizada o está destinada a casos específicos dentro del sistema de salud en Barranquilla

Número de Atenciones por Subgrupo de atenciones

Se desea evidenciar la evolución del número de atenciones realizadas por la red de salud desde enero de 2022, clasificadas según los cinco subgrupos más frecuentes. Este análisis permite identificar cómo ha variado la demanda de los diferentes tipos de servicios de salud a lo largo del tiempo, destacando aquellos subgrupos que concentran el mayor volumen de atenciones.

Código
# Filtrar registros únicos de "ingreso", convertir la fecha de ingreso al formato Date, y filtrar desde enero de 2022
data_unicos <- data %>%
  distinct(ingreso, .keep_all = TRUE) %>%
  mutate(fecha_ingreso = as.Date(fecha_ingreso)) %>%
  filter(fecha_ingreso >= as.Date("2022-01-02"))

# Identificar los 7 subgrupos más frecuentes
top_7_subgrupos <- data_unicos %>%
  count(nombre_subgrupo) %>%
  top_n(5, wt = n) %>%
  pull(nombre_subgrupo)

# Filtrar el dataset para incluir solo los 7 subgrupos más frecuentes
data_top_7 <- data_unicos %>%
  filter(nombre_subgrupo %in% top_7_subgrupos)

# Agrupar por mes y subgrupo, y contar el número de atenciones
serie_tiempo_subgrupos <- data_top_7 %>%
  mutate(mes_ingreso = floor_date(fecha_ingreso, "week")) %>%
  group_by(mes_ingreso, nombre_subgrupo) %>%
  summarise(atenciones = n()) %>%
  ungroup()

# Paleta de colores personalizada según los que hemos trabajado
colores_profesionales <- c( '#ff7f0e','#1f77b4', '#2ca02c', '#d62728', '#9467bd')

# Crear gráfico dinámico con Plotly clasificado por subgrupo
plot_ly(serie_tiempo_subgrupos, x = ~mes_ingreso, y = ~atenciones, color = ~nombre_subgrupo, 
        type = 'scatter', mode = 'lines+markers',
        colors = colores_profesionales,  
        line = list(width = 2),
        marker = list(size = 6)) %>%
  layout(title = list(text = "Número de Atenciones semanales por Subgrupo", 
                      x = 0.5, y = 0.95),
         xaxis = list(title = "Mes de Ingreso", tickformat = "%b %Y", tickangle = -45),
         yaxis = list(title = "Número de Atenciones"),
         legend = list(title = list(text = "Subgrupo de Servicio"), orientation = 'h', x = 0.5, y = -0.3, xanchor = 'center'),
         margin = list(l = 50, r = 50, t = 80, b = 100),
         hovermode = "closest")

En el gráfico, se observa cómo han evolucionado las atenciones de salud en Barranquilla desde enero de 2022 hasta julio de 2024, clasificadas por los subgrupos de servicios más frecuentes: Consulta Externa, Laboratorio, Urgencias, CE Odontología, y Promoción y Prevención.

Consulta Externa y Laboratorio presentan las cifras más altas y una variabilidad constante, con un comportamiento cíclico. Esto podría reflejar la alta demanda de estos servicios, debido a la naturaleza rutinaria y preventiva de las consultas médicas generales y exámenes de laboratorio. Urgencias tiene una tendencia más estable y con menor variación en comparación con otros subgrupos, lo que sugiere que los casos de urgencias mantienen una frecuencia constante, sin picos dramáticos. Promoción y Prevención, aunque es el servicio menos frecuente,este subgrupo está relacionado con campañas preventivas que pueden no tener tanta recurrencia semanal.

Analisis de Diagnósticos

Este análisis presenta los 20 diagnósticos más frecuentes en función del número total de ingresos únicos registrados. El objetivo es identificar cuáles son las condiciones de salud más comunes entre los pacientes atendidos, lo que permite destacar las principales áreas de intervención en la red de salud

Código
# Filtrar registros únicos de "ingreso" y eliminar NAs en la columna de diagnóstico
data_unicos <- data %>%
  distinct(ingreso, .keep_all = TRUE) %>%
  filter(!is.na(diagnostico))  

# Contar el número de ingresos por diagnóstico
top_diagnosticos <- data_unicos %>%
  count(diagnostico) %>%
  arrange(desc(n)) %>%
  top_n(20, wt = n)

# Graficar el top 20 diagnósticos con mejor formato
ggplot(top_diagnosticos, aes(x = reorder(diagnostico, n), y = n, fill = reorder(diagnostico, n))) +
  geom_bar(stat = "identity", width = 0.8) +  
  coord_flip() +
  labs(title = "Diagnósticos de Mayor Frecuencia",
       x = "Diagnóstico",
       y = "Número de Ingresos") +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, hjust = 8),  
    axis.title.x = element_text(size = 14, face = "bold"),
    axis.title.y = element_text(size = 14, face = "bold"),
    axis.text.x = element_text(size = 12),
    axis.text.y = element_text(size = 5),  
    legend.position = "none",  
    panel.grid.major.y = element_blank()  
  ) +
  geom_text(aes(label = n), hjust = 0, size = 3)  

Los principales diagnósticos reflejan un enfoque en servicios de salud preventivos y generales, como los exámenes médicos generales (Z000), los controles de salud de rutina para niños (Z001) y los exámenes odontológicos (Z012), que ocupan los primeros lugares con más de 200,000 registros cada uno.

Estos resultados indican que gran parte de los ingresos está relacionada con servicios preventivos y de chequeo general, lo que podría sugerir una política efectiva de prevención en salud. Además, los diagnósticos relacionados con problemas odontológicos, como caries dentales (K021) y gingivitis (K050 y K051), también aparecen entre los más frecuentes, lo que subraya la importancia de la atención dental en la población.

Otros diagnósticos importantes incluyen la hipertensión esencial primaria (I10X), que es un problema de salud pública común y requiere control continuo, y los exámenes especiales para la detección de tumores en el cuello uterino (Z124), que son cruciales para la prevención de enfermedades graves como el cáncer.

Análisis de las Distancias

En este subcapítulo, se realiza un análisis de las distancias entre las direcciones de los pacientes y los centros de atención. El objetivo principal es evaluar la accesibilidad geográfica de los servicios de salud y medir cuántos kilómetros recorrió cada paciente para recibir atención médica en la ciudad de Barranquilla.

Cálculo de las Distancias

Para calcular las distancias entre los pacientes y los centros de atención, se utilizan las coordenadas geográficas (latitud y longitud) almacenadas en la base de datos. La distancia que se calcula es la distancia Manhattan (también conocida como distancia L1), la cual se basa en movimientos a lo largo de ejes ortogonales. Este método es particularmente apropiado para entornos urbanos, donde las calles siguen una disposición en cuadrícula.

La fórmula para calcular la distancia Manhattan en coordenadas geográficas es:

\[ \text{Distancia Manhattan} = | \Delta \text{Latitud} | + | \Delta \text{Longitud} | \]

Donde:

\[ \Delta \text{Latitud} = \text{Latitud}_{\text{Centro}} - \text{Latitud}_{\text{Paciente}} \] \[\quad \Delta \text{Longitud} = \text{Longitud}_{\text{Centro}} - \text{Longitud}_{\text{Paciente}} \]

Para convertir esta distancia en kilómetros, se utiliza un factor de conversión que considera que un grado de latitud o longitud equivale aproximadamente a 111.32 kilómetros.

Consulta SQL para Calcular las Distancias

Antes de calcular las distancias, se asegura que tanto los pacientes como los centros de atención cuenten con coordenadas geográficas válidas en la base de datos. Luego, se calcula la distancia Manhattan entre cada paciente y su respectivo centro de atención. A continuación se muestra un ejemplo de cómo realizar este cálculo mediante una consulta SQL en PostgreSQL:

UPDATE atn_primer_nvl
SET distancia = (ABS(latitud_cen_aten - latitud_paciente) * 111.32 + 
                 ABS(long_cen_aten - longitud_paciente) * 111.32)
WHERE latitud_paciente IS NOT NULL
  AND longitud_paciente IS NOT NULL
  AND latitud_cen_aten IS NOT NULL
  AND long_cen_aten IS NOT NULL;

Esta consulta selecciona los pacientes y centros de atención con coordenadas válidas y calcula la distancia Manhattan entre ambos puntos, aplicando el factor de conversión de 111.32 kilómetros por grado de latitud o longitud.

Visualización de las Distancias

Para interpretar mejor el comportamiento de las distancias, se puede visualizar la distribución de las distancias recorridas por los pacientes hasta los centros de atención utilizando un histograma y un boxplot. Estas visualizaciones permiten identificar patrones en las distancias recorridas, así como detectar posibles anomalías o variaciones significativas entre diferentes áreas de la ciudad.

La mayoría de los pacientes recorren distancias relativamente cortas, entre 0 y 5 kilómetros, lo que indica que los centros de atención están generalmente ubicados cerca de las zonas donde residen los pacientes. A medida que aumenta la distancia, la frecuencia disminuye considerablemente, lo que sugiere que menos pacientes tienen que desplazarse largas distancias (más de 10 km) para acceder a los servicios de salud. Esto refleja una buena accesibilidad geográfica en términos generales, con una cobertura más concentrada en áreas cercanas a los centros de atención.

Analisis de las Distancias

Además de la visualización en el histograma, es fundamental obtener un resumen estadístico de las distancias recorridas por los pacientes.

Resumen Estadístico de las Distancias Recorridas por los Pacientes
Min Max Media Mediana Desviación_Estándar
0 18.96824 4.228244 2.972455 3.984605

El análisis de distancias revela que los pacientes recorren, en promedio, 4.2 km para llegar a los centros de atención, con una mediana de 2.97 km, lo que indica que la mitad de los pacientes se desplazan menos de 3 km. Sin embargo, existen casos extremos donde las distancias alcanzan hasta 18.97 km, lo que podría sugerir barreras de accesibilidad para ciertos grupos de población. La desviación estándar de 3.98 km refleja una considerable variabilidad en las distancias recorridas, lo que resalta la importancia de evaluar la distribución de los centros de salud para mejorar la equidad en el acceso.

Análisis de las Distancias por Centro de Atención

Este análisis agrupa las distancias recorridas por los pacientes según los diferentes centros de atención. Utilizando un boxplot, podemos identificar la variabilidad en las distancias entre los pacientes y los centros, lo que permite visualizar si algunos centros concentran pacientes que recorren distancias más largas. Esta información es clave para evaluar la distribución geográfica de los servicios y determinar si existen desigualdades en el acceso a la atención médica.

En la mayoría de los centros, las distancias medianas son inferiores a 5 km, lo que indica que los pacientes generalmente residen relativamente cerca de los centros de atención. Sin embargo, se observan centros como el CAMINO SIMON BOLIVAR, CAMINO BOSQUE DE MARÍA, y el CAMINO CIUDADELA 20 DE JULIO, donde hay una mayor dispersión en las distancias recorridas, lo que sugiere que algunos pacientes deben desplazarse distancias superiores a 10 km.

Además, los outliers en varios centros sugieren que, aunque la mayoría de los pacientes viven cerca de su centro de atención asignado, hay casos puntuales de pacientes que deben recorrer distancias más largas, lo cual podría ser un indicativo de la necesidad de una redistribución más equitativa de los recursos de salud o la identificación de áreas con menos accesibilidad geográfica a los servicios de salud.

Análisis de las Distancias por localidad

Resumen de las Distancias Recorridas por los Pacientes por Localidad
localidad Min Max Media Mediana Desviación_Estándar
METROPOLITANA 0.0544756 18.84024 4.259361 2.826536 3.946332
SUROCCIDENTE 0.0000000 16.11229 3.874738 3.028593 3.286763
SURORIENTE 0.0000000 18.96824 4.675777 2.955339 4.730780

La localidad Suroriente tiene la distancia media más alta (4.68 km) y la mayor dispersión, con una desviación estándar de 4.73 km, lo que sugiere que algunos pacientes en esta área deben recorrer distancias considerables para acceder a los centros de atención. En contraste, la localidad Suroccidente presenta la distancia media más baja (3.87 km) y una menor dispersión (desviación estándar de 3.29 km). La localidad Metropolitana tiene una media intermedia (4.26 km) y una dispersión moderada (3.95 km). Estos resultados indican que, si bien la mayoría de los pacientes no recorren grandes distancias, hay desigualdades geográficas que podrían afectar el acceso a los servicios de salud, particularmente en Suroriente.

Análisis de las Distancias por tipo de centro de atención

Resumen de las Distancias por Centro de Atención
tipo_cen_aten Min Max Media Mediana Desviación_Estándar
CAMINO 0.0000000 18.96824 4.232466 2.853641 3.947511
HOSPITAL 0.0616275 17.09560 4.563044 3.785615 3.516401
PASO 0.0000000 18.95803 4.099969 2.598741 4.169490

Los hospitales presentan la mayor distancia media (4.56 km) y una dispersión relativamente baja (desviación estándar de 3.51 km), lo que sugiere que, aunque las distancias tienden a ser mayores, estas son más uniformes. Los C.A.M.I.N.O.S. tienen una distancia media de 4.23 km, con una dispersión más alta (3.95 km), lo que indica variabilidad en las distancias recorridas por los pacientes. Los P.A.S.O.S. tienen la distancia media más baja (4.10 km), pero también presentan la mayor dispersión (desviación estándar de 4.17 km)

El mapa generado muestra las áreas de Barranquilla donde los pacientes deben recorrer mayores distancias para acceder a los servicios de salud. Las zonas con mayor intensidad en el mapa de calor indican las regiones donde el acceso a los centros de atención podría estar más limitado, sugiriendo posibles áreas para mejorar la distribución de los centros de salud.

En General, El análisis de las distancias recorridas por los pacientes muestra que la mayoría no necesita desplazarse más de 5 km para recibir atención médica, lo que sugiere una buena cobertura geográfica en la ciudad. Sin embargo, existe una variabilidad significativa en las distancias, con algunos pacientes recorriendo hasta 18 km para recibir atención, Este hallazgo podría indicar barreras de acceso geográfico en áreas periféricas.

Análisis de los tiempos de Hospitalización

En este apartado, se realiza un análisis detallado de la duración de las hospitalizaciones de los pacientes con el objetivo de identificar patrones y tendencias en los tiempos de estancia hospitalaria.

Tiempos de Hospitalización
codigo_paciente nombre_cenatencion tipo_cen_aten localidad edad diagnostico dias_hospitalizacion
1001799217 CAMINO UNIVERSITARIO ADELITA DE CHAR (Calle 50 # 20-91) HOSPITAL SUROCCIDENTE 23 O820-PARTO POR CESAREA ELECTIVA 3
32722056 CAMINO UNIVERSITARIO ADELITA DE CHAR (Calle 50 # 20-91) HOSPITAL SUROCCIDENTE 61 Z988-OTROS ESTADOS POSTQUIRURGICOS ESPECIFICADOS 2
1047061674 CAMINO BOSQUES DE MARIA (Diag. 64B # 9D-66) CAMINO SUROCCIDENTE 5 R560-CONVULSIONES FEBRILES 1
32740875 CAMINO LA MANGA (Cra 31D # 78-55) CAMINO SUROCCIDENTE 57 N390-INFECCION DE VIAS URINARIAS, SITIO NO ESPECIFICADO 3
72190476 CAMINO LA MANGA (Cra 31D # 78-55) CAMINO SUROCCIDENTE 52 R072-DOLOR PRECORDIAL 2
1046710163 CAMINO SALUD METROPOLITANA (Calle 78 Cra 2 Sur) CAMINO METROPOLITANA 12 R31X-HEMATURIA, NO ESPECIFICADA 5

Podemos observar que la mayoría de las hospitalizaciones son de corta duración, concentrándose principalmente en 1 día. A medida que aumentan los días de hospitalización, la frecuencia disminuye rápidamente, lo que indica que los casos de hospitalización prolongada (más de 10 días) son mucho menos comunes.

Resumen de Días de Hospitalización
Min Max Media Desviación_Estándar Q1 Mediana Q3
1 30 2.930943 3.475934 1 1 4

En promedio, los pacientes permanecen 2.93 días en el hospital, con una desviación estándar de 3.48 días, lo que indica una variabilidad considerable en los tiempos de estancia. El primer cuartil (Q1) es 1 día, lo que significa que el 25% de los pacientes permanecen un día o menos. La mediana, también de 1 día, sugiere que el 50% de los pacientes permanecen un día o menos en el hospital. Sin embargo, el tercer cuartil (Q3) de 4 días indica que el 25% de los pacientes tienen hospitalizaciones más largas, con estancias que alcanzan hasta 30 días como máximo.

Analisis de Hospitalización por edad

El siguiente análisis muestra la distribución de los días de hospitalización según diferentes grupos de edad.

Se observa que los pacientes más jóvenes, específicamente en los grupos de edad de 0 a 40 años, tienden a tener estancias hospitalarias más cortas, con medianas bajas y una menor dispersión de los datos. A partir de los 50 años, se incrementa la variabilidad en la duración de las hospitalizaciones, lo que es indicativo de condiciones médicas más complejas que requieren un mayor tiempo de atención.

En particular, los grupos de pacientes de 70 a 100 años presentan medianas de hospitalización más elevadas y una mayor dispersión en los días de estancia, lo que refuerza la necesidad de atención prolongada para estos grupos etarios debido a problemas de salud relacionados con la edad.

Analisis de Hospitalización por tipo de centro de atencion y localidad

Días de Hospitalización por tipos de centro de atención
Min Max Media Desviación_Estándar Q1 Mediana Q3
1 30 2.930943 3.475934 1 1 4

En los CAMINOS, la mediana de los días de hospitalización es de 1 día, con una dispersión relativamente baja, lo que sugiere que los pacientes atendidos en estos centros requieren hospitalizaciones breves. Los HOSPITALES, por otro lado, presentan una mediana de 2 días y una mayor dispersión en los días de hospitalización, lo que refleja la mayor complejidad de los casos tratados en estos centros. Finalmente, los PASOS muestran una media más alta de días de hospitalización (3.94 días) y una mayor desviación estándar (6.40), lo que indica que, aunque algunos pacientes requieren estancias más largas, la mayoría tiene hospitalizaciones cortas.

Analisis de Hospitalización por localidad

Días de Hospitalización por localidad
localidad Min Max Media Desviación_Estándar Q1 Mediana Q3
METROPOLITANA 1 30 3.243639 3.065917 1 2 5
SUROCCIDENTE 1 30 3.186248 3.886867 1 2 4
SURORIENTE 1 30 2.502549 2.892364 1 1 3

los pacientes de la localidad Metropolitana tienen una media de 3.24 días de hospitalización, con una mediana de 2 días. Los pacientes de la localidad Suroccidente presentan un comportamiento similar, con una media de 3.18 días y una mediana de 2 días. Sin embargo, los pacientes de la localidad Suroriente tienen una media de días de hospitalización más baja, de 2.50 días, y una mediana de 1 día, lo que sugiere que los periodos de hospitalización en esta localidad tienden a ser más cortos. Las desviaciones estándar más altas en Metropolitana y Suroccidente indican una mayor variabilidad en los tiempos de hospitalización en estas localidades, mientras que en Suroriente, la variabilidad es menor.

Analisis de Hospitalización por diagnosticos

Se observa que, en la mayoría de los diagnósticos, los días de hospitalización tienden a ser cortos, con la mayoría de los pacientes hospitalizados por menos de 5 días. Diagnósticos como R104 (OTROS DOLORES ABDOMINALES Y LOS NO ESPECIFICADOS) y R509 (Fiebre, no especificada) presentan una mayor frecuencia de hospitalizaciones que se extienden hasta los 10 días, pero de manera general, la tendencia es que los pacientes pasan entre 1 y 5 días en el hospital.

Referencias

Guarnizo-Herreño, Carol C, y Carlos Agudelo. 2008. «Equidad de género en el acceso a los servicios de salud en Colombia». Revista de salud pública 10: 44-57.