tibble [67,961 × 25] (S3: tbl_df/tbl/data.frame)
$ CIP_ANON : Factor w/ 67961 levels "1000100852","100035"..
$ Fecha de nacimiento : POSIXct[1:67961], format: "2018-01-01" ...
$ sexo : Factor w/ 2 levels "Hombre","Mujer": 1 1 ...
$ Peso al nac : num [1:67961] 3285 ...
$ e. madre : num [1:67961] NA 27 ...
$ Control : Factor w/ 2 levels "No","Sí": 2 2 ...
$ e. maternal : Factor w/ 2 levels "No","Sí": 2 1 ...
$ lugar_parto : Factor w/ 6 levels "Clínica Privada",..: 4 4..
$ tipo_parto : Factor w/ 2 levels "Distócico","Eutócico": 1..
$ Apgar 1MIN : num [1:67961] 9 10 ...
$ Apgar 5MIN : num [1:67961] 10 10 ...
$ edad gestacional : num [1:67961] 374 39.4 ...
$ Fecha del alta : POSIXct[1:67961], format: "2018-01-02" ...
$ tipo_lactancia : Factor w/ 3 levels "Materna","Artificial",....
$ d. lac materna : num [1:67961] NA NA ...
$ formulas especiales : Factor w/ 2 levels "No","Sí": NA NA ...
$ Test metabolopatías : Factor w/ 2 levels "No","Sí": 2 2 ...
$ Fecha Test : POSIXct[1:67961], format: "2018-01-03" ...
$ Resultado test metabolopatías: Factor w/ 2 levels "Normal","Patológica": 1 ..
$ mes_nacimiento : Factor w/ 12 levels "1","2","3","4",..: 1 1 ..
$ year_nacimiento : Factor w/ 5 levels "2018","2019",..: 1 1 ...
$ mes_alta : Factor w/ 12 levels "1","2","3","4",..: 1 1 ..
$ year_alta : Factor w/ 66 levels "1900","2000",..: 16 16 ..
$ mes_test : Factor w/ 12 levels "1","2","3","4",..: 1 1 ..
$ year_test : Factor w/ 55 levels "1900","1997",..: 15 15 ..
3 Limpieza de datos
Refactoring y depuración de las bases de datos
3.1 Pediatría
Estructura interna de la base de datos:
Eliminamos valor con e. madre < 14.
Mantenemos los valores sin informar (NA) y los mayores e iguales a 14.
Antes: 67961. Después: 67945. Eliminados: 16
Eliminamos valores extremos de e. madre (>= 80).
filtro <- is.na(pediatria$`e. madre`) | pediatria$`e. madre` < 80Antes: 67945. Después: 67921. Eliminados: 24
Eliminamos valores extremos de días de lactancia materna (>= 200).
filtro <- is.na(pediatria$`d. lac materna`) | pediatria$`d. lac materna` < 200Antes: 67921. Después: 67916. Eliminados: 5
Filtramos las fechas de test anteriores al nacimiento
No aplica.
- Finalmente no mostramos interés en el test de metabolopatías y no es necesario aplicar filtros al respecto.
# Hay fechas test de 1900 en la base de datos original (2) + otra de 1997 (1).
# Fecha test tiene 27701 sin informar + 7 casos con fechas en formatos erróneos que el sistema interpreta como Na (anteriores a 1900)
filtro <- pediatria$`Fecha Test` < pediatria$`Fecha de nacimiento`Filtramos las fechas de alta anteriores al nacimiento
filtro <- pediatria$`Fecha del alta` < pediatria$`Fecha de nacimiento`filtro
FALSE TRUE <NA>
48469 608 18839
Antes: 67916. Después: 67308. Eliminados: 608
Filtramos los años de alta y test fuera del rango 2018-2023
El estudio incluye nacimientos hasta 2022: damos un año más de margen (todos los datos incluidos son bebés menores de un año)
anyos <- as.character(2018:2023)
filtro1 <- is.na(pediatria$year_alta) | pediatria$year_alta%in%anyos
filtro2 <- is.na(pediatria$year_test) | pediatria$year_test%in%anyosDistribución de los años de alta:
2018 2019 2020 2021 2022 2023 2024 2025 2028 2029 2033 2034 2041
9512 9914 9271 9484 10083 97 1 1 1 3 1 1 2
2052 2080 2090 2100 2102 2108 2109 2180 2190 2200 2201 2202 2208
2 4 3 23 1 2 7 3 2 14 5 2 1
2210 2220 2300 2301 2501 2502 2507 2901 2918 2919 2921 3018 3019
1 1 1 1 1 2 1 1 1 1 1 1 2
3020 3330 4201 5018 5133 5202 7018 7201 7202 8201 8202 9202 <NA>
1 1 1 2 1 1 1 1 1 2 1 1 18839
Sum
67308
Distribución de los años de test:
1900 1997 2000 2001 2002 2008 2009 2010 2011 2012 2014 2015 2016
2 1 20 4 6 1 1 18 2 12 1 3 6
2017 2018 2019 2020 2021 2022 2023 2024 2026 2027 2028 2029 2052
33 7693 7922 7780 7897 8244 109 1 1 1 1 1 1
2080 2090 2100 2108 2109 2121 2122 2180 2190 2200 2201 2202 2210
4 4 8 3 4 3 1 1 2 6 1 5 1
2218 2220 2300 2501 2502 2840 2918 2921 3019 3202 5018 5202 6202
1 2 1 2 1 1 1 2 1 2 1 1 2
8202 9201 9202 <NA> Sum
2 1 1 27482 67308
Antes: 67308. Después: 67021. Eliminados: 287
| Tabla de frecuencias | ||||||||||||||
| year_alta × mes_alta | ||||||||||||||
| year | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Na | Sum |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | 678 | 717 | 722 | 698 | 769 | 792 | 842 | 864 | 837 | 926 | 824 | 803 | 0 | 9472 |
| 2019 | 799 | 712 | 869 | 783 | 861 | 831 | 887 | 902 | 838 | 836 | 768 | 795 | 0 | 9881 |
| 2020 | 745 | 757 | 731 | 711 | 800 | 807 | 858 | 874 | 792 | 806 | 738 | 629 | 0 | 9248 |
| 2021 | 660 | 661 | 825 | 748 | 791 | 757 | 849 | 842 | 855 | 840 | 807 | 821 | 0 | 9456 |
| 2022 | 845 | 764 | 772 | 777 | 854 | 824 | 905 | 969 | 811 | 863 | 818 | 861 | 0 | 10063 |
| 2023 | 65 | 2 | 0 | 1 | 1 | 2 | 4 | 3 | 3 | 0 | 5 | 10 | 0 | 96 |
| NA. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 18805 | 18805 |
| Sum | 3792 | 3613 | 3919 | 3718 | 4076 | 4013 | 4345 | 4454 | 4136 | 4271 | 3960 | 3919 | 18805 | 67021 |
| Tabla de frecuencias | ||||||||||||||
| year_alta × mes_test | ||||||||||||||
| year | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Na | Sum |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018 | 533 | 595 | 600 | 563 | 642 | 708 | 702 | 687 | 652 | 765 | 630 | 603 | 0 | 7680 |
| 2019 | 622 | 574 | 697 | 597 | 659 | 676 | 697 | 716 | 730 | 686 | 614 | 631 | 0 | 7899 |
| 2020 | 628 | 646 | 618 | 625 | 645 | 671 | 727 | 708 | 646 | 691 | 620 | 549 | 0 | 7774 |
| 2021 | 562 | 584 | 694 | 605 | 703 | 639 | 703 | 684 | 730 | 685 | 666 | 628 | 0 | 7883 |
| 2022 | 658 | 655 | 611 | 654 | 702 | 694 | 719 | 797 | 706 | 718 | 659 | 659 | 0 | 8232 |
| 2023 | 73 | 10 | 1 | 1 | 1 | 2 | 3 | 2 | 1 | 1 | 2 | 11 | 0 | 108 |
| NA. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 27445 | 27445 |
| Sum | 3076 | 3064 | 3221 | 3045 | 3352 | 3390 | 3551 | 3594 | 3465 | 3546 | 3191 | 3081 | 27445 | 67021 |
Distribución del peso al nacer: controversia con las unidades de medida
El peso al nacer está registrado tanto en gramos como en kilos.
Se intentó identificar los casos registrados en kilos y transformarlo a gramos. Se considera demasiado complicado y muchos casos no sabían resolverse. Además, la variable ‘edad gestacional’ tampoco está debidamente informada, por lo que no puede usarse para inferir el peso en gramos o kilos.
Distribución del peso al nacimiento:
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0 2660 3135 2994 3470 2777777 5961
Distribución del peso al nacimiento por semana gestacional:
Los datos en la región verde se consideran debidamente informados. Se eliminan el resto de valores. Se puede intentar corregir los registros de arriba a la izquierda (la semana gestacional parece estar en meses, no en día) y abajo a la derecha (los datos parecen estar en kilos y no en gramos).
Antes: 67021. Después: 48665. Eliminados: 18356
Filtramos los valores de Apgar (1MIN/5MIN) superiores a 10
Valores de Apgar 1 minuto superiores a diez:
FALSE TRUE <NA>
41141 74 7450
Valores de Apgar 5 minutos superiores a diez:
FALSE TRUE <NA>
39455 86 9124
Antes: 48665. Después: 48505. Eliminados: 160
3.1.1 Warnings (dudas)
- ¿Diferencia entre e.maternal y e.madre?
e. maternal
e.madre_missing No Sí <NA>
FALSE 6984 27626 11926
TRUE 96 596 1277
<NA> 0 0 0
- ¿Puede ser tipo de lactancia materna pero tener fórmulas especiales?
No Sí <NA>
Materna 2011 394 22163
Artificial 863 369 6444
Mixta 767 285 6791
<NA> 11 14 8393
- Relación entre ‘Test metabolopatías’, ‘Resultado test metabolopatías’.
Normal Patológica <NA>
No 104 1 60
Sí 38539 263 8214
<NA> 587 5 732
Si hay resultado del test de metabolopatías entonces el test se marca como “Sí”, y si el resultado es NA entonces el test se marca como “No”.
Normal Patológica <NA>
No 0 0 9006
Sí 39230 269 0
<NA> 0 0 0
- Edad gestacional no podemos usarla: posiblemente haya valores en meses, otros en días y otros valores son demasiado extremos.
(edad gestacional original, antes de eliminar filtrar por los casos en verde)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
2 38 39 257 40 4017082 9398
3.2 Pediatría y Protocolo salud
La base de datos de ‘protocolo salud’ contienen los cuestionarios de educación de lactancia: la escala de valoración LACTH y el test de Matthew.
# A tibble: 6 × 9
CIP_ANON Fechadenacimiento sexo testdeMatthew EscaladevaloracionLA…¹
<chr> <dttm> <chr> <chr> <chr>
1 1001248772 2022-10-07 00:00:00 MUJER 12 - LACTANCIA E… 10 - Sin dificultad/s…
2 1001303052 2022-07-30 00:00:00 MUJER <NA> <NA>
3 1001366112 2022-08-21 00:00:00 MUJER 12 - LACTANCIA E… 10 - Sin dificultad/s…
4 1001849002 2022-08-10 00:00:00 HOMBRE <NA> <NA>
5 1002179042 2022-06-20 00:00:00 HOMBRE << No Procede >> << No Procede >>
6 1002899452 2021-11-04 00:00:00 HOMBRE <NA> <NA>
# ℹ abbreviated name: ¹EscaladevaloracionLACTH
# ℹ 4 more variables: motivoabandonodelactancia <chr>,
# alimentacioncomplementaria <chr>, Tipodelecheartificial <chr>,
# Calendariovacunacion <chr>
CIPs de protocolo que están en pediatría:
FALSE TRUE
41545 6960
CIPs de pediatría que están en protocolo:
FALSE TRUE
5775 6960
Número de CIPs comunes en pediatría y protocolo salud:
[1] 6960
Distribución del año de nacimiento de los niños que tienen protocolo salud informado:
# A tibble: 5 × 4
year_nacimiento Pediatría `Protocolo salud` `Unión Ped-Prot`
<fct> <int> <int> <int>
1 2018 10216 868 75
2 2019 10034 790 75
3 2020 9412 498 69
4 2021 9381 811 156
5 2022 9462 9768 6585
El registro de la escala de valoración LACTH y el test Matthew está implementado en la práctica clínica de forma voluntaria: el especialista decide si quiere recoger o no esta información. Desde 2022 -repasarlo con Esmeralda- creo que está relacionado con los programas de promoción de la leche materna para que se registre esta información.
Escala de valoración LACTH
Ejemplos de la escala de valoración de LACTH en la base de datos protocolo salud:
[1] NA
[2] "10 - sin dificultad/situación óptima"
[3] "9 - sin dificultad/situación óptima"
[4] "<< no procede >>"
[5] "7 - dificultad moderada"
[6] "8 - dificultad moderada"
[7] "0 - importante dificultad"
[8] "n"
[9] "3 - importante dificultad"
[10] "6 - dificultad moderada"
Conservamos el resultado numérico de la escala de valoración LACTH únicamente cuando toma valores entre 0 y 10. En otro caso se clasifica como sin determinar, excepto cuando corresponde a no procede, que se mantiene como categoría específica.
0 10 2 3 4 5 6
16 757 5 8 21 26 51
7 8 9 no procede <NA>
78 116 169 935 4778
Ejemplos de la variable test de Matthew en la base de datos protocolo salud:
[1] NA "12 - lactancia eficiente"
[3] "<< no procede >>" "8 - lact. medianamente eficiente"
[5] "11 - lactancia eficiente" "4 - lactancia deficiente"
[7] "9 - lact. medianamente eficiente" "10 - lactancia eficiente"
[9] "6 - lactancia deficiente" "adecuada"
Conservamos el resultado numérico del test de Matthew únicamente cuando toma valores entre 0 y 10. En otro caso se clasifica como sin determinar, excepto cuando corresponde a no procede, que se mantiene como categoría específica.
0 1 10 2 3 4 5
7 3 98 3 4 7 14
6 7 8 9 no procede <NA>
18 24 46 64 578 6094
Creamos las variables categóricas con los niveles asociados a la escala de valoración LACTH y el test de Matthew. Los registros no informados se clasifican como sin determinar, excepto cuando corresponde a no procede, que se mantiene como categoría específica.
dificultad moderada importante dificultad
367 37
no procede sin determinar
1200 9971
sin dificultad/situación óptima <NA>
1160 0
lactancia deficiente lactancia eficiente
71 3098
lactancia medianamente eficiente no procede
164 754
sin determinar <NA>
8648 0
3.3 Hospitalización
Total filas:
[1] 4991
Combinaciones únicas (CIP_ANON, FEC_NAC):
4449 filas, 2 columnas
Pacientes únicos:
[1] 4449
¿Cada CIP_ANON tiene una única FEC_NAC?
[1] "Sí"
Tenemos 532 registros en la base de datos 'hospitalización' sin código de ZBS.
Casos con ZBS no informado:
FALSE TRUE
4459 532
Aparentemente, un CENTRO no está asociado únicamente a un ZBS en la base de datos.
# A tibble: 6 × 3
CENTRO year_ingreso `Nº de ZBS asociados`
<chr> <dbl> <int>
1 020019 2017 5
2 020019 2018 33
3 020019 2019 33
4 020019 2020 27
5 020019 2021 25
6 020019 2022 32
# A tibble: 6 × 4
CENTRO CIP_ANON year_ingreso ZBS
<chr> <chr> <dbl> <chr>
1 020019 5665583571 2017 110114
2 020019 944587651 2017 110123
3 020019 4445782031 2017 110128
4 020019 4650589171 2017 110128
5 020019 1272977181 2017 110130
6 020019 6495410181 2017 110130
Existen casos en los que un mismo CIP presenta más de una hospitalización y algunos registros tienen el campo ZBS informado mientras que otros registros no. Para imputar los registros de ZBS sin informar, a cada CIP le asigno las visitas de cada añoal mismo ZBS siempre.
hospitalizacion |> mutate(year_ingreso = year(FEC_ING)) |> filter(CIP_ANON==2967241511) |> select(CENTRO, CIP_ANON, year_ingreso, ZBS, D1:D3)
## # A tibble: 6 × 7
## CENTRO CIP_ANON year_ingreso ZBS D1 D2 D3
## <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 130087 2967241511 2018 110222 J22 R06.02 G12.0
## 2 130087 2967241511 2018 110222 J22 J96.20 G12.0
## 3 130087 2967241511 2018 110222 J22 R06.02 G12.0
## 4 130087 2967241511 2018 110222 J22 G12.0 Z82.79
## 5 130127 2967241511 2018 <NA> J21.0 J96.10 G12.0
## 6 130127 2967241511 2018 <NA> J06.9 J96.10 G12.0# A tibble: 6 × 7
CENTRO CIP_ANON year_ingreso ZBS D1 D2 D3
<chr> <chr> <dbl> <chr> <chr> <chr> <chr>
1 130087 2967241511 2018 110222 J22 R06.02 G12.0
2 130087 2967241511 2018 110222 J22 J96.20 G12.0
3 130087 2967241511 2018 110222 J22 R06.02 G12.0
4 130087 2967241511 2018 110222 J22 G12.0 Z82.79
5 130127 2967241511 2018 110222 J21.0 J96.10 G12.0
6 130127 2967241511 2018 110222 J06.9 J96.10 G12.0
# A tibble: 6 × 3
CENTRO year_ingreso `Nº de ZBS asociados`
<chr> <dbl> <int>
1 020019 2017 5
2 020019 2018 33
3 020019 2019 33
4 020019 2020 27
5 020019 2021 25
6 020019 2022 32
No se consigue reducir mucho el número de casos con ZBS no informado:
FALSE TRUE
4503 488
3.4 Patologías
Cabecera de diagnósticos en la base de datos hospitalización:
# A tibble: 6 × 12
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 A08.39 E86.0 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
2 J06.9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
3 J21.9 J18.9 K52.9 Q18.1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
4 K52.9 E86.0 B15.9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
5 B34.9 D70.9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
6 A04.5 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
[1] 533
Códigos de diagnóstico en las columnas D1-D12 sin descripción: 533
Top códigos faltantes (n): A04.5 (1), A04.6 (1), A04.8 (1), A04.9 (1), A08.0 (1)
3.5 Grupos Relacionados por el Diagnóstico (Portal Estadístico)
El descriptivo de algunos GDR ha cambiado a lo largo de los años.
| GRD CDM | GRD | Severidad | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 144-ENFERMEDADES MISCELANEAS, SIGNOS Y SÍNTOMAS DE APARATO RESPIRATORIO | 144 | 2 | NA | NA | NA | NA | NA | NA | 3291.16 | 3680.56 | 3738.68 |
| 144-OTROS DIAGNÓSTICOS MENORES, SIGNOS Y SÍNTOMAS DE APARATO RESPIRATORIO | 144 | 2 | 2668.67 | 2600.99 | 2668.23 | 2735.23 | 3076.6 | 2962.19 | NA | NA | NA |
Agrupo la información a nivel código de GRD e ignoro el descriptivo.
| GRD | Severidad | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 |
|---|---|---|---|---|---|---|---|---|---|---|
| 144 | 2 | 2668.67 | 2600.99 | 2668.23 | 2735.23 | 3076.6 | 2962.19 | 3291.16 | 3680.56 | 3738.68 |