library(ASQ3) # Load the package with the data
# Complementary packages
library(data.table)
library(skimr)
We will first calculate the statistics for the entire database without considering the underlying structure of the database.
descriptives <- skim(dataset)
print(descriptives)
#> ── Data Summary ────────────────────────
#> Values
#> Name dataset
#> Number of rows 1523
#> Number of columns 55
#> Key paciente_id, fecha_evaluacion
#> _______________________
#> Column type frequency:
#> character 2
#> Date 1
#> factor 13
#> numeric 39
#> ________________________
#> Group variables None
#>
#> ── Variable type: character ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max empty n_unique whitespace
#> 1 diagnostico 6 0.996 18 100 0 36 0
#> 2 alteracion 22 0.986 9 25 0 7 0
#>
#> ── Variable type: Date ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max median n_unique
#> 1 fecha_nacimiento 0 1 2006-05-31 2108-02-13 2019-11-05 656
#>
#> ── Variable type: factor ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate ordered n_unique top_counts
#> 1 profesional_id 0 1 FALSE 4 2: 1070, 4: 353, 1: 99, 3: 1
#> 2 profesional_especialidad 0 1 FALSE 3 Enf: 1169, Kin: 353, Fon: 1
#> 3 paciente_id 0 1 FALSE 804 378: 6, 200: 5, 244: 5, 286: 5
#> 4 sexo_paciente 1 0.999 FALSE 2 M: 866, F: 656
#> 5 respondedor_vinculo 0 1 FALSE 6 Mad: 1357, Pad: 116, Abu: 28, Tio: 12
#> 6 n_evaluacion 0 1 FALSE 6 1: 804, 2: 367, 3: 207, 4: 109
#> 7 evaluacion_tipo 12 0.992 FALSE 3 Eva: 955, Pri: 549, Eva: 7
#> 8 fecha_evaluacion 0 1 FALSE 337 202: 15, 202: 14, 202: 13, 202: 13
#> 9 comunicacion_interpretacion 0 1 FALSE 3 Sob: 838, Deb: 357, Ape: 328
#> 10 motora_gruesa_interpretacion 0 1 FALSE 3 Sob: 790, Deb: 460, Ape: 273
#> 11 motora_fina_interpretacion 0 1 FALSE 3 Sob: 897, Ape: 335, Deb: 291
#> 12 resolucion_problemas_interpretacion 0 1 FALSE 3 Sob: 915, Deb: 305, Ape: 303
#> 13 socio_individual_interpretacion 0 1 FALSE 3 Sob: 938, Deb: 293, Ape: 292
#>
#> ── Variable type: numeric ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
#> 1 edad_cronologica_meses 0 1 17.4 12.8 0 8 14 23 71 ▇▅▂▁▁
#> 2 semanas_prematurez 0 1 1.84 3.39 0 0 0 3 20 ▇▁▁▁▁
#> 3 edad_corregida_meses 0 1 17.0 12.9 -1 7 14 23 71 ▇▆▂▁▁
#> 4 asq3_meses 0 1 17.7 12.9 2 8 14 24 60 ▇▇▂▁▁
#> 5 comunicacion_q1 0 1 7.88 3.86 0 10 10 10 10 ▂▁▁▁▇
#> 6 comunicacion_q2 0 1 6.85 4.33 0 0 10 10 10 ▃▁▂▁▇
#> 7 comunicacion_q3 0 1 6.77 4.27 0 0 10 10 10 ▃▁▂▁▇
#> 8 comunicacion_q4 0 1 5.84 4.70 0 0 10 10 10 ▆▁▂▁▇
#> 9 comunicacion_q5 0 1 5.10 4.69 0 0 5 10 10 ▇▁▂▁▇
#> 10 comunicacion_q6 0 1 4.22 4.68 0 0 0 10 10 ▇▁▂▁▆
#> 11 comunicacion_total 0 1 36.6 17.6 0 25 40 50 60 ▃▂▅▅▇
#> 12 motora_gruesa_q1 0 1 8.28 3.57 0 10 10 10 10 ▂▁▁▁▇
#> 13 motora_gruesa_q2 0 1 7.72 3.92 0 5 10 10 10 ▂▁▁▁▇
#> 14 motora_gruesa_q3 0 1 6.53 4.56 0 0 10 10 10 ▅▁▁▁▇
#> 15 motora_gruesa_q4 0 1 6.43 4.62 0 0 10 10 10 ▅▁▁▁▇
#> 16 motora_gruesa_q5 0 1 5.64 4.74 0 0 10 10 10 ▆▁▁▁▇
#> 17 motora_gruesa_q6 0 1 4.95 4.84 0 0 5 10 10 ▇▁▁▁▇
#> 18 motora_gruesa_total 0 1 39.5 18.1 0 30 45 55 60 ▂▂▃▃▇
#> 19 motora_fina_q1 0 1 8.37 3.49 0 10 10 10 10 ▁▁▁▁▇
#> 20 motora_fina_q2 0 1 7.74 4.01 0 5 10 10 10 ▂▁▁▁▇
#> 21 motora_fina_q3 0 1 6.69 4.53 0 0 10 10 10 ▃▁▁▁▇
#> 22 motora_fina_q4 0 1 6.92 4.37 0 0 10 10 10 ▃▁▁▁▇
#> 23 motora_fina_q5 0 1 6.10 4.72 0 0 10 10 10 ▅▁▁▁▇
#> 24 motora_fina_q6 0 1 5.14 4.78 0 0 5 10 10 ▇▁▂▁▇
#> 25 motora_fina_total 0 1 40.9 15.1 0 30 45 50 60 ▁▂▃▅▇
#> 26 resolucion_problemas_q1 0 1 8.04 3.86 0 10 10 10 10 ▂▁▁▁▇
#> 27 resolucion_problemas_q2 0 1 7.29 4.30 0 5 10 10 10 ▃▁▁▁▇
#> 28 resolucion_problemas_q3 0 1 7.17 4.36 0 0 10 10 10 ▃▁▁▁▇
#> 29 resolucion_problemas_q4 0 1 6.38 4.66 0 0 10 10 10 ▅▁▁▁▇
#> 30 resolucion_problemas_q5 0 1 6.10 4.71 0 0 10 10 10 ▅▁▁▁▇
#> 31 resolucion_problemas_q6 0 1 5.14 4.88 0 0 5 10 10 ▇▁▁▁▇
#> 32 resolucion_problemas_total 0 1 40.1 14.9 0 30 40 50 60 ▁▂▃▅▇
#> 33 socio_individual_q1 0 1 7.71 3.98 0 5 10 10 10 ▂▁▁▁▇
#> 34 socio_individual_q2 0 1 7.94 3.83 0 10 10 10 10 ▂▁▁▁▇
#> 35 socio_individual_q3 0 1 7.37 4.21 0 5 10 10 10 ▂▁▁▁▇
#> 36 socio_individual_q4 0 1 6.38 4.55 0 0 10 10 10 ▅▁▂▁▇
#> 37 socio_individual_q5 0 1 6.36 4.60 0 0 10 10 10 ▅▁▁▁▇
#> 38 socio_individual_q6 0 1 6.12 4.66 0 0 10 10 10 ▅▁▁▁▇
#> 39 socio_individual_total 0 1 41.9 13.9 0 35 45 50 60 ▁▁▃▅▇
Despite the above results, we cannot ignore that there is more than one observation per subject, so it is necessary to consider each subject as the minimum unit of analysis. For this we will use the first observation for each subject.
descriptives_by_patient <- skim(
data = dataset[n_evaluacion == 1]
)
print(descriptives_by_patient)
#> ── Data Summary ────────────────────────
#> Values
#> Name dataset[n_evaluacion == 1...
#> Number of rows 804
#> Number of columns 55
#> Key paciente_id, fecha_evaluacion
#> _______________________
#> Column type frequency:
#> character 2
#> Date 1
#> factor 13
#> numeric 39
#> ________________________
#> Group variables None
#>
#> ── Variable type: character ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max empty n_unique whitespace
#> 1 diagnostico 4 0.995 18 100 0 34 0
#> 2 alteracion 13 0.984 9 25 0 6 0
#>
#> ── Variable type: Date ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max median n_unique
#> 1 fecha_nacimiento 0 1 2006-05-31 2108-02-13 2019-09-17 624
#>
#> ── Variable type: factor ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate ordered n_unique top_counts
#> 1 profesional_id 0 1 FALSE 4 2: 436, 4: 343, 1: 24, 3: 1
#> 2 profesional_especialidad 0 1 FALSE 3 Enf: 460, Kin: 343, Fon: 1
#> 3 paciente_id 0 1 FALSE 804 1: 1, 2: 1, 3: 1, 4: 1
#> 4 sexo_paciente 1 0.999 FALSE 2 M: 461, F: 342
#> 5 respondedor_vinculo 0 1 FALSE 5 Mad: 724, Pad: 63, Abu: 11, Tio: 4
#> 6 n_evaluacion 0 1 FALSE 1 1: 804, 2: 0, 3: 0, 4: 0
#> 7 evaluacion_tipo 12 0.985 FALSE 3 Pri: 532, Eva: 259, Eva: 1
#> 8 fecha_evaluacion 0 1 FALSE 235 202: 15, 202: 14, 202: 13, 202: 13
#> 9 comunicacion_interpretacion 0 1 FALSE 3 Sob: 467, Deb: 174, Ape: 163
#> 10 motora_gruesa_interpretacion 0 1 FALSE 3 Sob: 397, Deb: 260, Ape: 147
#> 11 motora_fina_interpretacion 0 1 FALSE 3 Sob: 449, Ape: 187, Deb: 168
#> 12 resolucion_problemas_interpretacion 0 1 FALSE 3 Sob: 466, Deb: 181, Ape: 157
#> 13 socio_individual_interpretacion 0 1 FALSE 3 Sob: 487, Deb: 163, Ape: 154
#>
#> ── Variable type: numeric ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
#> 1 edad_cronologica_meses 0 1 16.7 14.5 1 5 12 24.2 65 ▇▃▂▁▁
#> 2 semanas_prematurez 0 1 1.90 3.28 0 0 0 3 16 ▇▂▁▁▁
#> 3 edad_corregida_meses 0 1 16.3 14.6 -1 5 12 24 65 ▇▃▂▂▁
#> 4 asq3_meses 0 1 16.8 14.5 2 6 12 24 60 ▇▃▂▁▁
#> 5 comunicacion_q1 0 1 8.10 3.68 0 10 10 10 10 ▂▁▁▁▇
#> 6 comunicacion_q2 0 1 7.18 4.17 0 5 10 10 10 ▃▁▂▁▇
#> 7 comunicacion_q3 0 1 6.77 4.21 0 5 10 10 10 ▃▁▂▁▇
#> 8 comunicacion_q4 0 1 6.07 4.58 0 0 10 10 10 ▅▁▂▁▇
#> 9 comunicacion_q5 0 1 5.18 4.63 0 0 5 10 10 ▇▁▂▁▇
#> 10 comunicacion_q6 0 1 5.01 4.73 0 0 5 10 10 ▇▁▂▁▇
#> 11 comunicacion_total 0 1 38.3 17.2 0 30 40 50 60 ▂▂▃▅▇
#> 12 motora_gruesa_q1 0 1 8.25 3.55 0 10 10 10 10 ▂▁▁▁▇
#> 13 motora_gruesa_q2 0 1 7.41 4.06 0 5 10 10 10 ▂▁▁▁▇
#> 14 motora_gruesa_q3 0 1 6.45 4.55 0 0 10 10 10 ▅▁▁▁▇
#> 15 motora_gruesa_q4 0 1 6.18 4.66 0 0 10 10 10 ▅▁▁▁▇
#> 16 motora_gruesa_q5 0 1 6.04 4.62 0 0 10 10 10 ▅▁▂▁▇
#> 17 motora_gruesa_q6 0 1 5.04 4.82 0 0 5 10 10 ▇▁▁▁▇
#> 18 motora_gruesa_total 0 1 39.3 18.2 0 28.8 45 55 60 ▂▂▃▃▇
#> 19 motora_fina_q1 0 1 8.21 3.58 0 10 10 10 10 ▂▁▁▁▇
#> 20 motora_fina_q2 0 1 7.79 3.91 0 5 10 10 10 ▂▁▁▁▇
#> 21 motora_fina_q3 0 1 6.14 4.67 0 0 10 10 10 ▅▁▁▁▇
#> 22 motora_fina_q4 0 1 6.62 4.42 0 0 10 10 10 ▃▁▂▁▇
#> 23 motora_fina_q5 0 1 6.23 4.65 0 0 10 10 10 ▅▁▁▁▇
#> 24 motora_fina_q6 0 1 5.06 4.77 0 0 5 10 10 ▇▁▂▁▇
#> 25 motora_fina_total 0 1 40.0 15.4 0 30 40 50 60 ▂▂▅▅▇
#> 26 resolucion_problemas_q1 0 1 7.95 3.92 0 10 10 10 10 ▂▁▁▁▇
#> 27 resolucion_problemas_q2 0 1 7.37 4.24 0 5 10 10 10 ▂▁▁▁▇
#> 28 resolucion_problemas_q3 0 1 7.20 4.30 0 5 10 10 10 ▃▁▁▁▇
#> 29 resolucion_problemas_q4 0 1 6.29 4.68 0 0 10 10 10 ▅▁▁▁▇
#> 30 resolucion_problemas_q5 0 1 6.01 4.71 0 0 10 10 10 ▅▁▁▁▇
#> 31 resolucion_problemas_q6 0 1 4.92 4.86 0 0 5 10 10 ▇▁▁▁▇
#> 32 resolucion_problemas_total 0 1 39.7 15.5 0 30 40 50 60 ▂▂▃▅▇
#> 33 socio_individual_q1 0 1 7.54 4.07 0 5 10 10 10 ▂▁▁▁▇
#> 34 socio_individual_q2 0 1 7.74 3.97 0 5 10 10 10 ▂▁▁▁▇
#> 35 socio_individual_q3 0 1 7.57 4.12 0 5 10 10 10 ▂▁▁▁▇
#> 36 socio_individual_q4 0 1 6.38 4.47 0 0 10 10 10 ▅▁▂▁▇
#> 37 socio_individual_q5 0 1 6.15 4.66 0 0 10 10 10 ▅▁▁▁▇
#> 38 socio_individual_q6 0 1 6.26 4.60 0 0 10 10 10 ▅▁▁▁▇
#> 39 socio_individual_total 0 1 41.6 14.0 0 35 45 50 60 ▁▁▃▅▇
Let’s try the same but only with the patients with congenital hypotonia (ch).
ch_patients <- skim(
data = dataset[n_evaluacion == 1 & diagnostico %like% "hipotonia"]
)
print(ch_patients)
#> ── Data Summary ────────────────────────
#> Values
#> Name dataset[n_evaluacion == 1...
#> Number of rows 234
#> Number of columns 55
#> Key paciente_id, fecha_evaluacion
#> _______________________
#> Column type frequency:
#> character 2
#> Date 1
#> factor 13
#> numeric 39
#> ________________________
#> Group variables None
#>
#> ── Variable type: character ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max empty n_unique whitespace
#> 1 diagnostico 0 1 26 26 0 1 0
#> 2 alteracion 0 1 19 19 0 1 0
#>
#> ── Variable type: Date ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate min max median n_unique
#> 1 fecha_nacimiento 0 1 2016-10-28 2022-01-18 2020-03-10 212
#>
#> ── Variable type: factor ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate ordered n_unique top_counts
#> 1 profesional_id 0 1 FALSE 3 2: 167, 4: 63, 1: 4, 3: 0
#> 2 profesional_especialidad 0 1 FALSE 2 Enf: 171, Kin: 63, Fon: 0
#> 3 paciente_id 0 1 FALSE 234 3: 1, 45: 1, 62: 1, 69: 1
#> 4 sexo_paciente 0 1 FALSE 2 M: 140, F: 94
#> 5 respondedor_vinculo 0 1 FALSE 4 Mad: 218, Pad: 11, Abu: 3, Tio: 2
#> 6 n_evaluacion 0 1 FALSE 1 1: 234, 2: 0, 3: 0, 4: 0
#> 7 evaluacion_tipo 2 0.991 FALSE 2 Pri: 141, Eva: 91, Eva: 0
#> 8 fecha_evaluacion 0 1 FALSE 135 202: 5, 202: 5, 202: 4, 202: 4
#> 9 comunicacion_interpretacion 0 1 FALSE 3 Sob: 141, Ape: 51, Deb: 42
#> 10 motora_gruesa_interpretacion 0 1 FALSE 3 Deb: 92, Sob: 89, Ape: 53
#> 11 motora_fina_interpretacion 0 1 FALSE 3 Sob: 128, Deb: 54, Ape: 52
#> 12 resolucion_problemas_interpretacion 0 1 FALSE 3 Sob: 131, Deb: 56, Ape: 47
#> 13 socio_individual_interpretacion 0 1 FALSE 3 Sob: 143, Ape: 49, Deb: 42
#>
#> ── Variable type: numeric ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
#> 1 edad_cronologica_meses 0 1 11.4 9.98 1 4 8 17 48 ▇▃▂▁▁
#> 2 semanas_prematurez 0 1 0.812 2.01 0 0 0 0 14 ▇▁▁▁▁
#> 3 edad_corregida_meses 0 1 11.2 10.0 0 3.25 8 17 48 ▇▅▂▁▁
#> 4 asq3_meses 0 1 11.7 9.99 2 4 8 18 48 ▇▃▁▁▁
#> 5 comunicacion_q1 0 1 8.33 3.50 0 10 10 10 10 ▁▁▁▁▇
#> 6 comunicacion_q2 0 1 7.16 4.19 0 5 10 10 10 ▃▁▂▁▇
#> 7 comunicacion_q3 0 1 6.82 4.09 0 5 10 10 10 ▃▁▃▁▇
#> 8 comunicacion_q4 0 1 6.65 4.44 0 0 10 10 10 ▃▁▂▁▇
#> 9 comunicacion_q5 0 1 5.21 4.70 0 0 5 10 10 ▇▁▂▁▇
#> 10 comunicacion_q6 0 1 5.26 4.78 0 0 5 10 10 ▇▁▂▁▇
#> 11 comunicacion_total 0 1 39.4 16.6 0 30 40 50 60 ▂▂▅▅▇
#> 12 motora_gruesa_q1 0 1 8.23 3.55 0 10 10 10 10 ▂▁▁▁▇
#> 13 motora_gruesa_q2 0 1 6.97 4.19 0 5 10 10 10 ▃▁▂▁▇
#> 14 motora_gruesa_q3 0 1 5.73 4.69 0 0 10 10 10 ▆▁▂▁▇
#> 15 motora_gruesa_q4 0 1 5.58 4.77 0 0 10 10 10 ▆▁▁▁▇
#> 16 motora_gruesa_q5 0 1 5.53 4.71 0 0 7.5 10 10 ▆▁▂▁▇
#> 17 motora_gruesa_q6 0 1 4.51 4.82 0 0 0 10 10 ▇▁▁▁▆
#> 18 motora_gruesa_total 0 1 36.4 17.7 0 25 40 50 60 ▃▂▆▅▇
#> 19 motora_fina_q1 0 1 8.38 3.46 0 10 10 10 10 ▁▁▁▁▇
#> 20 motora_fina_q2 0 1 7.82 3.90 0 5 10 10 10 ▂▁▁▁▇
#> 21 motora_fina_q3 0 1 5.75 4.79 0 0 10 10 10 ▆▁▁▁▇
#> 22 motora_fina_q4 0 1 6.69 4.45 0 0 10 10 10 ▃▁▁▁▇
#> 23 motora_fina_q5 0 1 6.65 4.49 0 0 10 10 10 ▃▁▁▁▇
#> 24 motora_fina_q6 0 1 5.04 4.77 0 0 5 10 10 ▇▁▂▁▇
#> 25 motora_fina_total 0 1 40.3 15.0 0 30 40 50 60 ▁▂▅▅▇
#> 26 resolucion_problemas_q1 0 1 8.08 3.87 0 10 10 10 10 ▂▁▁▁▇
#> 27 resolucion_problemas_q2 0 1 7.35 4.30 0 5 10 10 10 ▃▁▁▁▇
#> 28 resolucion_problemas_q3 0 1 6.86 4.43 0 0 10 10 10 ▃▁▁▁▇
#> 29 resolucion_problemas_q4 0 1 6.15 4.63 0 0 10 10 10 ▅▁▁▁▇
#> 30 resolucion_problemas_q5 0 1 5.58 4.79 0 0 10 10 10 ▆▁▁▁▇
#> 31 resolucion_problemas_q6 0 1 4.85 4.87 0 0 5 10 10 ▇▁▁▁▇
#> 32 resolucion_problemas_total 0 1 38.8 15.6 0 30 40 50 60 ▂▂▅▅▇
#> 33 socio_individual_q1 0 1 7.37 4.17 0 5 10 10 10 ▂▁▁▁▇
#> 34 socio_individual_q2 0 1 8.21 3.67 0 10 10 10 10 ▂▁▁▁▇
#> 35 socio_individual_q3 0 1 7.88 3.95 0 10 10 10 10 ▂▁▁▁▇
#> 36 socio_individual_q4 0 1 6.67 4.35 0 0 10 10 10 ▃▁▂▁▇
#> 37 socio_individual_q5 0 1 6.09 4.65 0 0 10 10 10 ▅▁▁▁▇
#> 38 socio_individual_q6 0 1 5.94 4.70 0 0 10 10 10 ▅▁▁▁▇
#> 39 socio_individual_total 0 1 42.2 12.7 0 35 45 50 60 ▁▁▅▅▇