Introducción

Column

Análisis Estadístico

El presente informe expone el análisis estadístico realizado sobre el conjunto de datos de donantes del Banco de Sangre del Hospital General de Medellín, correspondiente al periodo comprendido entre los años 2020 y 2023.

Este estudio forma parte de la asignatura de Probabilidad y Estadística, y su propósito principal es:

  • ✅ Analizar las variables contenidas en el conjunto de datos
  • ✅ Identificar patrones significativos
  • ✅ Explorar posibles relaciones entre variables

#Metodología Aplicada

1. Obtención de Datos

  • Fuente: Portal oficial de Datos Abiertos del gobierno
  • Muestra inicial: 27,988 registros

2. Proceso de Limpieza

  • Criterios aplicados: edad, peso mínimo, estatura, completitud de información
  • Registros válidos finales: 25,481
  • Porcentaje de datos válidos: 91.0%

3. Análisis Implementado

  • Incorporación de variable temporal (clasificación por mes)
  • Construcción de tablas cruzadas
  • Análisis temporal mediante suavización exponencial
  • Estadística descriptiva y análisis de correlación

Nota: Los resultados obtenidos permiten una visión integral sobre la dinámica de la donación de sangre en este hospital durante el periodo 2020-2023, contribuyendo al entendimiento de patrones de donación y características de los donantes.

row

Descripción de variables, escalas de medición y unidades de medición

row

🎯 Variables de Análisis

  • Demográficas: Edad, Sexo, Ciudad
  • Biométricas: Estatura, Peso
  • Clínicas: Tipo de Sangre
  • Temporales: Año, Mes de Donación

📚 Contexto Académico

Este trabajo representa una oportunidad valiosa de aplicar conocimientos estadísticos dentro de un contexto real, como estudiante de Tecnología en Electrónica Industrial.

Competencias Desarrolladas:

  • Gestión y análisis de datos
  • Aplicación de herramientas estadísticas
  • Interpretación de resultados
  • Visualización de información en R

Estadísticas

Row

# A tibble: 6 × 8
   ANIO RH    CIUDAD    EDAD ESTATURA  PESO SEXO  MES  
  <dbl> <chr> <chr>    <dbl>    <dbl> <dbl> <chr> <chr>
1  2020 0+    MEDELLIN    43     1.74    80 M     ENERO
2  2020 0+    MEDELLIN    43     1.74    80 M     ENERO
3  2020 0+    MEDELLIN    44     1.6     86 F     ENERO
4  2020 0+    MEDELLIN    44     1.6     86 F     ENERO
5  2020 0+    MEDELLIN    61     1.63    63 F     ENERO
6  2020 0+    MEDELLIN    32     1.69    69 M     ENERO
      ANIO           RH               CIUDAD               EDAD      
 Min.   :2020   Length:25481       Length:25481       Min.   :18.00  
 1st Qu.:2020   Class :character   Class :character   1st Qu.:27.00  
 Median :2021   Mode  :character   Mode  :character   Median :36.00  
 Mean   :2021                                         Mean   :37.71  
 3rd Qu.:2022                                         3rd Qu.:47.00  
 Max.   :2023                                         Max.   :68.00  
    ESTATURA         PESO            SEXO               MES           
 Min.   :1.45   Min.   : 50.00   Length:25481       Length:25481      
 1st Qu.:1.60   1st Qu.: 63.00   Class :character   Class :character  
 Median :1.65   Median : 70.00   Mode  :character   Mode  :character  
 Mean   :1.66   Mean   : 71.81                                        
 3rd Qu.:1.72   3rd Qu.: 80.00                                        
 Max.   :1.99   Max.   :102.00                                        
   MES_ANIO            MES_NUM        ORDEN_TIEMPO  
 Length:25481       Min.   : 1.000   Min.   : 1.00  
 Class :character   1st Qu.: 3.000   1st Qu.:11.00  
 Mode  :character   Median : 6.000   Median :20.00  
                    Mean   : 5.994   Mean   :20.42  
                    3rd Qu.: 9.000   3rd Qu.:30.00  
                    Max.   :12.000   Max.   :41.00  

.

Row

Medidas de Tendencia Central

  Variable Media Mediana
1     Edad 37.71   36.00
2 Estatura  1.66    1.65
3     Peso 71.81   70.00

Medidas de Dispersión

  Variable Desv_Estandar Varianza Coef_Variacion
1     Edad         12.49   155.98          33.12
2 Estatura          0.09     0.01           5.24
3     Peso         11.73   137.59          16.33

Tablas

Row

Distribución por Año


2020 2021 2022 2023 
7276 8124 7735 2346 

Distribución por Sexo


    F     M 
14477 11004 

Distribución por Mes


     ABRIL     AGOSTO  DICIEMBRE      ENERO    FEBRERO      JULIO      JUNIO 
      2382       2006       1555       2669       2831       1800       1849 
     MARZO       MAYO  NOVIEMBRE    OCTUBRE SEPTIEMBRE 
      2567       1924       2039       1998       1861 

Row

Distribución por Ciudad


                 AMAGA                  ANDES                ARMENIA 
                    13                     31                     33 
                 BELLO                 CALDAS               CISNEROS 
                  1468                     24                     26 
            COPACABANA             DON MATIAS               ENVIGADO 
                   178                     48                    763 
              ESTRELLA               FREDONIA              GIRARDOTA 
                    16                     27                     14 
                ITAGUI            LA ESTRELLA              MARINILLA 
                   290                     80                     95 
              MARSELLA               MEDELLIN                POBLADO 
                    14                  21772                     14 
              RIONEGRO               SABANETA SAN ANTONIO DE PEREIRA 
                    74                     72                     28 
  SAN ANTONIO DE PRADO          SAN CRISTOBAL  SAN VICENTE DE FERRER 
                    30                     55                    126 
         SANTA BARBARA                YARUMAL 
                    46                    144 

Distribución por Tipo de Sangre (RH)


             0+              A-              A+             AB-             AB+ 
          14990             822            7139              63             428 
             B-              B+ SIN INFORMACION 
            238            1800               1 

.

Histogramas

Row

Row

Row

Row

Row

Row

Row

.

Cajas

Row

Caja 1 :EDAD

Row

Caja 2 : ESTATURA

-Se obseva en este gráfico presencia de datos atípicos.

Row

Caja 3: PESO

.

Correlación

Correlación de Pearson

Row

Row

Row

Row

Matriz de correlación

Grupos

row

row

Tablas Cruzadas

Row

      
       ABRIL AGOSTO DICIEMBRE ENERO FEBRERO JULIO JUNIO MARZO MAYO NOVIEMBRE
  2020   506    727       555   592     686   529   550   535  584       703
  2021   563    595       550   809     841   675   730   640  672       822
  2022   726    684       450   757     704   596   569   749  663       514
  2023   587      0         0   511     600     0     0   643    5         0
      
       OCTUBRE SEPTIEMBRE
  2020     742        567
  2021     521        706
  2022     735        588
  2023       0          0

Row

   
      0+   A-   A+  AB-  AB+   B-   B+ SIN INFORMACION
  F 8391  487 4177   41  245  133 1002               1
  M 6599  335 2962   22  183  105  798               0

Row

                 
                  2020 2021 2022 2023
  0+              4287 4696 4609 1398
  A-               288  249  224   61
  A+              2031 2329 2107  672
  AB-               21   22   16    4
  AB+              123  132  143   30
  B-                68   76   72   22
  B+               458  620  564  158
  SIN INFORMACION    0    0    0    1

Suavización Exponencial

Row

Conclusiones

Row

Luego del análisis estadístico de los datos del banco de sangre del Hospital General de Medellín entre los años 2020 y 2023, se concluye que la mayoría de los donantes pertenecen a la ciudad de Medellín, son de sexo femenino y tienen el tipo de sangre O+, siendo este el grupo RH más frecuente.

Las variables cuantitativas como edad, estatura y peso presentan distintos niveles de variabilidad, siendo la estatura la más homogénea. El análisis de correlación mostró que no existe una relación significativa entre edad, peso y estatura en el contexto de la donación, y los diagramas de caja permitieron evidenciar que, aunque hay algunas diferencias por sexo, RH o ciudad, en general las edades de los donantes son consistentes y no presentan diferencias extremas.

La tendencia temporal en la edad indica que en los últimos años se han sumado más adultos jóvenes al proceso de donación, y la suavización mensual de donaciones mostró estabilidad con algunas alzas en ciertos meses, lo cual podría relacionarse con campañas o eventos puntuales del hospital. Finalmente, aunque se realizó una limpieza rigurosa del conjunto de datos, se reconoce la posibilidad de que existan valores atípicos que no afectaron significativamente los resultados generales.

El uso del software R resultó ser una herramienta muy útil para el análisis y visualización de los datos del banco de sangre. Su capacidad para manejar grandes volúmenes de información, aplicar filtros personalizados y generar gráficos estadísticos como diagramas de caja, gráficos de dispersión, correlaciones y tendencias suavizadas permitió realizar un análisis más profundo y visualmente comprensible.

---
title: "P & E 2025"
author: "Alejandra Guzmán 2016453-2725"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: scroll
    theme: bootstrap
    source_code: embed
    css: |
      .chart-title {
        font-size: 18px;
        font-weight: bold;
      }
      .section.sidebar {
        background-color: #f8f9fa;
      }
      body {
        font-size: 14px;
      }
---

```{r setup-intro, include=FALSE}
library(flexdashboard)
library(knitr)
library(DT)
library(ggplot2)
library(gridExtra)
library(dplyr)
load("/cloud/project/datos.RData")
```

# Introducción

## Column {data-width=600}

###

#### **Análisis Estadístico** {data-height=600}

El presente informe expone el análisis estadístico realizado sobre el conjunto de datos de donantes del **Banco de Sangre del Hospital General de Medellín**, correspondiente al periodo comprendido entre los años **2020** y **2023**. 

Este estudio forma parte de la asignatura de **Probabilidad y Estadística**, y su propósito principal es:

- ✅ Analizar las variables contenidas en el conjunto de datos
- ✅ Identificar patrones significativos
- ✅ Explorar posibles relaciones entre variables

#**Metodología Aplicada**

**1. Obtención de Datos**

- Fuente: Portal oficial de **Datos Abiertos del gobierno**
- Muestra inicial: **27,988** registros

**2. Proceso de Limpieza**

- Criterios aplicados: edad, peso mínimo, estatura, completitud de información
- Registros válidos finales: **25,481**
- Porcentaje de datos válidos: **91.0%**

**3. Análisis Implementado**

- Incorporación de variable temporal (clasificación por mes)
- Construcción de tablas cruzadas
- Análisis temporal mediante suavización exponencial
- Estadística descriptiva y análisis de correlación

**Nota:** Los resultados obtenidos permiten una visión integral sobre la dinámica de la donación de sangre en este hospital durante el periodo 2020-2023, contribuyendo al entendimiento de patrones de donación y características de los donantes.

row
--------------------------------------------------------------------------------

### **Descripción de variables, escalas de medición y unidades de medición** 

```{r tabla-resumen, echo=FALSE}
# Crear tabla resumen
variables <- data.frame(
  Variable = c("ANO", "RH", "CIUDAD", "EDAD", "ESTATURA", "PESO", "MES", "SEXO"),
  Descripción = c("Año de donación", "Factor RH", "Ciudad de donación", "Edad del donante", 
                  "Estatura del donante", "Peso del donante", "Mes de donación", "Sexo del donante"),
  Tipo = c("Cualitativa", "Cualitativa", "Cualitativa", "Cuantitativa", 
           "Cuantitativa", "Cuantitativa", "Cualitativa", "Cualitativa"),
  Escala = c("Discreta", "Nominal", "Nominal", "Discreta", 
             "Continua", "Discreta", "Nominal", "Nominal"),
  Unidades = c("Años", NA, NA, "Años", "metro (m)", "Kilogramos (kg)", "Meses", NA),
  stringsAsFactors = FALSE
)

DT::datatable(variables,
              options = list(dom = 't', pageLength = 8),
              rownames = FALSE,
              class = 'cell-border stripe') %>%
  DT::formatStyle(columns = 1:5, fontSize = '14px')
```

row
----------------------------------------------------------------------------------

### **🎯 Variables de Análisis** {data-height=300}

- **Demográficas**: Edad, Sexo, Ciudad
- **Biométricas**: Estatura, Peso
- **Clínicas**: Tipo de Sangre
- **Temporales**: Año, Mes de Donación

### **📚 Contexto Académico** {data-height=30}

Este trabajo representa una oportunidad valiosa de aplicar conocimientos estadísticos dentro de un **contexto real**, como estudiante de **Tecnología en Electrónica Industrial**.

**Competencias Desarrolladas:**

- Gestión y análisis de datos
- Aplicación de herramientas estadísticas
- Interpretación de resultados
- Visualización de información en R




Estadísticas
================================================================================
Row
--------------------------------------------------------------------------------

### 

```{r vista_general}
head(P4)     ## Registro del conjunto de datos

summary(P5)
```
.

Row
--------------------------------------------------------------------------------

###

#### Medidas de Tendencia Central
```{r medidas_centrales}
# Crear tabla con medidas centrales
medidas <- data.frame(
  Variable = c("Edad", "Estatura", "Peso"),
  Media = round(c(mean(P5$EDAD), mean(P5$ESTATURA), mean(P5$PESO)), 2),
  Mediana = round(c(median(P5$EDAD), median(P5$ESTATURA), median(P5$PESO)), 2)
)
print(medidas)
```

#### Medidas de Dispersión
```{r medidas_dispersion}
# Crear tabla con medidas de dispersión
dispersion <- data.frame(
  Variable = c("Edad", "Estatura", "Peso"),
  Desv_Estandar = round(c(sd(P5$EDAD), sd(P5$ESTATURA), sd(P5$PESO)), 2),
  Varianza = round(c(var(P5$EDAD), var(P5$ESTATURA), var(P5$PESO)), 2),
  Coef_Variacion = round(c(sd(P5$EDAD)*100/mean(P5$EDAD),
                          sd(P5$ESTATURA)*100/mean(P5$ESTATURA),
                          sd(P5$PESO)*100/mean(P5$PESO)), 2)
)
print(dispersion)
```

Tablas
================================================================================

Row
--------------------------------------------------------------------------------
### 

#### Distribución por Año

```{r tabla_ano}
table(P5$ANIO)
```

#### Distribución por Sexo

```{r tabla_sexo}
table(P5$SEXO)
```

#### Distribución por Mes

```{r tabla_mes}
table(P5$MES)
```


Row
--------------------------------------------------------------------------------
### 

####  Distribución por Ciudad

```{r tabla_ciudad}
table(P5$CIUDAD)
```

#### Distribución por Tipo de Sangre (RH)

```{r tabla_rh}
table(P5$RH)
```
.

Histogramas
================================================================================

Row
--------------------------------------------------------------------------------

```{r hist_edad}
hist(P5$EDAD, col = "skyblue",
     main = "HISTOGRAMA DE EDAD DE LOS DONANTES",
     xlab = "EDADES",
     ylab = "Frecuencia")
```

Row
-------------------------------------------------------------------------------

```{r hist_estatura}
hist(P5$ESTATURA, col = "violet",
     main = "HISTOGRAMA DE ESTATURA DE LOS DONANTES",
     xlab = "ESTATURAS",
     ylab = "Frecuencia")
```


Row
-------------------------------------------------------------------------------

```{r hist_peso}
hist(P5$PESO, col = "orange",
     main = "HISTOGRAMA DE PESO DE LOS DONANTES",
     xlab = "PESO",
     ylab = "Frecuencia")
```

Row
-------------------------------------------------------------------------------

```{r barras_ano}
barplot(table(P5$ANIO),
        col="green",
        main="DIAGRAMA DE BARRAS AÑO DE DONACIÓN",
        ylab="Conteo",
        xlab="FECHA")

```

Row
-------------------------------------------------------------------------------

```{r torta_sexo}
# Limpiar datos de sexo (remover NA)
sexo_limpio <- P5$SEXO[!is.na(P5$SEXO)]
pie(table(sexo_limpio),
    col=c("pink","blue"),
    main="SEXO DEL DONANTE DE SANGRE")
```

Row
-------------------------------------------------------------------------------
```{r barras_sangre}
# Limpiar datos de RH (remover NA)
rh_limpio <- P5$RH[!is.na(P5$RH)]
sangre <- table(rh_limpio)
names(sangre)[names(sangre) == "SIN INFORMACION"] <- "SIN INF."
barplot(sangre,
        col="red",
        main="DIAGRAMA DE BARRAS TIPO DE SANGRE",
        ylab="Conteo",
        xlab="TIPO DE SANGRE",
        las = 2,
        cex.axis = 0.8,
        cex.names = 0.8)
```

Row
-------------------------------------------------------------------------------
```{r barras_ciudad}
# Limpiar datos de ciudad (remover NA)
ciudad_limpia <- P5$CIUDAD[!is.na(P5$CIUDAD)]
ciudades <- table(ciudad_limpia)
names(ciudades)[names(ciudades) == "SAN ANTONIO DE PEREIRA"] <- "S.A.DE PEREIRA"
names(ciudades)[names(ciudades) == "SAN ANTONIO DE PRADO"] <- "S.A.DE PRADO "
names(ciudades)[names(ciudades) == "SAN VICENTE DE FERRER"] <- "S.V.DE FERRER"
barplot(ciudades,
        col = "yellow",
        main = "DIAGRAMA DE BARRAS DONANTE POR CIUDAD",
        ylab = "Conteo",
        xlab = "",
        las = 2,
        cex.names = 0.5,
        cex.main = 0.7,
        cex.lab = 0.6,
        cex.axis = 0.5)
```
.

Cajas
================================================================================

Row
-------------------------------------------------------------------------------

###

#### Caja 1 :EDAD
```{r 5}
ggplot(P5,aes(y=EDAD))+
  geom_boxplot(fill="skyblue")
```

Row
--------------------------------------------------------------------------------

###

#### Caja 2 : ESTATURA

-Se obseva en este gráfico presencia de datos atípicos.

```{r 6}
ggplot(P5,aes(y=ESTATURA))+
  geom_boxplot(fill="gold")
```


Row
--------------------------------------------------------------------------------

###

#### Caja 3: PESO

```{r 7}
ggplot(P5,aes(y=PESO))+
  geom_boxplot(fill="violet")
```

.

Correlación
================================================================================

#### Correlación de Pearson

Row
-------------------------------------------------------------------------------

###

```{r 91}
ggplot(P5, aes(x = ESTATURA, y = PESO)) +
  geom_jitter(color = "blue") +
  geom_smooth(method = lm, color = "red") +
  labs(title = "Estatura vs Peso")

```

Row
-------------------------------------------------------------------------------

###

```{r 92}
ggplot(P5, aes(x = EDAD, y = PESO)) +
  geom_jitter(color = "purple") +
  geom_smooth(method = lm, color = "red") +
  labs(title = "Edad vs Peso")

```

Row
-------------------------------------------------------------------------------

###

```{r 93}
ggplot(P5, aes(x = EDAD, y = ESTATURA)) +
  geom_jitter(color = "green") +
  geom_smooth(method = lm, color = "red") +
  labs(title = "Edad vs Estatura")
```

Row
-------------------------------------------------------------------------------
###

#### Matriz de correlación

```{r 8}

library(corrplot) ## graficos de correlacion
correlacion = cor(P5[, c("EDAD", "ESTATURA", "PESO")])
corrplot(correlacion, method = "number")

```


Grupos
================================================================================

row
--------------------------------------------------------------------------------

![](gigante.png)

```{r 811}

ggplot(P5, aes(x = SEXO, y = EDAD, fill = SEXO)) +
  geom_boxplot() +
  labs(title = "Distribución de edad según sexo del donante",
       x = "Sexo",
       y = "Edad")
```


row
--------------------------------------------------------------------------------


```{r 880}
ggplot(P5, aes(x = RH, y = EDAD, fill = RH)) +
  geom_boxplot() +
  labs(title = "Distribución de la edad según RH",
       x = "RH",
       y = "Edad")
```



```{r 890}

ggplot(P5, aes(x = factor(ANIO), y = EDAD, fill = factor(ANIO))) +
  geom_boxplot() +
  labs(title = "Distribución de la edad por año de donación",
       x = "Año",
       y = "Edad")
```



Tablas Cruzadas
================================================================================

Row
-------------------------------------------------------------------------------

###

```{r}
table(P5$ANIO, P5$MES)

```

###

```{r}
ggplot(P5, aes(x = as.factor(ANIO), fill = as.factor(ANIO))) +
  geom_bar() +
  facet_wrap(~ MES, ncol = 4) +  # Crea un panel por cada mes
  labs(title = "Donaciones por año dentro de cada mes",
       x = "Año", y = "Cantidad de donaciones")
```

Row
-------------------------------------------------------------------------------

###

```{r}

table(P5$SEXO, P5$RH)

```

###

```{r}
ggplot(P5, aes(x = RH, fill = SEXO)) +
  geom_bar(position = "dodge") +
  labs(title = "Distribución del RH por sexo",
       x = "RH", y = "Cantidad de donaciones")
```

Row
-------------------------------------------------------------------------------

###

```{r}
table(P5$RH, P5$ANIO)
```

###
```{r}

ggplot(P5, aes(x = as.factor(ANIO), fill = RH)) +
  geom_bar() +
  labs(title = "Distribución de RH por año",
       x = "Año",
       y = "Cantidad de donaciones",
       fill = "RH") +
  theme_minimal()
```



Suavización Exponencial
================================================================================

Row
-------------------------------------------------------------------------------
### {data-height=650}

![](SUAVIZACION.png)




Conclusiones
================================================================================

Row
-------------------------------------------------------------------------------

### 

Luego del análisis estadístico de los datos del banco de sangre del Hospital General de Medellín entre los años 2020 y 2023, se concluye que la mayoría de los donantes pertenecen a la ciudad de Medellín, son de sexo femenino y tienen el tipo de sangre O+, siendo este el grupo RH más frecuente.

####

Las variables cuantitativas como edad, estatura y peso presentan distintos niveles de variabilidad, siendo la estatura la más homogénea. El análisis de correlación mostró que no existe una relación significativa entre edad, peso y estatura en el contexto de la donación, y los diagramas de caja permitieron evidenciar que, aunque hay algunas diferencias por sexo, RH o ciudad, en general las edades de los donantes son consistentes y no presentan diferencias extremas. 

####

La tendencia temporal en la edad indica que en los últimos años se han sumado más adultos jóvenes al proceso de donación, y la suavización mensual de donaciones mostró estabilidad con algunas alzas en ciertos meses, lo cual podría relacionarse con campañas o eventos puntuales del hospital. 
Finalmente, aunque se realizó una limpieza rigurosa del conjunto de datos, se reconoce la posibilidad de que existan valores atípicos que no afectaron significativamente los resultados generales. 

####

El uso del software R resultó ser una herramienta muy útil para el análisis y visualización de los datos del banco de sangre. Su capacidad para manejar grandes volúmenes de información, aplicar filtros personalizados y generar gráficos estadísticos como diagramas de caja, gráficos de dispersión, correlaciones y tendencias suavizadas permitió realizar un análisis más profundo y visualmente comprensible.