DESCRIPCIÓN DE LA BASE

La base de datos fue tomada de el repositorio de Dataset’s de Hugging Face https://huggingface.co/datasets/imodels/diabetes-readmission Esta a su vez tiene un link directo a la página de Machine Learning Repository el cual contiene la ficha tecnica completa de la base.

Este dataset recopila información de diez años (1999-2008) de atención clínica en 130 hospitales y redes integradas de servicios de salud en los Estados Unidos. Contiene un total de 101,766 registros correspondientes a pacientes diagnosticados con diabetes que tuvieron estancias hospitalarias de hasta 14 días. Cada fila representa un encuentro hospitalario y contiene información detallada sobre pruebas de laboratorio, medicamentos administrados y diversos aspectos del diagnóstico y tratamiento.

CARACTERÍSTICAS PRINCIPALES

  • Número de Registros: 101,766.
  • Número de Variables: 151.
  • Tipo de Variables: Categóricas e Integer.
  • Tareas Asociadas: Clasificación y Clustering.
  • Ámbito Temático: Salud y Medicina.
  • Instancias Representadas: Registros de pacientes hospitalizados diagnosticados con diabetes.

CRITERIOS DE INCLUSIÓN

Para formar parte de esta base de datos, cada registro debe cumplir con los siguientes criterios:

  1. Encuentros hospitalarios: El registro corresponde a una admisión hospitalaria.
  2. Diagnóstico de diabetes: Se incluye cualquier diagnóstico relacionado con diabetes en el sistema.
  3. Duración de la estancia: Entre 1 y 14 días.
  4. Pruebas de laboratorio: Se realizaron análisis clínicos durante la estancia.
  5. Administración de medicamentos: Incluye la administración de medicamentos durante el encuentro.

CONTEXTO

El manejo hospitalario de pacientes con diabetes es un desafío importante debido a las múltiples complicaciones asociadas con la enfermedad. Este dataset busca abordar una problemática específica: la readmisión temprana dentro de los 30 días posteriores al alta hospitalaria.

La diabetes es una enfermedad crónica que requiere una atención continua y adecuada. A pesar de la evidencia sólida que respalda el impacto positivo de las intervenciones preventivas y terapéuticas, existe una brecha significativa entre las prácticas ideales y la atención real proporcionada en los hospitales. Este problema puede atribuirse, en parte, a una gestión inconsistente de la diabetes en los entornos hospitalarios, particularmente en el control glucémico.

El impacto de una atención inadecuada va más allá de los resultados clínicos inmediatos. Los pacientes enfrentan un mayor riesgo de complicaciones, mientras que los hospitales deben absorber costos adicionales derivados de readmisiones evitables.

ANTECEDENTES

El análisis de esta base de datos se publicó en el artículo titulado “Impact of HbA1c Measurement on Hospital Readmission Rates: Analysis of 70,000 Clinical Database Patient Records”, escrito por Beata Strack y colaboradores, y publicado en la revista BioMed Research International en 2014.

El objetivo principal del análisis fue investigar los factores asociados con la readmisión temprana de pacientes hospitalizados con diabetes, con un enfoque particular en la medición del HbA1c, un marcador clave para el control glucémico. Este análisis se basa en más de 50 variables que describen las características de los pacientes, los tratamientos realizados y los resultados hospitalarios.

Algunos de los atributos más destacados del dataset incluyen:

No se recomiendan divisiones específicas de datos, por lo que pueden emplearse estrategias estándar como la división en conjuntos de entrenamiento, validación y prueba según el modelo analítico.

Este reporte busca proporcionar una visión integral del dataset, estableciendo las bases para explorar y modelar los factores determinantes de las readmisiones hospitalarias de pacientes con diabetes.

ANÁLISIS UNIVARIADO

Al explorar la base de datos que tenemos, podemos observar que esta cuenta con 101,766 registros y 47 variables. A continuación, se presenta un resumen de las variables presentes en el dataset:

## Rows: 101,763
## Columns: 151
## $ time_in_hospital                                    <dbl> 4, 2, 4, 5, 1, 7, …
## $ num_lab_procedures                                  <dbl> 66, 48, 21, 38, 6,…
## $ num_procedures                                      <dbl> 3, 0, 3, 0, 0, 2, …
## $ num_medications                                     <dbl> 18, 15, 23, 5, 6, …
## $ number_outpatient                                   <dbl> 0, 4, 1, 0, 0, 0, …
## $ number_emergency                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ number_inpatient                                    <dbl> 1, 0, 2, 0, 0, 0, …
## $ number_diagnoses                                    <dbl> 9, 7, 7, 2, 6, 2, …
## $ change                                              <dbl> 1, 0, 0, 1, 0, 1, …
## $ diabetesMed                                         <dbl> 1, 0, 1, 1, 1, 1, …
## $ `race:AfricanAmerican`                              <dbl> 0, 0, 0, 0, 0, 0, …
## $ `race:Asian`                                        <dbl> 0, 0, 0, 0, 0, 0, …
## $ `race:Caucasian`                                    <dbl> 1, 1, 1, 1, 0, 1, …
## $ `race:Hispanic`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `race:Other`                                        <dbl> 0, 0, 0, 0, 1, 0, …
## $ `gender:Female`                                     <dbl> 1, 1, 1, 1, 0, 0, …
## $ `gender:Male`                                       <dbl> 0, 0, 0, 0, 1, 1, …
## $ `age:70+`                                           <dbl> 1, 0, 0, 0, 0, 1, …
## $ `age:[0-10)`                                        <dbl> 0, 0, 0, 0, 0, 0, …
## $ `age:[10-20)`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `age:[20-50)`                                       <dbl> 0, 1, 0, 1, 0, 0, …
## $ `age:[50-70)`                                       <dbl> 0, 0, 1, 0, 1, 0, …
## $ `admission_type_id:Elective`                        <dbl> 0, 0, 1, 0, 0, 1, …
## $ `admission_type_id:Emergency`                       <dbl> 1, 0, 0, 1, 1, 0, …
## $ `admission_type_id:New Born`                        <dbl> 0, 0, 0, 0, 0, 0, …
## $ `admission_type_id:Trauma Center`                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `discharge_disposition_id:Discharged to Home`       <dbl> 1, 1, 1, 1, 1, 1, …
## $ `discharge_disposition_id:Other`                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `admission_source_id:Emergency`                     <dbl> 1, 1, 0, 0, 1, 0, …
## $ `admission_source_id:Other`                         <dbl> 0, 0, 0, 0, 0, 0, …
## $ `admission_source_id:Referral`                      <dbl> 0, 0, 1, 1, 0, 1, …
## $ `admission_source_id:Transfer`                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Cardiology`                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Emergency/Trauma`                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Family/GeneralPractice`          <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Gastroenterology`                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Hematology/Oncology`             <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:InternalMedicine`                <dbl> 0, 0, 0, 0, 1, 0, …
## $ `medical_specialty:Nephrology`                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:ObstetricsandGynecology`         <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Orthopedics`                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Other`                           <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Psychiatry`                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Pulmonology`                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Radiology`                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Surgery-Cardiovascular/Thoracic` <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Surgery-General`                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `medical_specialty:Urology`                         <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Circulatory`                                <dbl> 0, 0, 0, 0, 1, 0, …
## $ `diag_1:Diabetes`                                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Digestive`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Genitourinary`                              <dbl> 0, 0, 0, 1, 0, 0, …
## $ `diag_1:Infectious`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Injury`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Mental`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Musculoskeletal`                            <dbl> 0, 0, 1, 0, 0, 0, …
## $ `diag_1:Neoplasms`                                  <dbl> 0, 0, 0, 0, 0, 1, …
## $ `diag_1:Non-diabetes endocrine/metabolic`           <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_1:Other`                                      <dbl> 0, 1, 0, 0, 0, 0, …
## $ `diag_1:Respiratory`                                <dbl> 1, 0, 0, 0, 0, 0, …
## $ `diag_1:Skin`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Circulatory`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Diabetes`                                   <dbl> 0, 0, 0, 1, 1, 1, …
## $ `diag_2:Digestive`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Genitourinary`                              <dbl> 0, 1, 0, 0, 0, 0, …
## $ `diag_2:Infectious`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Injury`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Mental`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Musculoskeletal`                            <dbl> 0, 0, 1, 0, 0, 0, …
## $ `diag_2:Neoplasms`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Non-diabetes endocrine/metabolic`           <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Other`                                      <dbl> 1, 0, 0, 0, 0, 0, …
## $ `diag_2:Respiratory`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_2:Skin`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Circulatory`                                <dbl> 0, 0, 0, 0, 1, 0, …
## $ `diag_3:Diabetes`                                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Digestive`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Genitourinary`                              <dbl> 0, 1, 0, 0, 0, 0, …
## $ `diag_3:Infectious`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Injury`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Mental`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Musculoskeletal`                            <dbl> 0, 0, 1, 0, 0, 0, …
## $ `diag_3:Neoplasms`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Non-diabetes endocrine/metabolic`           <dbl> 0, 0, 0, 0, 0, 0, …
## $ `diag_3:Other`                                      <dbl> 0, 0, 0, 1, 0, 1, …
## $ `diag_3:Respiratory`                                <dbl> 1, 0, 0, 0, 0, 0, …
## $ `diag_3:Skin`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `metformin:Down`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `metformin:No`                                      <dbl> 0, 1, 0, 0, 1, 0, …
## $ `metformin:Steady`                                  <dbl> 1, 0, 1, 1, 0, 1, …
## $ `metformin:Up`                                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `repaglinide:Down`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `repaglinide:No`                                    <dbl> 1, 1, 1, 1, 1, 1, …
## $ `repaglinide:Steady`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `repaglinide:Up`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `nateglinide:Down`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `nateglinide:No`                                    <dbl> 1, 1, 1, 1, 1, 1, …
## $ `nateglinide:Steady`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `nateglinide:Up`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `chlorpropamide:Down`                               <dbl> 0, 0, 0, 0, 0, 0, …
## $ `chlorpropamide:No`                                 <dbl> 1, 1, 1, 1, 1, 1, …
## $ `chlorpropamide:Steady`                             <dbl> 0, 0, 0, 0, 0, 0, …
## $ `chlorpropamide:Up`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glimepiride:Down`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glimepiride:No`                                    <dbl> 1, 1, 1, 1, 1, 1, …
## $ `glimepiride:Steady`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glimepiride:Up`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glipizide:Down`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glipizide:No`                                      <dbl> 1, 1, 1, 1, 1, 1, …
## $ `glipizide:Steady`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glipizide:Up`                                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide:Down`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide:No`                                      <dbl> 1, 1, 1, 1, 1, 1, …
## $ `glyburide:Steady`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide:Up`                                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `pioglitazone:Down`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `pioglitazone:No`                                   <dbl> 1, 1, 1, 0, 1, 1, …
## $ `pioglitazone:Steady`                               <dbl> 0, 0, 0, 1, 0, 0, …
## $ `pioglitazone:Up`                                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `rosiglitazone:Down`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `rosiglitazone:No`                                  <dbl> 1, 1, 1, 1, 1, 0, …
## $ `rosiglitazone:Steady`                              <dbl> 0, 0, 0, 0, 0, 1, …
## $ `rosiglitazone:Up`                                  <dbl> 0, 0, 0, 0, 0, 0, …
## $ `acarbose:Down`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `acarbose:No`                                       <dbl> 1, 1, 1, 1, 1, 1, …
## $ `acarbose:Steady`                                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `acarbose:Up`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `miglitol:Down`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `miglitol:No`                                       <dbl> 1, 1, 1, 1, 1, 1, …
## $ `miglitol:Steady`                                   <dbl> 0, 0, 0, 0, 0, 0, …
## $ `miglitol:Up`                                       <dbl> 0, 0, 0, 0, 0, 0, …
## $ `tolazamide:No`                                     <dbl> 1, 1, 1, 1, 1, 1, …
## $ `tolazamide:Steady`                                 <dbl> 0, 0, 0, 0, 0, 0, …
## $ `tolazamide:Up`                                     <dbl> 0, 0, 0, 0, 0, 0, …
## $ `insulin:Down`                                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `insulin:No`                                        <dbl> 0, 1, 1, 1, 0, 1, …
## $ `insulin:Steady`                                    <dbl> 1, 0, 0, 0, 1, 0, …
## $ `insulin:Up`                                        <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide-metformin:Down`                          <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide-metformin:No`                            <dbl> 1, 1, 1, 1, 1, 1, …
## $ `glyburide-metformin:Steady`                        <dbl> 0, 0, 0, 0, 0, 0, …
## $ `glyburide-metformin:Up`                            <dbl> 0, 0, 0, 0, 0, 0, …
## $ `A1Cresult:>7`                                      <dbl> 0, 0, 0, 0, 0, 0, …
## $ `A1Cresult:>8`                                      <dbl> 0, 0, 0, 1, 0, 0, …
## $ `A1Cresult:None`                                    <dbl> 1, 1, 1, 0, 1, 1, …
## $ `A1Cresult:Norm`                                    <dbl> 0, 0, 0, 0, 0, 0, …
## $ `max_glu_serum:>200`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `max_glu_serum:>300`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ `max_glu_serum:None`                                <dbl> 1, 1, 1, 1, 1, 1, …
## $ `max_glu_serum:Norm`                                <dbl> 0, 0, 0, 0, 0, 0, …
## $ readmitted                                          <dbl> 1, 0, 0, 0, 1, 0, …

Podemos observar como hay algunas variables que son de tipo factor y otras de tipo integer, luego de hacer una revisión minuciosa de la base de datos, se decidió explorar la distribucion de las variables y a la par unir aquellas que se refieren a lo mismo, para tener una mejor visualización de los datos y poder hacer un analisis mas detallado de los mismos.

VARIABLES CATEGÓRICAS

A continuacion, se propuso la union de las varibles que hacen referencia a lo mismo, para tener una mejor visualizacion de los datos y poder hacer un analisis mas detallado de los mismos, se presenta un análisis de cada variable categórica presente en el dataset, incluyendo su distribución de frecuencias y niveles asociados:

DIABETESMED

La variable “diabetesMed” indica si los pacientes reciben medicación para la diabetes.

Proporciones de las variables en DiabetesMed
Variable Proporción
diabetesMed 0.7700343

Una proporción significativa (77.00%) de los pacientes está bajo tratamiento, lo que refleja que la mayoría de los casos en la muestra requieren manejo farmacológico para controlar la diabetes.

T_Proportion_diabetesMed %>%
  mutate(Sobrante = 1 - Proporcion) %>%
  ggplot(aes(x = reorder(Variable, Proporcion))) +
  geom_bar(aes(y = 1), stat = "identity", fill = "grey90") +  # Barra gris del 100%
  geom_bar(aes(y = Proporcion), stat = "identity", fill = "steelblue") +  # Barra azul de la proporción
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE PACIENTES QUE RECIBEN MEDICAMENTOS PARA LA DIABETES", 
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

CHANGE

La variable “change” indica si hubo modificaciones en la medicación de los pacientes durante su atención.

Proporciones de las variables en Change
Variable Proporción
change 0.4619459

Una proporción considerable (46.19%) de los pacientes experimentó cambios en su tratamiento, lo que sugiere ajustes frecuentes en el manejo médico para optimizar el control de la diabetes u otras condiciones relacionadas.

T_Prop_change %>%
  mutate(Sobrante = 1 - Proporcion) %>%
  ggplot(aes(x = reorder(Variable, Proporcion))) +
  geom_bar(aes(y = 1), stat = "identity", fill = "grey90") +  # Barra gris del 100%
  geom_bar(aes(y = Proporcion), stat = "identity", fill = "steelblue") +  # Barra azul de la proporción
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN CHANGE", 
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

RAZA

La variable “raza” muestra la distribución racial de los individuos en el conjunto de datos, lo cual es relevante para entender la diversidad y las posibles disparidades en ciertos contextos, como la salud o la educación.

Proporciones de las variables en Raza
Variable Proporción
3 race:Caucasian 0.7478062
1 race:AfricanAmerican 0.1887720
5 race:Other 0.0371058
4 race:Hispanic 0.0200171
2 race:Asian 0.0062989

La categoría caucásica representa la mayoría (74.78%), seguida por la afroamericana (18.88%), mientras que las razas “otros”, hispano y asiático tienen una proporción mucho menor, lo que sugiere una posible falta de representación o sesgo en la muestra hacia estos grupos, todo esto se puede ver en la siguiente grafica

T_Prop_Raza %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN RAZA", 
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GENERO

La variable “género” refleja la distribución entre hombres y mujeres en el conjunto de datos, lo cual es importante para identificar posibles diferencias de género en análisis relacionados con salud, oportunidades o comportamientos.

Proporciones de las variables en Genero
Variable Proporción
gender:Female 0.5376021
gender:Male 0.4623979

La categoría femenina representa el 53.76%, mientras que los hombres constituyen el 46.24%, lo que sugiere una distribución casi equitativa entre ambos géneros en la muestra.

T_Prop_Genero %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = c("steelblue", "red")) +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN GENERO", 
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

EDAD

La variable “edad” muestra la distribución de las personas en diferentes rangos de edad, lo cual es crucial para analizar cómo varían ciertos factores según la edad.

Proporciones de las variables en Edad
Variable Proporción
5 age:70+ 0.4525810
4 age:[50-70) 0.3904956
3 age:[20-50) 0.1485510
2 age:[10-20) 0.0067903
1 age:[0-10) 0.0015821

La mayoría de los individuos se encuentran en el grupo de 70+ años (45.26%) y en el grupo de 50-70 años (39.05%). Los grupos más jóvenes, como el de 20-50 años, representan una proporción más pequeña (14.85%), mientras que los rangos de 10-20 años y 0-10 años tienen representaciones mínimas, lo que podría indicar que los datos están más enfocados en adultos mayores.

T_Prop_Edad %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN EDAD", 
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

TIPO DE ADMISION

La variable “tipo de admisión” indica las razones por las cuales los pacientes ingresan al sistema de salud, lo que es importante para entender la urgencia y la naturaleza de los casos.

Proporciones de las variables en Tipo de Admision
Variable Proporción
2 admission_type_id:Emergency 0.7121252
1 admission_type_id:Elective 0.1854112
4 admission_type_id:Trauma Center 0.0002064
3 admission_type_id:New Born 0.0000983

La mayoría de las admisiones son por emergencia, representando el 71.21%, seguido por las admisiones electivas (18.54%). Las admisiones por trauma y por recién nacidos son mínimas, con proporciones de 0.02% y 0.01% respectivamente, lo que sugiere que los casos más urgentes son los más comunes en esta muestra.

GRF CON

T_Prop_Admision %>% 
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN TIPO DE ADMISION",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GRF SIN

T_Prop_Admision_Trans %>%
  ggplot(aes(x = reorder(Admision, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN TIPO DE ADMISIÓN",
          subtitle = "PERFILES DE PACIENTES CON DIABETES (TRANSFORMADO)") +
  labs(x = "Tipo de Admisión", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

DISCHARGE

La variable “disposición de alta” refleja el destino de los pacientes al ser dados de alta, lo cual es relevante para entender el seguimiento y los cuidados posteriores.

Proporciones de las variables en Discharge
Variable Proporción
discharge_disposition_id:Discharged to Home 0.7237306
discharge_disposition_id:Other 0.2302802

La mayoría de los pacientes (72.37%) son dados de alta para regresar a casa, mientras que una proporción significativa (23.03%) es clasificada bajo “otros”, lo que podría indicar una variedad de destinos, como instituciones de cuidado o traslados a otros centros médicos.

T_Prop_Discharge %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN DISCHARGE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

ESPECIALIDAD MÉDICA

La variable “especialidad médica” describe las áreas de atención médica más frecuentes entre los pacientes, lo que ayuda a comprender la distribución de las consultas y tratamientos.

Proporciones de las variables en Especialidad
Variable Proporción
6 medical_specialty:InternalMedicine 0.1438145
2 medical_specialty:Emergency/Trauma 0.0743394
3 medical_specialty:Family/GeneralPractice 0.0731111
1 medical_specialty:Cardiology 0.0525830
15 medical_specialty:Surgery-General 0.0308953
10 medical_specialty:Other 0.0297161
9 medical_specialty:Orthopedics 0.0258738
7 medical_specialty:Nephrology 0.0158506
13 medical_specialty:Radiology 0.0117233
12 medical_specialty:Pulmonology 0.0085591
14 medical_specialty:Surgery-Cardiovascular/Thoracic 0.0084412
11 medical_specialty:Psychiatry 0.0083920
8 medical_specialty:ObstetricsandGynecology 0.0073504
16 medical_specialty:Urology 0.0067313
5 medical_specialty:Hematology/Oncology 0.0062596
4 medical_specialty:Gastroenterology 0.0055423

La mayor proporción corresponde a Medicina Interna (14.38%), seguida por otras especialidades como Emergencias/Trauma (7.43%) y Medicina Familiar/General (7.31%). Especialidades como Cardiología (5.26%) y Cirugía General (3.09%) tienen una representación menor, mientras que un conjunto diverso de especialidades menores (Radiología, Psiquiatría, Obstetricia, entre otras) representan fracciones aún más pequeñas, lo que refleja una muestra con predominancia de algunas áreas médicas y una distribución más dispersa entre las demás.

GRF CON

T_Prop_Especialidad %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.05, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN ESPECIALIDAD",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GRF SIN

T_Prop_Especialidad_Trans %>%
  ggplot(aes(x = reorder(Especialidad, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.05, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN ESPECIALIDAD",
          subtitle = "PERFILES DE PACIENTES CON DIABETES (TRANSFORMADO)") +
  labs(x = "Especialidad", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

DIAGNOSTICO 1

La variable “diag_1” representa los diagnósticos principales de los pacientes, lo cual es importante para entender la prevalencia de ciertas condiciones en la muestra.

Proporciones de las variables en Diag_1
Variable Proporción
1 diag_1:Circulatory 0.2990871
12 diag_1:Respiratory 0.1417313
3 diag_1:Digestive 0.0931085
2 diag_1:Diabetes 0.0860529
11 diag_1:Other 0.0772579
6 diag_1:Injury 0.0685121
4 diag_1:Genitourinary 0.0502835
8 diag_1:Musculoskeletal 0.0487112
9 diag_1:Neoplasms 0.0337352
5 diag_1:Infectious 0.0272005
10 diag_1:Non-diabetes endocrine/metabolic 0.0264045
13 diag_1:Skin 0.0256871
7 diag_1:Mental 0.0222281

La mayoría de los casos están relacionados con trastornos circulatorios (29.91%), seguidos de enfermedades respiratorias (14.17%) y digestivas (9.31%). Otras condiciones como diabetes (8.61%), lesiones (6.85%) y trastornos genitourinarios (5.03%) también tienen una representación significativa. Las condiciones más raras incluyen trastornos musculoesqueléticos, neoplasias, infecciones, y trastornos metabólicos, con proporciones menores, lo que sugiere una mayor prevalencia de enfermedades crónicas y comunes en la población.

GRF CON

T_Prop_diag1 %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCION DELAS VARIABLES EN DIAG_1",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GRF SIN

T_Prop_diag %>%
  ggplot(aes(x = reorder(Diagnostico1, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN DIAG_1",
          subtitle = "PERFILES DE PACIENTES CON DIABETES (TRANSFORMADO)") +
  labs(x = "Diagnóstico 1", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

DIAGNOSTICO 2

La variable “diag_2” refleja el segundo diagnóstico más común entre los pacientes, lo cual proporciona una visión adicional sobre las comorbilidades.

Proporciones de las variables en Diag_2
Variable Proporción
1 diag_2:Circulatory 0.3132769
2 diag_2:Diabetes 0.1257235
12 diag_2:Respiratory 0.1070625
11 diag_2:Other 0.1025913
4 diag_2:Genitourinary 0.0823089
10 diag_2:Non-diabetes endocrine/metabolic 0.0807071
3 diag_2:Digestive 0.0409776
13 diag_2:Skin 0.0360642
7 diag_2:Mental 0.0261097
9 diag_2:Neoplasms 0.0250287
6 diag_2:Injury 0.0238397
5 diag_2:Infectious 0.0189755
8 diag_2:Musculoskeletal 0.0173344

Al igual que en “diag_1”, los trastornos circulatorios son predominantes (31.33%), seguidos por diabetes (12.57%) y problemas respiratorios (10.71%). Otras condiciones, como enfermedades genitourinarias (8.23%), endocrinas/metabólicas no relacionadas con la diabetes (8.07%), y trastornos digestivos (4.10%), también tienen representaciones importantes. Las condiciones como enfermedades de la piel, trastornos mentales y lesiones son menos comunes, pero siguen siendo relevantes dentro de la población estudiada.

GRF CON

T_Prop_diag2 %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCION DELAS VARIABLES EN DIAG_2",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GRF SIN

T_Prop_diag %>%
  ggplot(aes(x = reorder(Diagnostico2, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN DIAG_2",
          subtitle = "PERFILES DE PACIENTES CON DIABETES (TRANSFORMADO)") +
  labs(x = "Diagnóstico 2", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

DIAGNOSTICO 3

La variable “diag_3” representa el tercer diagnóstico más frecuente en los pacientes, brindando más contexto sobre las comorbilidades.

Proporciones de las variables en Diag_3
Variable Proporción
1 diag_3:Circulatory 0.2977998
2 diag_3:Diabetes 0.1685976
11 diag_3:Other 0.1362873
10 diag_3:Non-diabetes endocrine/metabolic 0.0898558
12 diag_3:Respiratory 0.0723053
4 diag_3:Genitourinary 0.0656427
3 diag_3:Digestive 0.0386191
7 diag_3:Mental 0.0308167
13 diag_3:Skin 0.0256183
6 diag_3:Injury 0.0191130
8 diag_3:Musculoskeletal 0.0188182
5 diag_3:Infectious 0.0182876
9 diag_3:Neoplasms 0.0182385

Al igual que en los diagnósticos anteriores, los trastornos circulatorios son predominantes (29.78%), seguidos por diabetes (16.86%) y diagnósticos “otros” (13.63%). Condiciones como enfermedades endocrinas/metabólicas no relacionadas con la diabetes (8.99%) y respiratorias (7.23%) también son comunes. Otros diagnósticos incluyen problemas genitourinarios (6.56%), digestivos (3.86%), y mentales (3.08%), mientras que trastornos como enfermedades de la piel, lesiones y neoplasias tienen una menor representación.

GRF CON

T_Prop_diag3 %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCION DELAS VARIABLES EN DIAG_3",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GRF SIN

T_Prop_diag %>%
  ggplot(aes(x = reorder(Diagnostico3, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  geom_hline(yintercept = 0.1, linetype = "dashed", color = "red", size = 0.7) + # Línea horizontal
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN DIAG_3",
          subtitle = "PERFILES DE PACIENTES CON DIABETES (TRANSFORMADO)") +
  labs(x = "Diagnóstico 3", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

MEDICAMENTOS

La variable “metformin” indica el cambio en el tratamiento con metformina, un medicamento comúnmente usado para la diabetes.

Proporciones de las variables en Metformin
Variable Proporción
2 metformin:No 0.8035927
3 metformin:Steady 0.1802718
4 metformin:Up 0.0104851
1 metformin:Down 0.0056504

La mayoría de los pacientes no reciben metformina (80.36%), mientras que una proporción considerable tiene un tratamiento constante con metformina (18.03%). Solo un pequeño porcentaje de los pacientes están en un régimen de aumento (1.05%) o disminución (0.57%) de la dosis de metformina, lo que sugiere que la mayoría de los casos son controlados con una dosis estable o no requieren este tratamiento.

T_Prop_metmorfin %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN METFORMIN",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") + 
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

REPAGLINIDE

La variable “repaglinide” indica el ajuste en el tratamiento con repaglinida, un medicamento utilizado para controlar la diabetes.

Proporciones de las variables en Repaglinide
Variable Proporción
2 repaglinide:No 0.9848766
3 repaglinide:Steady 0.0136002
4 repaglinide:Up 0.0010809
1 repaglinide:Down 0.0004422

La gran mayoría de los pacientes no reciben repaglinida (98.49%), mientras que una pequeña proporción mantiene una dosis estable (1.36%). Los ajustes en el tratamiento, como el aumento (0.11%) o la disminución (0.04%) de la dosis, son mínimos, lo que sugiere que repaglinida es utilizado de manera muy limitada en la muestra, con la mayoría de los pacientes sin necesidad de este medicamento.

T_Prop_repaglinide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN REPAGLINIDE",
          subtitle= "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

NATEGLINIDE

La variable “nateglinide” refleja el uso y ajuste en el tratamiento con nateglinida, otro medicamento utilizado para la diabetes.

Proporciones de las variables en Nateglinide
Variable Proporción
2 nateglinide:No 0.9930918
3 nateglinide:Steady 0.0065643
4 nateglinide:Up 0.0002358
1 nateglinide:Down 0.0001081

La gran mayoría de los pacientes no reciben nateglinida (99.31%), con una pequeña proporción manteniendo una dosis estable (0.66%). Los ajustes en la dosis, como el aumento (0.02%) o la disminución (0.01%), son mínimos, lo que indica que este medicamento tiene una utilización muy baja en la muestra, con la mayoría de los pacientes sin necesidad de tratamiento con nateglinida.

T_Prop_nateglinide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN NATEGLINIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

CLORPROPAMIDA

La variable “chlorpropamide” muestra el uso y ajuste en el tratamiento con clorpropamida, un medicamento para la diabetes.

Proporciones de las variables en Chlorpropamide
Variable Proporción
2 chlorpropamide:No 0.9991549
3 chlorpropamide:Steady 0.0007763
4 chlorpropamide:Up 0.0000590
1 chlorpropamide:Down 0.0000098

La mayoría de los pacientes no reciben clorpropamida (99.92%), mientras que una pequeña fracción mantiene una dosis estable (0.08%). Los ajustes en la dosis, como el aumento (0.01%) o la disminución (menos del 0.01%), son prácticamente inexistentes, lo que indica que este medicamento es utilizado en una proporción extremadamente baja dentro de la muestra, con la mayoría de los pacientes no requiriendo tratamiento con clorpropamida.

T_Prop_chlorpropamide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN CHLORPROPAMIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GLIMEPIRIDE

La variable “glimepiride” refleja el uso y ajuste en el tratamiento con glimepirida, un medicamento utilizado para controlar la diabetes.

Proporciones de las variables en Glimepiride
Variable Proporción
2 glipizide:No 0.8753476
3 glipizide:Steady 0.1115828
4 glipizide:Up 0.0075666
1 glipizide:Down 0.0055030

La mayoría de los pacientes no reciben glimepirida (87.53%), mientras que una proporción significativa mantiene una dosis constante (11.16%). Solo una pequeña fracción de pacientes aumenta (0.76%) o disminuye (0.55%) la dosis de glimepirida, lo que sugiere que la mayoría de los casos son controlados con una dosis estable de este medicamento o no requieren su uso.

T_Prop_glipizide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN GLIPIZIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GLYBURIDE

La variable “glyburide” indica el uso y ajuste en el tratamiento con gliburida, un medicamento utilizado para la diabetes.

Proporciones de las variables en Gliplizide
Variable Proporción
2 glyburide:No 0.8953451
3 glyburide:Steady 0.0911333
4 glyburide:Up 0.0079793
1 glyburide:Down 0.0055423

La mayoría de los pacientes no reciben glyburide (89.53%), mientras que una proporción menor mantiene una dosis constante (9.11%). Los ajustes en la dosis, como el aumento (0.80%) o la disminución (0.55%), son mínimos, lo que sugiere que la mayoría de los pacientes no requieren este medicamento o lo mantienen a una dosis estable.

T_Prop_glyburide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN GLYBURIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

GLIMEPRIDE

La variable “glimepiride” refleja el uso y ajuste en el tratamiento con glimepirida, un medicamento para la diabetes.

Proporciones de las variables en Glimepiride
Variable Proporción
2 glimepiride:No 0.9489893
3 glimepiride:Steady 0.0458909
4 glimepiride:Up 0.0032133
1 glimepiride:Down 0.0019064

La gran mayoría de los pacientes no reciben glimepirida (94.90%), mientras que una pequeña proporción mantiene una dosis estable (4.59%). Los ajustes en la dosis, como el aumento (0.32%) o la disminución (0.19%), son mínimos, lo que sugiere que este medicamento se utiliza en una proporción reducida de pacientes y, en su mayoría, con una dosis constante.

T_Prop_glimepiride %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN GLIMEPIRIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

PIOGLITAZONE

La variable “pioglitazone” muestra el uso y ajuste en el tratamiento con pioglitazona, un medicamento utilizado para la diabetes.

Proporciones de las variables en Pioglitazone
Variable Proporción
2 pioglitazone:No 0.9279994
3 pioglitazone:Steady 0.0685416
4 pioglitazone:Up 0.0022995
1 pioglitazone:Down 0.0011596

La mayoría de los pacientes no reciben pioglitazona (92.80%), mientras que una pequeña proporción mantiene una dosis constante (6.85%). Los ajustes en la dosis, como el aumento (0.23%) o la disminución (0.12%), son mínimos, lo que indica que este medicamento es utilizado por una minoría de pacientes y principalmente a dosis estables.

T_Prop_pioglitazone %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN PIOGLITAZONE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

ROSIGLITAZONE

La variable “rosiglitazone” refleja el uso y ajuste en el tratamiento con rosiglitazona, un medicamento utilizado para tratar la diabetes.

Proporciones de las variables en Rosiglitazone
Variable Proporción
2 rosiglitazone:No 0.9374625
3 rosiglitazone:Steady 0.0599334
4 rosiglitazone:Up 0.0017492
1 rosiglitazone:Down 0.0008549

La mayoría de los pacientes no reciben rosiglitazona (93.75%), mientras que una pequeña fracción mantiene una dosis constante (5.99%). Los ajustes en la dosis, como el aumento (0.17%) o la disminución (0.09%), son mínimos, lo que sugiere que rosiglitazona es utilizado en una pequeña proporción de pacientes, y en su mayoría, el tratamiento se mantiene estable.

T_Prop_rosiglitazone %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN ROSIGLITAZONE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

ACARBOSE

La variable “acarbose” refleja el uso y ajuste en el tratamiento con acarbosa, un medicamento utilizado para controlar la diabetes.

Proporciones de las variables en Acarbose
Variable Proporción
2 acarbose:No 0.9969734
3 acarbose:Steady 0.0028989
4 acarbose:Up 0.0000983
1 acarbose:Down 0.0000295

La gran mayoría de los pacientes no reciben acarbosa (99.70%), mientras que una pequeña fracción mantiene una dosis constante (0.29%). Los ajustes en la dosis, como el aumento (0.01%) o la disminución (menos del 0.01%), son prácticamente inexistentes, lo que indica que acarbosa es utilizado en una proporción extremadamente baja de pacientes y, cuando se usa, generalmente a dosis estables.

T_Prop_acarbose %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN ACARBOSE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

MIGLITOL

La variable “miglitol” refleja el uso y ajuste en el tratamiento con miglitol, un medicamento utilizado para controlar la diabetes.

Proporciones de las variables en Miglitol
Variable Proporción
2 miglitol:No 0.9996266
3 miglitol:Steady 0.0003046
1 miglitol:Down 0.0000491
4 miglitol:Up 0.0000197

La gran mayoría de los pacientes no reciben miglitol (99.96%), con una pequeña proporción manteniendo una dosis constante (0.03%). Los ajustes en la dosis, como el aumento (0.002%) o la disminución (menos del 0.01%), son prácticamente inexistentes, lo que indica que miglitol es utilizado en una proporción extremadamente baja de pacientes y, cuando se utiliza, generalmente a dosis estables.

T_Prop_miglitol %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN MIGLITOL",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

data <- data %>%
  mutate(Miglitol = case_when(
    `miglitol:Down` == 1 ~ "Disminuido",
    `miglitol:No` == 1 ~ "No",
    `miglitol:Steady` == 1 ~ "Estable",
    `miglitol:Up` == 1 ~ "Aumentado",
    TRUE ~ "Desconocido"
  ))

data <- data %>%
  select(-`miglitol:Down`, -`miglitol:No`, -`miglitol:Steady`, -`miglitol:Up`)

TOLAZAMIDA

La variable “tolazamide” muestra el uso y ajuste en el tratamiento con tolazamida, un medicamento utilizado para tratar la diabetes.

Proporciones de las variables en Tolazamide
Variable Proporción
tolazamide:No 0.9996168
tolazamide:Steady 0.0003734
tolazamide:Up 0.0000098

La gran mayoría de los pacientes no reciben tolazamida (99.96%), mientras que una pequeña fracción mantiene una dosis constante (0.04%). No se observan aumentos en la dosis, lo que sugiere que este medicamento se utiliza en una proporción mínima de pacientes y generalmente a dosis estables.

T_Prop_tolazamide %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN TOLAZAMIDE",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

INSULINA

La variable “insulin” indica el uso y ajuste en el tratamiento con insulina.

Proporciones de las variables en Insulin
Variable Proporción
2 insulin:No 0.4655916
3 insulin:Steady 0.3031455
1 insulin:Down 0.1200633
4 insulin:Up 0.1111996

La distribución muestra que una proporción considerable de pacientes no recibe insulina (46.56%), mientras que una parte significativa tiene una dosis estable (30.31%). Además, un 12.01% de los pacientes experimenta una disminución en la dosis, y un 11.12% tiene un aumento en la dosis de insulina. Esto sugiere que, aunque una proporción significativa no utiliza insulina, aquellos que la usan tienen ajustes en sus dosis, lo que refleja variabilidad en el tratamiento.

T_Prop_insulin %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN INSULIN",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

METFORMINA

La variable “glyburide-metformin” refleja el uso y ajuste en el tratamiento con una combinación de glyburide y metformina, medicamentos utilizados para controlar la diabetes.

Proporciones de las variables en Glyburide-Metformin
Variable Proporción
2 glyburide-metformin:No 0.9930623
3 glyburide-metformin:Steady 0.0068001
4 glyburide-metformin:Up 0.0000786
1 glyburide-metformin:Down 0.0000590

La gran mayoría de los pacientes no reciben este tratamiento combinado (99.31%), mientras que una pequeña fracción mantiene una dosis constante (0.68%). Los ajustes en la dosis, como el aumento (0.01%) o la disminución (menos del 0.01%), son prácticamente inexistentes, lo que indica que este tratamiento combinado es utilizado en una proporción mínima de pacientes y generalmente a dosis estables.

T_Prop_glyburide_metformin %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN GLYBURIDE-METFORMIN",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

A1CRESULT

La variable “A1Cresult” refleja los resultados de las pruebas de hemoglobina A1c, que indican el control a largo plazo de la glucosa en sangre en pacientes con diabetes.

Proporciones de las variables en A1Cresult
Variable Proporción
2 A1Cresult:None 0.8327683
4 A1Cresult:>8 0.0807366
1 A1Cresult:Norm 0.0490355
3 A1Cresult:>7 0.0374596

La mayoría de los pacientes no tienen un resultado A1c registrado (83.28%), lo que podría indicar que los datos no fueron obtenidos o no se realizaron pruebas. De los pacientes con resultados, una proporción significativa tiene un A1c mayor a 8 (>8) (8.07%), lo que indica un mal control de la glucosa. Un porcentaje menor muestra un resultado dentro del rango normal (4.90%) o con A1c entre 7 y 8 (>7) (3.75%). Esto sugiere que una proporción significativa de pacientes no tiene resultados de A1c registrados, y aquellos que lo tienen, en su mayoría, presentan un mal control de la glucosa.

T_Prop_A1Cresult %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN A1CRESULT",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

MAX GLU SERUM

La variable “max_glu_serum” refleja los resultados del nivel máximo de glucosa en suero de los pacientes.

Proporciones de las variables en Max Glu Serum
Variable Proporción
2 max_glu_serum:None 0.9474662
1 max_glu_serum:Norm 0.0255201
3 max_glu_serum:>200 0.0145927
4 max_glu_serum:>300 0.0124210

La mayoría de los pacientes no tienen un resultado registrado para este análisis (94.75%), lo que podría indicar que no se realizaron pruebas o no se disponen de los datos. De los pacientes con resultados, una pequeña proporción tiene niveles normales de glucosa en suero (2.55%), mientras que un porcentaje menor presenta niveles superiores a 200 mg/dL (>200) (1.46%) o superiores a 300 mg/dL (>300) (1.24%), lo que sugiere un control insuficiente de la glucosa en sangre en estos casos.

T_Prop_max_glu_serum %>%
  ggplot(aes(x = reorder(Variable, Proporcion), y = Proporcion)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  ggtitle(label = "PROPORCION DE LAS VARIABLES EN MAX GLU SERUM",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  coord_flip() +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))

READMISION

La variable “readmitted” indica si los pacientes fueron readmitidos tras su alta.

Proporciones de las variables en Readmitted
Variable Proporción
readmitted 0.4608944

Una proporción del 46.09% de los pacientes regresó al hospital, lo que sugiere que casi la mitad de los casos podrían necesitar una evaluación adicional para identificar factores que influyen en las readmisiones, como la efectividad del tratamiento o el manejo post-alta.

T_Prop_readmitted %>%
  mutate(Sobrante = 1 - Proporcion) %>%
  ggplot(aes(x = reorder(Variable, Proporcion))) +
  geom_bar(aes(y = 1), stat = "identity", fill = "grey90") +  # Barra gris del 100%
  geom_bar(aes(y = Proporcion), stat = "identity", fill = "steelblue") +  # Barra azul de la proporción
  coord_flip() +
  ggtitle(label = "PROPORCIÓN DE LAS VARIABLES EN READMITTED",
          subtitle = "PERFILES DE PACIENTES CON DIABETES") +
  labs(x = "Variable", y = "Proporción") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        legend.position = "none", text = element_text(size = 10),
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"))


En general, las variables analizadas revelan un panorama de tratamiento y control de la diabetes en una población de pacientes. La mayoría de los tratamientos y medicaciones (como metformina, repaglinida, acarbosa, entre otros) no son utilizados por la mayoría de los pacientes, con una proporción significativa recibiendo tratamientos estables o constantes. Los ajustes en las dosis de estos medicamentos son mínimos, lo que sugiere que muchos pacientes tienen un tratamiento controlado y sin cambios frecuentes en su dosificación.

Sin embargo, en lo que respecta a los resultados de los análisis relacionados con el control de la glucosa, como los niveles de A1c y la glucosa en suero, se observa que una proporción importante de pacientes tiene niveles fuera del rango ideal, con un porcentaje notablemente bajo con A1c superior a 8, lo que indica un mal control de la glucosa. De manera similar, aunque pocos pacientes presentan niveles de glucosa en suero superiores a 200 mg/dL o 300 mg/dL, esto señala que existen casos de control deficiente de la diabetes.

En resumen, aunque muchos pacientes tienen un tratamiento estable y bien administrado, el control de la glucosa en sangre en algunos casos no es óptimo, lo que podría implicar la necesidad de intervenciones adicionales para mejorar el manejo de la diabetes y sus complicaciones asociadas.


VARIABLES NUMERICAS

TIEMPO EN EL HOSPITAL

La variable “Time in Hospital” representa la duración de las estancias hospitalarias en días. Los valores van desde un mínimo de 1 día hasta un máximo de 14 días.

Resumen de la variable Time in Hospital
Variable Valor
Min. 1.000000
1st Qu. 2.000000
Median 4.000000
Mean 4.396018
3rd Qu. 6.000000
Max. 14.000000

La mediana es de 4 días, lo que indica que la mitad de las estancias son de 4 días o menos. El promedio es ligeramente mayor (4.40 días), lo que sugiere la presencia de algunas estancias más largas que elevan este valor. La mayoría de las estancias se concentran entre 2 días (primer cuartil) y 6 días (tercer cuartil).

data %>%
  ggplot(aes(x = time_in_hospital)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DEL TIEMPO EN EL HOSPITAL",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Días en el hospital", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE PROCEDIMIENTOS DE LABORATORIO

La variable “Num Lab Procedures” representa el número de procedimientos de laboratorio realizados durante la estancia hospitalaria.

Resumen de la variable Num Lab Procedures
Variable Valor
Min. 1.00000
1st Qu. 31.00000
Median 44.00000
Mean 43.09591
3rd Qu. 57.00000
Max. 132.00000

Los valores oscilan entre un mínimo de 1 y un máximo de 132 procedimientos. La mediana es de 44, lo que indica que la mitad de los pacientes tiene 44 o menos procedimientos. El promedio es de 43.10, cercano a la mediana, lo que sugiere una distribución relativamente equilibrada. La mayoría de los valores se encuentran entre 31 (primer cuartil) y 57 (tercer cuartil), reflejando que estos son los rangos típicos de procedimientos realizados.

# Grafica

data %>%
  ggplot(aes(x = num_lab_procedures)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE PROCEDIMIENTOS DE LABORATORIO",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de procedimientos", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE PROCEDIMIENTOS

La variable “Num Procedures” representa el número de procedimientos realizados durante la estancia hospitalaria.

Resumen de la variable Num Procedures
Variable Valor
Min. 0.000000
1st Qu. 0.000000
Median 1.000000
Mean 1.339691
3rd Qu. 2.000000
Max. 6.000000

El valor mínimo es 0, lo que indica que algunos pacientes no recibieron procedimientos. La mediana es 1, lo que significa que la mitad de los pacientes tuvieron 1 o menos procedimientos. El promedio es de 1.34, lo que sugiere que, en general, los pacientes se someten a pocos procedimientos. La mayoría de los pacientes tuvieron entre 0 y 2 procedimientos, con un valor máximo de 6 procedimientos. Esto refleja que la mayoría de los casos fueron relativamente simples en términos de intervenciones.

data %>%
  ggplot(aes(x = num_procedures)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE PROCEDIMIENTOS",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de procedimientos", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE MEDICAMENTOS

La variable “Num Medications” refleja el número de medicamentos administrados durante la estancia hospitalaria.

Resumen de la variable Num Medications
Variable Valor
Min. 1.00000
1st Qu. 10.00000
Median 15.00000
Mean 16.02183
3rd Qu. 20.00000
Max. 81.00000

Los valores varían entre un mínimo de 1 medicamento y un máximo de 81. La mediana es 15, lo que indica que la mitad de los pacientes recibió 15 o menos medicamentos. El promedio es de 16.02, lo que sugiere que, en general, los pacientes reciben un número relativamente alto de medicamentos durante su atención. La mayoría de los pacientes se encuentra entre 10 y 20 medicamentos (primer y tercer cuartil), lo que refleja un rango común de tratamiento en la muestra.

data %>%
  ggplot(aes(x = num_medications)) +
  geom_histogram(binwidth = 5, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE MEDICAMENTOS",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de medicamentos", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE OUTPATIENT

La variable “Number Outpatient” refleja el número de visitas ambulatorias previas al ingreso hospitalario.

Resumen de la variable Number Outpatient
Variable Valor
Min. 0.000000
1st Qu. 0.000000
Median 0.000000
Mean 0.369368
3rd Qu. 0.000000
Max. 42.000000

La mayoría de los pacientes no tiene visitas ambulatorias registradas (mínimo, primer cuartil y mediana son 0). Sin embargo, el valor promedio es de 0.37 visitas, lo que indica que, en promedio, algunos pacientes tienen una o más visitas ambulatorias antes de su hospitalización, aunque la mayoría no tiene ninguna. El valor máximo es 42 visitas, lo que sugiere que existen algunos pacientes con un historial ambulatorio más extenso antes de ser ingresados.

# Grafica

data %>%
  ggplot(aes(x = number_outpatient)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE VISITAS AMBULATORIAS",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de visitas", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE EMERGENCY

La variable “Number Emergency” refleja el número de visitas de emergencia previas al ingreso hospitalario.

Resumen de la variable Number Emergency
Variable Valor
Min. 0.000000
1st Qu. 0.000000
Median 0.000000
Mean 0.197842
3rd Qu. 0.000000
Max. 76.000000

La mayoría de los pacientes no tiene visitas de emergencia registradas (mínimo, primer cuartil y mediana son 0). El promedio es de 0.20 visitas, lo que indica que, en general, los pacientes tienen pocas visitas a emergencias antes de su hospitalización. Sin embargo, el valor máximo es 76, lo que sugiere que algunos pacientes pueden haber tenido un número considerable de visitas a emergencias antes de ser admitidos en el hospital.

# Grafica

data %>%
  ggplot(aes(x = number_emergency)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE VISITAS DE EMERGENCIA",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de visitas", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE INPATIENTE

La variable “Number Inpatient” refleja el número de ingresos hospitalarios previos al ingreso actual.

Resumen de la variable Number Inpatient
Variable Valor
Min. 0.0000000
1st Qu. 0.0000000
Median 0.0000000
Mean 0.6355846
3rd Qu. 1.0000000
Max. 21.0000000

La mayoría de los pacientes no tiene ingresos previos registrados (mínimo, primer cuartil y mediana son 0). El promedio es de 0.64 ingresos, lo que indica que, en general, los pacientes tienen pocos ingresos previos. El tercer cuartil es 1, lo que significa que la mayoría de los pacientes ha tenido 0 o 1 ingreso anterior. El valor máximo es 21, lo que sugiere que algunos pacientes tienen un historial significativo de hospitalizaciones previas.

# Grafica

data %>%
  ggplot(aes(x = number_inpatient)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE VISITAS HOSPITALARIAS",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de visitas", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))

NUMERO DE DIAGNOSTICOS

La variable “Number Diagnoses” representa el número de diagnósticos registrados durante la estancia hospitalaria.

Resumen de la variable Number Diagnoses
Variable Valor
Min. 1.000000
1st Qu. 6.000000
Median 8.000000
Mean 7.422649
3rd Qu. 9.000000
Max. 16.000000

El valor mínimo es 1, lo que indica que todos los pacientes tienen al menos un diagnóstico. La mediana es 8, lo que sugiere que la mitad de los pacientes tiene 8 o menos diagnósticos. El promedio es de 7.42, lo que refleja que en general los pacientes tienen múltiples diagnósticos, pero no de manera excesiva. La mayoría de los pacientes tiene entre 6 y 9 diagnósticos (primer y tercer cuartil), y el valor máximo es 16, lo que indica que algunos pacientes pueden ser diagnosticados con múltiples condiciones complejas.

# Grafica

data %>%
  ggplot(aes(x = number_diagnoses)) +
  geom_histogram(binwidth = 1, fill = "steelblue", color = "white") +
  ggtitle(label = "DISTRIBUCIÓN DE DIAGNÓSTICOS",
          subtitle = "PACIENTES CON DIABETES") +
  labs(x = "Número de diagnósticos", y = "Frecuencia") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold", hjust = 0.5), 
        plot.subtitle = element_text(size = 10, face = "bold", hjust = 0.5, color = "grey50"),
        axis.text = element_text(size = 10), 
        axis.title = element_text(size = 10))


MATRIZ DE CORRELACIÓN

A continuacion se presenta la matriz de correlación de las variables numéricas.

Matriz de Correlación de Variables Numéricas
time_in_hospital num_lab_procedures num_procedures num_medications number_outpatient number_emergency number_inpatient number_diagnoses
time_in_hospital 1.0000000 0.3184294 0.1914972 0.4661374 -0.0089192 -0.0096834 0.0736190 0.2201530
num_lab_procedures 0.3184294 1.0000000 0.0581055 0.2681757 -0.0076064 -0.0022824 0.0392252 0.1527374
num_procedures 0.1914972 0.0581055 1.0000000 0.3857607 -0.0248127 -0.0381753 -0.0662263 0.0737692
num_medications 0.4661374 0.2681757 0.3857607 1.0000000 0.0451983 0.0131803 0.0641960 0.2615288
number_outpatient -0.0089192 -0.0076064 -0.0248127 0.0451983 1.0000000 0.0914570 0.1073340 0.0941483
number_emergency -0.0096834 -0.0022824 -0.0381753 0.0131803 0.0914570 1.0000000 0.2665574 0.0555355
number_inpatient 0.0736190 0.0392252 -0.0662263 0.0641960 0.1073340 0.2665574 1.0000000 0.1047026
number_diagnoses 0.2201530 0.1527374 0.0737692 0.2615288 0.0941483 0.0555355 0.1047026 1.0000000

Las variables numéricas muestran que la mayoría de los pacientes tienen estancias hospitalarias cortas, con una duración promedio de alrededor de 4 días. También se observa que los pacientes son sometidos a una cantidad considerable de procedimientos de laboratorio, con una media de 43, lo que indica una atención diagnóstica frecuente. Sin embargo, los procedimientos médicos invasivos son menos comunes, ya que la mayoría de los pacientes solo recibe uno o dos.

En cuanto a la medicación, los pacientes reciben en promedio 16 medicamentos, lo que refleja tratamientos médicos complejos. La mayoría de los pacientes no tiene visitas ambulatorias ni de emergencia previas al ingreso, aunque algunos sí tienen antecedentes de múltiples visitas a emergencias. Además, aunque la mayoría de los pacientes no tiene hospitalizaciones previas, algunos tienen un historial de múltiples ingresos, lo que puede sugerir condiciones más crónicas. Finalmente, los pacientes tienen entre 6 y 9 diagnósticos, lo que muestra que su atención médica generalmente abarca varias condiciones diferentes.

Por ultimo, la siguiente figura, corresponde al mapa de calor de las variables numéricas, donde se puede observar la relación entre las variables de una forma más clara y dinamica.

# Crear el mapa de calor con la función corrplot
corrplot(correlation_matrix, 
         tl.pos = "n",  # No mostrar etiquetas de texto
         tl.col = "black",  # Color de las etiquetas
         cl.cex = 0.8,  # Ajustar el tamaño de la leyenda
         order = "original",  # Ordenar las variables según un dendrograma jerárquico
         method = "color",  # Usar colores en el mapa de calor
         col = colorRampPalette(c('#D14B3D','#F5A831','#1D2F57'))(200),  # Definir la paleta de colores
         title = "MATRIZ DE CORRELACIÓN DE VARIABLES NUMÉRICAS",  # Título
         mar = c(0,0,1,0)  # Ajustar márgenes
)

Aquí se puede observar que no hay correlaciones fuertes entre las variables numéricas, lo que sugiere que no hay una relación lineal clara entre ellas. Esto indica que las variables numéricas representan aspectos diferentes de la atención médica y el tratamiento de los pacientes, lo que refleja la complejidad y diversidad de las condiciones de salud y los tratamientos asociados.

BASE FINAL

Luego de las transformaciones y análisis realizados, la base de datos final se presenta a continuación.

## Rows: 101,763
## Columns: 36
## $ time_in_hospital    <dbl> 4, 2, 4, 5, 1, 7, 6, 3, 2, 3, 2, 4, 3, 3, 1, 4, 5,…
## $ num_lab_procedures  <dbl> 66, 48, 21, 38, 6, 42, 43, 26, 24, 60, 10, 32, 63,…
## $ num_procedures      <dbl> 3, 0, 3, 0, 0, 2, 2, 1, 3, 0, 0, 2, 4, 2, 4, 0, 6,…
## $ num_medications     <dbl> 18, 15, 23, 5, 6, 27, 17, 16, 17, 19, 3, 35, 17, 2…
## $ number_outpatient   <dbl> 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,…
## $ number_emergency    <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ number_inpatient    <dbl> 1, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0,…
## $ number_diagnoses    <dbl> 9, 7, 7, 2, 6, 2, 5, 8, 9, 9, 9, 9, 4, 9, 4, 9, 9,…
## $ change              <dbl> 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1,…
## $ diabetesMed         <dbl> 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1,…
## $ readmitted          <dbl> 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1,…
## $ Raza                <chr> "Caucásico", "Caucásico", "Caucásico", "Caucásico"…
## $ Genero              <chr> "Femenino", "Femenino", "Femenino", "Femenino", "M…
## $ Edad                <chr> "70+", "20-50", "50-70", "20-50", "50-70", "70+", …
## $ Admision            <chr> "Emergencia", "Otro", "Electiva", "Emergencia", "E…
## $ Discharge           <chr> "Dado de alta a casa", "Dado de alta a casa", "Dad…
## $ Especialidad        <chr> "Otro", "Otro", "Otro", "Otro", "Medicina Interna"…
## $ Diagnostico1        <chr> "Respiratorio", "Otro", "Otro", "Otro", "Circulato…
## $ Diagnostico2        <chr> "Otro", "Otro", "Otro", "Diabetes", "Diabetes", "D…
## $ Diagnostico3        <chr> "Otro", "Otro", "Otro", "Otro", "Circulatorio", "O…
## $ Metformin           <chr> "Estable", "No", "Estable", "Estable", "No", "Esta…
## $ Repaglinide         <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Nateglinide         <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Chlorpropamide      <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Glipizide           <chr> "No", "No", "No", "No", "No", "No", "Estable", "No…
## $ Glyburide           <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Glimepiride         <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Pioglitazone        <chr> "No", "No", "No", "Estable", "No", "No", "No", "No…
## $ Rosiglitazone       <chr> "No", "No", "No", "No", "No", "Estable", "No", "No…
## $ Acarbose            <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Miglitol            <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Tolazamide          <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Insulin             <chr> "Estable", "No", "No", "No", "Estable", "No", "No"…
## $ Glyburide_Metformin <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ A1Cresult           <chr> "No", "No", "No", "Mayor a 8", "No", "No", "No", "…
## $ Max_Glu_Serum       <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…

Podemos ver como pasamos de tener 151 variables a tener solo 36, al unificar las categoricas en una sola, con esto tambien podemos observar, que tenos un total de 8 variables de tipo numerico y 28 de tipo categorico.

 

Trabajado por: Cesar Prieto - CapStatsML

https://github.com/CapStats-ML