Lección 6 Descripción de la muestra de casos según sintomatología

Hubo:

  • 388 infecciones asintomáticas (49.05%)

  • 329 infecciones leves (41.59%)

  • 74 infecciones graves (9.36%)

Síntomas=ordered(c("Asintomática", "Leve", "Grave"),levels=c("Asintomática", "Leve", "Grave"))
valor=as.vector(prop.table(table(Sint)))
data <- data.frame(Síntomas,valor)

ggplot(data, aes(x=Síntomas, y=valor,fill=Síntomas)) + 
  geom_bar(stat="identity")+
  xlab("")+
  ylab("")+
  scale_fill_brewer(palette = "Dark2") +
  theme(legend.position="none")
\s

Figura 6.1:

Trim=Casos$Trim.Diag
NA_T=length(Trim[is.na(Trim)])
NA_S=length(Sint[is.na(Sint)])

DF=data.frame(Trimestre=Trim,Síntomas=Sint)
taula=table(DF)[,1:3]
proptaula=round(100*prop.table(table(DF)),2)[,1:3]

EEExt=cbind(c(as.vector(taula[,1]),sum(taula[,1])),
            c(as.vector(proptaula[,1]), round(100*sum(taula[,1])/n_I,2)),
            c(as.vector(taula[,2]),sum(taula[,2])),
            c(as.vector(proptaula[,2]), round(100*sum(taula[,2])/n_I,2)),
            c(as.vector(taula[,3]),sum(taula[,3])),
            c(as.vector(proptaula[,3]), round(100*sum(taula[,3])/n_I,2))
            )
rownames(EEExt)=c("1er trimestre", "2o trimestre", "3er trimestre","Total")
colnames(EEExt)=Columnes.Sint

EEExt %>%
  kbl() %>%
  kable_styling() %>%     
  scroll_box(width="100%", box_css="border: 0px;")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%)
1er trimestre 12 1.52 38 4.80 0 0.00
2o trimestre 25 3.16 89 11.25 13 1.64
3er trimestre 351 44.37 202 25.54 61 7.71
Total 388 23.26 329 19.72 74 4.44
Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=3),levels=c("Asintomática", "Leve", "Grave"))
Grupo=rep(c("1er trimestre", "2o trimestre", "3er trimestre") , 3)
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  xlab("Trimestre de infección")+
  ylab("")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.2:

6.1 Antecedentes maternos

6.1.1 Edades

I=Casos$Edad._años_
DF=data.frame(Edad=I,Sint=Casos$SINTOMAS_DIAGNOSTICO)



DF %>%
  ggplot( aes(x=Sint, y=Edad, fill=Sint)) +
    geom_violin(width=1) +
    geom_boxplot(width=0.1, color="black", alpha=0.2,outlier.fill="black",
               outlier.size=1) +
    theme(
      legend.position="none",
      plot.title=element_text(size=11)
    ) +
    xlab("")+
  ylab("Edades (años)")+
 scale_fill_brewer(palette="Dark2")

I1=I[Casos$SINTOMAS_DIAGNOSTICO=="Asintomática"]
I2=I[Casos$SINTOMAS_DIAGNOSTICO=="Leve"]
I3=I[Casos$SINTOMAS_DIAGNOSTICO=="Grave"]

Dades=rbind(c(round(min(I1,na.rm=TRUE),1),round(max(I1,na.rm=TRUE),1), round(mean(I1,na.rm=TRUE),1),round(median(I1,na.rm=TRUE),1),round(quantile(I1,c(0.25,0.75),na.rm=TRUE),1), round(sd(I1,na.rm=TRUE),1)),
            c(round(min(I2,na.rm=TRUE),1),round(max(I2,na.rm=TRUE),1), round(mean(I2,na.rm=TRUE),1),round(median(I2,na.rm=TRUE),1),round(quantile(I2,c(0.25,0.75),na.rm=TRUE),1), round(sd(I2,na.rm=TRUE),1)),
            c(round(min(I3,na.rm=TRUE),1),round(max(I3,na.rm=TRUE),1), round(mean(I3,na.rm=TRUE),1),round(median(I3,na.rm=TRUE),1),round(quantile(I3,c(0.25,0.75),na.rm=TRUE),1), round(sd(I3,na.rm=TRUE),1)))

colnames(Dades)=c("Edad mínima","Edad máxima","Edad  media", "Edad  mediana", "1er cuartil", "3er cuartil", "Desv. típica")
rownames(Dades)=c("Asintomática", "Leve","Grave")

Dades %>%
  kbl() %>%
  kable_styling() %>%     
  scroll_box(width="100%", box_css="border: 0px;")
Edad mínima Edad máxima Edad media Edad mediana 1er cuartil 3er cuartil Desv. típica
Asintomática 18 46 31.3 32.0 27.0 36 6.3
Leve 18 47 30.2 30.0 25.0 34 6.2
Grave 18 44 32.3 32.5 28.2 37 5.7
  • Ajuste de las edades maternas a distribuciones normales: test de Shapiro-Wilks, p-valores \(5\times 10^{-5}\), \(0.004\) y 0.5575, respectivamente

  • Edades medias: test de Kruskal-Wallis, p-valor 0.0050556

  • Desviaciones típicas: test de Fligner-Killeen, p-valor 0.528

  • Contrastes post hoc por parejas

Contraste=c("Asíntomatica vs Leve","Asíntomatica vs Grave", "Leve vs Grave")

pvals=round(3*c(t.test(I1,I2,var.equal=TRUE)$p.value, t.test(I1,I3,var.equal=TRUE)$p.value,
            t.test(I2,I3,var.equal=TRUE)$p.value),4)
dades=data.frame(Contraste=Contraste,"p-valor"=pvals)
dades %>%
  kbl() %>%
  kable_styling() %>%     
  scroll_box(width="100%", box_css="border: 0px;")
Contraste p.valor
Asíntomatica vs Leve 0.0501
Asíntomatica vs Grave 0.6159
Leve vs Grave 0.0222

En tablas como la que sigue:

  • p-valor: El p-valor del test \(\chi^2\) de si la distribución de la fila correspondiente en casos sintomáticos es la misma que la del global de la muestra de casos, ajustado por Bonferroni cuando haya más de 2 filas

  • Tipo: El tipo de test \(\chi^2\), paramétrico, siempre que es posible, o Montecarlo, cuando no se dan las condiciones necesarias para que tenga sentido efectuar el test paramétrico

I.cut=cut(I,breaks=c(0,30,40,100),labels=c("18-30","31-40",">40"))
Tabla.DMCasosm(I.cut, c("18-30", "31-40", ">40"))
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
18-30 165 42.6 170 51.7 26 35.1 0.025683 Paramétrico
31-40 201 51.9 140 42.6 44 59.5 0.019933 Paramétrico
>40 21 5.4 19 5.8 4 5.4 1.000000 Montecarlo
Datos perdidos 1 0 0
Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=3),levels=c("Asintomática", "Leve", "Grave"))
Grupo=ordered(rep(c("18-30","31-40",">40") , 3),levels=c("18-30","31-40",">40"))

taula=table(data.frame(Edad=I.cut,Síntomas=Sint))
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  xlab("Edad")+
  ylab("")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.3:

  • Asociación entre los grupos de sintomatología y las franjas de edad: test \(\chi^2\), p-valor 0.035

6.1.2 Etnia

I=Casos$Etnia
I[I=="Asia"]="Asiática"
I=factor(I)
Tabla.DMCasosm(I,c("Árabe", "Asiática", "Blanca", "Latinoamericana","Negra"))
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Árabe 53 13.7 25 7.6 9 12.2 0.168410 Paramétrico
Asiática 14 3.6 6 1.8 5 6.8 0.339466 Montecarlo
Blanca 219 56.6 145 44.2 23 31.1 0.000110 Paramétrico
Latinoamericana 85 22.0 144 43.9 36 48.6 0.000000 Paramétrico
Negra 16 4.1 8 2.4 1 1.4 1.000000 Montecarlo
Datos perdidos 1 1 0
Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=5),levels=c("Asintomática", "Leve", "Grave"))
Grupo=ordered(rep(c("Árabe", "Asiática", "Blanca", "Latinoamericana","Negra") , 3),levels=c("Árabe", "Asiática", "Blanca", "Latinoamericana","Negra"))

taula=table(data.frame(Etnia=I,Síntomas=Sint))
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  xlab("Etnia")+
  ylab("")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.4:

  • Asociación entre los grupos de sintomatología y las etnias: test \(\chi^2\), p-valor \(4\times 10^{-9}\)

6.1.3 Hábito tabáquico

taula=table(data.frame(Casos$FUMADORA_CAT,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$FUMADORA_CAT,"Fumadoras", "No fumadoras")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Fumadoras 34 9.2 19 5.8 4 5.5 0.196205 Paramétrico
No fumadoras 336 90.8 306 94.2 69 94.5
Datos perdidos 18 4 1
Barplot.DGS(Casos$FUMADORA_CAT,"Fumadoras", "No fumadoras")
\s

Figura 6.5:

  • Potencia del test: 0.346

6.1.4 Obesidad

taula=table(data.frame(Casos$Obesidad,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Obesidad,"Obesas", "No obesas")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Obesas 70 18 58 17.6 16 21.6 0.718795 Paramétrico
No obesas 318 82 271 82.4 58 78.4
Datos perdidos 0 0 0
Barplot.DGS(Casos$Obesidad,"Obesas", "No obesas")
\s

Figura 6.6:

  • Potencia del test: 0.103

6.1.5 Hipertensión pregestacional

taula=table(data.frame(Casos$Hipertensión.pregestacional,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Hipertensión.pregestacional,"HTA", "No HTA")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
HTA 6 1.5 3 0.9 2 2.7 0.438356 Montecarlo
No HTA 382 98.5 326 99.1 72 97.3
Datos perdidos 0 0 0
Barplot.DGS(Casos$Hipertensión.pregestacional,"HTA", "No HTA")
\s

Figura 6.7:

  • Potencia del test: 0.183

6.1.6 Diabetes

taula=table(data.frame(Casos$DIABETES,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$DIABETES,"DM", "No DM")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
DM 10 2.6 7 2.1 4 5.4 0.29697 Montecarlo
No DM 378 97.4 322 97.9 70 94.6
Datos perdidos 0 0 0
Barplot.DGS(Casos$DIABETES,"DM", "No DM")
\s

Figura 6.8:

  • Potencia del test: 0.276

6.1.7 Cardiopatía

taula=table(data.frame(Casos$Enfermedad.cardiaca.crónica,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Enfermedad.cardiaca.crónica,"ECC", "No ECC")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
ECC 2 0.5 4 1.2 2 2.7 0.176782 Montecarlo
No ECC 386 99.5 325 98.8 72 97.3
Datos perdidos 0 0 0
Barplot.DGS(Casos$Enfermedad.cardiaca.crónica,"ECC", "No ECC")
\s

Figura 6.9:

  • Potencia del test: 0.341

6.1.8 Enfermedad pulmonar crónica

INA=Casos$Enfermedad.pulmonar.crónica.no.asma
IA=Casos$Diagnóstico.clínico.de.Asma
I.EPC=rep(NA,length(Sint))
for (i in 1:length(Sint)){I.EPC[i]=max(INA[i],IA[i],na.rm=TRUE)}
taula=table(data.frame(I.EPC,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(I.EPC,"EPC", "No EPC")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
EPC 10 2.6 22 6.7 4 5.4 0.027897 Montecarlo
No EPC 378 97.4 307 93.3 70 94.6
Datos perdidos 0 0 0
Barplot.DGS(I.EPC,"EPC", "No EPC")
\s

Figura 6.10:

  • Potencia del test: 0.659

6.1.9 Gestación múltiple

taula=table(data.frame(Casos$Gestación.Múltiple,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Gestación.Múltiple,"Gestación múltiple", "Gestación única")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Gestación múltiple 6 1.5 5 1.5 2 2.7 0.831917 Montecarlo
Gestación única 382 98.5 324 98.5 72 97.3
Datos perdidos 0 0 0
Barplot.DGS(Casos$Gestación.Múltiple,"Gestación múltiple", "Gestación única")
\s

Figura 6.11:

  • Potencia del test: 0.095

6.1.10 Paridad

taula=table(data.frame(Casos$NULIPARA,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$NULIPARA, "Nulípara","Multípara")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Nulípara 145 37.4 127 38.8 15 20.3 0.009484 Paramétrico
Multípara 243 62.6 200 61.2 59 79.7
Datos perdidos 0 2 0
Barplot.DGS(Casos$NULIPARA, "Nulípara","Multípara")
\s

Figura 6.12:

  • Potencia del test: 0.786

6.2 Desenlaces

6.2.1 Anomalía congénita

taula=table(data.frame(Casos$Diagnóstico.de.malformación.ecográfica._.semana.20._,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Diagnóstico.de.malformación.ecográfica._.semana.20._,"Anomalías congénitas", "No anomalías congénitas")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Anomalías congénitas 5 1.3 8 2.5 1 1.4 0.584442 Montecarlo
No anomalías congénitas 367 98.7 312 97.5 71 98.6
Datos perdidos 16 9 2
Barplot.DGS(Casos$Diagnóstico.de.malformación.ecográfica._.semana.20._,"Anomalías congénitas", "No anomalías congénitas")
\s

Figura 6.13:

  • Potencia del test: 0.166

6.2.2 Retraso del crecimiento intrauterino

taula=table(data.frame(Casos$Defecto.del.crecimiento.fetal..en.tercer.trimestre._.CIR._.,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Defecto.del.crecimiento.fetal..en.tercer.trimestre._.CIR._.,"RCIU", "No RCIU")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
RCIU 16 4.1 10 3 1 1.4 0.418558 Montecarlo
No RCIU 372 95.9 319 97 73 98.6
Datos perdidos 0 0 0
Barplot.DGS(Casos$Defecto.del.crecimiento.fetal..en.tercer.trimestre._.CIR._.,"RCIU", "No RCIU")
\s

Figura 6.14:

  • Potencia del test: 0.196

6.2.3 Diabetes gestacional

taula=table(data.frame(Casos$Diabetes.gestacional,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Diabetes.gestacional,"DG", "No DG")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
DG 29 7.5 21 6.4 9 12.2 0.231845 Paramétrico
No DG 359 92.5 308 93.6 65 87.8
Datos perdidos 0 0 0
Barplot.DGS(Casos$Diabetes.gestacional,"DG", "No DG")
\s

Figura 6.15:

  • Potencia del test: 0.314

6.2.4 Hipertensión gestacional

taula=table(data.frame(Casos$Hipertensión.gestacional,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Hipertensión.gestacional,"HG", "No HG")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
HG 11 2.8 8 2.4 3 4.1 0.819118 Montecarlo
No HG 377 97.2 321 97.6 71 95.9
Datos perdidos 0 0 0
Barplot.DGS(Casos$Hipertensión.gestacional,"HG", "No HG")
\s

Figura 6.16:

  • Potencia del test: 0.098

6.2.5 Rotura prematura de membranas

taula=table(data.frame(Casos$Bolsa.rota.anteparto,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$Bolsa.rota.anteparto,"RPM", "No RPM")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
RPM 50 12.9 51 15.5 10 13.5 0.598283 Paramétrico
No RPM 338 87.1 278 84.5 64 86.5
Datos perdidos 0 0 0
Barplot.DGS(Casos$Bolsa.rota.anteparto,"RPM", "No RPM")
\s

Figura 6.17:

  • Potencia del test: 0.135

6.2.6 Preeclampsia

taula=table(data.frame(Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL,"PE", "No PE")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
PE 17 4.4 19 5.8 4 5.4 0.705729 Montecarlo
No PE 371 95.6 310 94.2 70 94.6
Datos perdidos 0 0 0
Barplot.DGS(Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL,"PE", "No PE")
\s

Figura 6.18:

  • Potencia del test: 0.11

6.2.7 Preeclampsia con criterios de gravedad

I=Casos[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1,]$Preeclampsia.grave_HELLP_ECLAMPSIA
IA=Casos[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1 & Casos$SINTOMAS_DIAGNOSTICO=="Asintomática",]$Preeclampsia.grave_HELLP_ECLAMPSIA
IL=Casos[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1 & Casos$SINTOMAS_DIAGNOSTICO=="Leve",]$Preeclampsia.grave_HELLP_ECLAMPSIA
IG=Casos[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1 & Casos$SINTOMAS_DIAGNOSTICO=="Grave",]$Preeclampsia.grave_HELLP_ECLAMPSIA

taula=table(data.frame(I,Sint[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1]))
Tabla.DMCasosr(IA,IL,IG,"PE con CG", "PE sin CG")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
PE con CG 2 11.8 7 36.8 2 50 0.150485 Montecarlo
PE sin CG 15 88.2 12 63.2 2 50
Datos perdidos 0 0 0
Barplot.DGSalt(I,Sint[Casos$PREECLAMPSIA_ECLAMPSIA_TOTAL==1],"PE con CG", "PE sin CG")

  • Potencia del test: 0.412

6.2.8 Eventos hemorrágicos

taula=table(data.frame(Casos$EVENTOS_HEMORRAGICOS_TOTAL,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$EVENTOS_HEMORRAGICOS_TOTAL,"Eventos hemorrágicos", "No eventos hemorrágicos")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Eventos hemorrágicos 12 3.1 23 7 5 6.8 0.042396 Montecarlo
No eventos hemorrágicos 376 96.9 306 93 69 93.2
Datos perdidos 0 0 0
Barplot.DGS(Casos$EVENTOS_HEMORRAGICOS_TOTAL,"Eventos hemorrágicos", "No eventos hemorrágicos")
\s

Figura 6.19:

  • Asociación entre los grupos de sintomatología y evento hemorrágico: test \(\chi^2\), p-valor 0.047

  • Test de diferencia en la tendencia de la gravedad respecto del global: p-valor 0.0626

  • Potencia del test: 0.594

6.2.9 Hemorragia postparto

I=Casos$Hemorragia.postparto
I.sino=I
I.sino[!is.na(I.sino)& I.sino!="No"]="Sí"
taula=table(data.frame(I.sino,Sint))[c(2,1) ,1:3]

Tabla.DMCasos(I.sino,"HPP", "No HPP")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
HPP 9 2.4 19 5.8 4 5.5 0.068493 Montecarlo
No HPP 369 97.6 309 94.2 69 94.5
Datos perdidos 10 1 1
Barplot.DGS(I.sino,"HPP", "No HPP")
\s

Figura 6.20:

  • Potencia del test: 0.551
I=ordered(I,levels=names(table(I))[c(2,3,1,4)])
Tabla.DMCasosm(I,c("Tto. médico",
  "Tto. Qx. conservador" ,             
"No") ,r=6)
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Tto. médico 1 0.3 4 1.2 0 0.0 0.686931 Montecarlo
Tto. Qx. conservador 369 97.6 309 94.2 69 94.5 0.215678 Montecarlo
No 8 2.1 15 4.6 4 5.5 0.327267 Montecarlo
Datos perdidos 10 1 1
DF=data.frame(Factor=I,Síntomas=Sint)
taula=table(DF)

Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=3),levels=c("Asintomática", "Leve", "Grave"))
Grupo=ordered(rep(c("Tto. médico",
  "Tto. Qx. conservador" ,          
"No") , 3),levels=c("Tto. médico",
  "Tto. Qx. conservador" ,           
"No"))
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  ylab("")+
  xlab("")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.21:

  • Asociación entre los grupos de sintomatología y el tipo de hemorragia postparto: test \(\chi^2\) de Montecarlo, p-valor 0.109

  • Potencia del test: 0.556

6.2.10 Eventos trombóticos

taula=table(data.frame(Casos$EVENTOS_TROMBO_TOTALES,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$EVENTOS_TROMBO_TOTALES,"Eventos trombóticos", "No eventos trombóticos")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Eventos trombóticos 1 0.3 0 0 4 5.4 6e-04 Montecarlo
No eventos trombóticos 387 99.7 329 100 70 94.6
Datos perdidos 0 0 0
Barplot.DGS(Casos$EVENTOS_TROMBO_TOTALES,"Eventos trombóticos", "No eventos trombóticos")
\s

Figura 6.22:

  • Potencia del test: 0.999

6.2.11 UCI materna (Sí-No)

taula=table(data.frame(Casos$UCI,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$UCI,"UCI", "No UCI")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
UCI 1 0.3 2 0.6 10 13.5 1e-04 Montecarlo
No UCI 387 99.7 327 99.4 64 86.5
Datos perdidos 0 0 0
Barplot.DGS(Casos$UCI,"UCI", "No UCI")
\s

Figura 6.23:

  • Potencia del test: 1

6.2.12 UCI materna (antes-después)

I=Casos$UCI_ANTES.DESPUES.DEL.PARTO[Casos$UCI==1]
IA=Casos[Casos$UCI==1 & Casos$SINTOMAS_DIAGNOSTICO=="Asintomática",]$UCI_ANTES.DESPUES.DEL.PARTO
IA=factor(IA,levels=c("ANTES DEL PARTO","DESPUES DEL PARTO"))
IL=Casos[Casos$UCI==1 & Casos$SINTOMAS_DIAGNOSTICO=="Leve",]$UCI_ANTES.DESPUES.DEL.PARTO
IL=factor(IL,levels=c("ANTES DEL PARTO","DESPUES DEL PARTO"))
IG=Casos[Casos$UCI==1 & Casos$SINTOMAS_DIAGNOSTICO=="Grave",]$UCI_ANTES.DESPUES.DEL.PARTO
IG=factor(IG,levels=c("ANTES DEL PARTO","DESPUES DEL PARTO"))

taula=table(data.frame(I,Sint[Casos$UCI==1]))
Tabla.DMCasosr(IA,IL,IG,"UCI antes del parto", "UCI después del parto")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
UCI antes del parto 1 100 0 0 6 60 0.318268 Montecarlo
UCI después del parto 0 0 2 100 4 40
Datos perdidos 0 0 0
Barplot.DGSalt(I,Sint[Casos$UCI==1],"UCI antes del parto", "UCI después del parto")

  • Potencia del test: 0.354

6.2.13 Prematuridad

taula=table(data.frame(Casos$PREMATURO,Sint))[c(2,1) ,1:3]
Tabla.DMCasos(Casos$PREMATURO,"Prematuro", "A término")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Prematuro 25 6.4 26 7.9 14 18.9 0.001582 Paramétrico
A término 363 93.6 303 92.1 60 81.1
Datos perdidos 0 0 0
Barplot.DGS(Casos$PREMATURO,"Prematuro", "A término")
\s

Figura 6.24:

  • Potencia del test: 0.906

6.2.14 Inicio de parto

I=Casos$Inicio.de.parto
I=factor(I,levels=c("Espontáneo", "Inducido", "Cesárea"),ordered=TRUE)
DF=data.frame(Factor=I,Síntomas=Sint)
taula=table(DF)
Tabla.DMCasosm(I,c("Espontáneo", "Inducido","Cesárea programada"))
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Espontáneo 223 57.5 174 52.9 32 43.2 0.193424 Paramétrico
Inducido 146 37.6 129 39.2 28 37.8 1.000000 Paramétrico
Cesárea programada 19 4.9 26 7.9 14 18.9 0.000396 Paramétrico
Datos perdidos 0 0 0
Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=3),levels=c("Asintomática", "Leve", "Grave"))
Grupo=ordered(rep(rownames(EEExt)[1:3] , 3),levels=rownames(EEExt)[1:3])
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  ylab("")+
  xlab("Inicio de parto")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.25:

  • Asociación entre los grupos de sintomatología y el inicio de parto: test \(\chi^2\), p-valor \(7\times 10^{-4}\)

6.2.15 Tipo de parto

I.In=Casos$Inicio.de.parto
I.In[I.In=="Cesárea"]="Cesárea programada"
I=Casos$Tipo.de.parto
I[I.In=="Cesárea programada"]="Cesárea programada"
I[I=="Cesárea"]="Cesárea urgente"

I=factor(I,levels=c("Eutocico", "Instrumental", "Cesárea programada", "Cesárea urgente"),ordered=TRUE)
DF=data.frame(Factor=I,Síntomas=Sint)
taula=table(DF)
Tabla.DMCasosm(I,c("Eutócico", "Instrumental", "Cesárea programada", "Cesárea urgente"))
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Eutócico 255 65.7 228 69.3 44 59.5 0.933348 Paramétrico
Instrumental 40 10.3 32 9.7 5 6.8 1.000000 Paramétrico
Cesárea programada 19 4.9 26 7.9 14 18.9 0.000529 Paramétrico
Cesárea urgente 74 19.1 43 13.1 11 14.9 0.356862 Paramétrico
Datos perdidos 0 0 0
Síntomas=ordered(rep(c("Asintomática", "Leve", "Grave"), each=4),levels=c("Asintomática", "Leve", "Grave"))
Grupo=ordered(rep(c("Eutócico", "Instrumental", "Cesárea programada", "Cesárea urgente") , 3),levels=c("Eutócico", "Instrumental", "Cesárea programada", "Cesárea urgente"))
valor=as.vector(prop.table(taula, margin=1))
data <- data.frame(Grupo,Síntomas,valor)

ggplot(data, aes(fill=Síntomas, y=valor, x=Grupo)) + 
  geom_bar(position="dodge", stat="identity")+
  ylab("")+
  xlab("Tipo de parto")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.26:

  • Asociación entre los grupos de sintomatología y tipos de parto: test \(\chi^2\), p-valor \(0.001\)

  • Asociación entre los grupos de sintomatología y tipos de parto diferentes de la cesárea programada: test \(\chi^2\), p-valor 0.343

6.2.16 APGAR

I=c(Casos$APGAR.5...126,CasosGM$APGAR.5...150)
I[I==19]=NA
I=cut(I,breaks=c(-1,7,20),labels=c("0-7","8-10"))
I=ordered(I,levels=c("8-10","0-7"))
SintN=c(Casos$SINTOMAS_DIAGNOSTICO,CasosGM$SINTOMAS_DIAGNOSTICO)

taula=table(data.frame(I,SintN))[c(2,1) ,1:3]
Tabla.DMCasos(I,"Apgar.5≤7","Apgar.5≥8")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Apgar.5≤7 11 2.9 11 3.3 2 2.7 0.950005 Montecarlo
Apgar.5≥8 372 97.1 324 96.7 71 97.3
Datos perdidos 8 4 1
Barplot.DGSalt(I,SintN,"Apgar.5≤7","Apgar.5≥8")

  • Potencia del test: 0.063

6.2.17 Sintomatología vs UCI neonato

I=c(Casos[Casos$Feto.muerto.intraútero=="No",]$Ingreso.en.UCIN,CasosGM[CasosGM$Feto.vivo=="Sí",]$Ingreso.en.UCI)

IA=c(Casos[Casos$SINTOMAS_DIAGNOSTICO=="Asintomática"&Casos$Feto.muerto.intraútero=="No",]$Ingreso.en.UCIN,CasosGM[CasosGM$SINTOMAS_DIAGNOSTICO=="Asintomática" & CasosGM$Feto.vivo=="Sí",]$Ingreso.en.UCI)

IL=c(Casos[Casos$SINTOMAS_DIAGNOSTICO=="Leve"&Casos$Feto.muerto.intraútero=="No",]$Ingreso.en.UCIN,CasosGM[CasosGM$SINTOMAS_DIAGNOSTICO=="Leve" & CasosGM$Feto.vivo=="Sí",]$Ingreso.en.UCI)

IG=c(Casos[Casos$SINTOMAS_DIAGNOSTICO=="Grave"&Casos$Feto.muerto.intraútero=="No",]$Ingreso.en.UCIN,CasosGM[CasosGM$SINTOMAS_DIAGNOSTICO=="Grave" & CasosGM$Feto.vivo=="Sí",]$Ingreso.en.UCI)

SintN=c(Casos[Casos$Feto.muerto.intraútero=="No",]$SINTOMAS_DIAGNOSTICO,CasosGM[CasosGM$Feto.vivo=="Sí",]$SINTOMAS_DIAGNOSTICO)

taula=table(data.frame(I,SintN))[c(2,1) ,1:3]
Tabla.DMCasosr(IA,IL,IG,"UCIN", "No UCIN")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
UCIN 28 7.3 23 7.1 13 17.6 0.008392 Paramétrico
No UCIN 354 92.7 302 92.9 61 82.4
Datos perdidos 8 4 1
Barplot.DGSalt(I,SintN,"UCIN", "No UCIN")

  • Potencia del test: 0.797

6.2.18 Sintomatología vs Fetos muertos anteparto

I1=Casos$Feto.muerto.intraútero
I1[I1=="Sí"]="Muerto"
I1[I1=="No"]="Vivo"
I1=ordered(I1,levels=c("Vivo","Muerto"))
I1A=I1[Casos$SINTOMAS_DIAGNOSTICO=="Asintomática"]
I1L=I1[Casos$SINTOMAS_DIAGNOSTICO=="Leve"]
I1G=I1[Casos$SINTOMAS_DIAGNOSTICO=="Grave"]

I2=CasosGM$Feto.vivo
I2[I2=="Sí"]="Vivo"
I2[I2=="No"]="Muerto"
I2=ordered(I2,levels=c("Vivo","Muerto"))
I2A=I2[CasosGM$SINTOMAS_DIAGNOSTICO=="Asintomática"]
I2L=I2[CasosGM$SINTOMAS_DIAGNOSTICO=="Leve"]
I2G=I2[CasosGM$SINTOMAS_DIAGNOSTICO=="Grave"]

IA=c(I1A,I2A)
IL=c(I1L,I2L)
IG=c(I1G,I2G)



I=c(I1,I2)
SintN1=Casos$SINTOMAS_DIAGNOSTICO
SintN2=CasosGM$SINTOMAS_DIAGNOSTICO
SintN=c(SintN1,SintN2)

taula=table(data.frame(I,SintN))[c(2,1) ,1:3]
Tabla.DMCasosr(IA,IL,IG,"Feto muerto anteparto", "Feto vivo")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Feto muerto anteparto 4 1 5 1.5 1 1.3 0.90141 Montecarlo
Feto vivo 390 99 329 98.5 75 98.7
Datos perdidos 0 0 0
Barplot.DGSalt(I,SintN,"Feto muerto anteparto", "Feto vivo")

  • Potencia del test: 0.077

6.2.19 Edades gestacionales

I=Casos$EG_TOTAL_PARTO
Síntomas=ordered(Sint,levels=c("Asintomática" ,"Leve",      "Grave"  ))
data =data.frame(
  Síntomas,
  Edades=I
)

data %>%
  ggplot( aes(x=Síntomas, y=Edades, fill=Síntomas)) +
    geom_violin(width=1) +
    geom_boxplot(width=0.1, color="black", alpha=0.2,outlier.fill="black",
               outlier.size=1) +
    theme(
      legend.position="none",
      plot.title = element_text(size=11)
    ) +
    xlab("")+
   ylab("Edades gestacionales (semanas)")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.27:

Dades=rbind(c(round(min(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),
              round(median(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Asintomática"],c(0.25,0.75),na.rm=TRUE),1),
              round(sd(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1)),
   c(round(min(I[data$Síntomas=="Leve"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Leve"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Leve"],na.rm=TRUE),1),
       round(median(I[data$Síntomas=="Leve"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Leve"],c(0.25,0.75),na.rm=TRUE),1),round(sd(I[data$Síntomas=="Leve"],na.rm=TRUE),1)),         
  c(round(min(I[data$Síntomas=="Grave"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Grave"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Grave"],na.rm=TRUE),1),round(median(I[data$Síntomas=="Grave"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Grave"],c(0.25,0.75),na.rm=TRUE),1),round(sd(I[data$Síntomas=="Grave"],na.rm=TRUE),1))          )

colnames(Dades)=c("Edad gest. mínima","Edad gest.  máxima","Edad gest.  media",
                  "Edad gest. mediana", "1er cuartil", "3er cuartil","Desv. típica")
rownames(Dades)=c("Asintomática" ,"Leve",      "Grave"  )

Dades %>%
  kbl() %>%
  kable_styling() %>%     
  scroll_box(width="100%", box_css="border: 0px;")
Edad gest. mínima Edad gest. máxima Edad gest. media Edad gest. mediana 1er cuartil 3er cuartil Desv. típica
Asintomática 26.7 42.1 39.2 39.6 38.4 40.4 1.9
Leve 18.0 41.9 39.1 39.4 38.6 40.4 2.4
Grave 28.0 41.4 38.4 39.1 37.6 40.1 2.5
  • Ajuste de las edades gestacionales de cada nivel a distribuciones normales: test de Shapiro-Wilks, p-valores \(6\times 10^{-20}\), \(10^{-24}\), \(10^{-6}\), respectivamente

  • Homocedasticidad: Test de Fligner-Killeen, p-valor \(0.02\)

  • Edades gestacionales medias: test de Kruskal-Wallis, p-valor \(0.03\)

  • Contrastes posteriores de edades gestacionales medias por parejas: tests de Mann-Whitney,p-valores ajustados por Bonferroni:

    • Asintomática vs Leve: 1
    • Asintomática vs Grave: \(0.03\)
    • Leve vs Grave: \(0.05\)

6.2.20 Pesos hijos infectadas

SintN=c(Casos[Casos$Feto.muerto.intraútero=="No",]$SINTOMAS_DIAGNOSTICO,CasosGM[CasosGM$Feto.vivo=="Sí",]$SINTOMAS_DIAGNOSTICO)
Síntomas=SintN[!is.na(SintN)]

I=c(Casos[Casos$Feto.muerto.intraútero=="No",]$Peso._gramos_...125,CasosGM[CasosGM$Feto.vivo=="Sí",]$Peso._gramos_...148)
I=I[!is.na(SintN)]

data =data.frame(
  Síntomas,
  Pesos=I
)

data %>%
  ggplot( aes(x=Síntomas, y=Pesos, fill=Síntomas)) +
    geom_violin(width=1) +
    geom_boxplot(width=0.1, color="black", alpha=0.2,outlier.fill="black",
               outlier.size=1) +
    theme(
      legend.position="none",
      plot.title = element_text(size=11)
    ) +
    xlab("")+
   ylab("Pesos (gramos)")+
  scale_fill_brewer(palette = "Dark2") 
\s

Figura 6.28:

Dades=rbind(c(round(min(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),
              round(median(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Asintomática"],c(0.25,0.75),na.rm=TRUE),1),
              round(sd(I[data$Síntomas=="Asintomática"],na.rm=TRUE),1)),
   c(round(min(I[data$Síntomas=="Leve"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Leve"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Leve"],na.rm=TRUE),1),
       round(median(I[data$Síntomas=="Leve"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Leve"],c(0.25,0.75),na.rm=TRUE),1),round(sd(I[data$Síntomas=="Leve"],na.rm=TRUE),1)),         
  c(round(min(I[data$Síntomas=="Grave"],na.rm=TRUE),1),round(max(I[data$Síntomas=="Grave"],na.rm=TRUE),1), round(mean(I[data$Síntomas=="Grave"],na.rm=TRUE),1),round(median(I[data$Síntomas=="Grave"],na.rm=TRUE),1),
              round(quantile(I[data$Síntomas=="Grave"],c(0.25,0.75),na.rm=TRUE),1),round(sd(I[data$Síntomas=="Grave"],na.rm=TRUE),1))          )
colnames(Dades)=c("Peso. mínimo","Peso.  máximo","Peso.  medio","Peso mediano", "1er cuartil", "3er cuartil","Desv. típica")
rownames(Dades)=c("Asintomática" ,"Leve",      "Grave"  )

Dades %>%
  kbl() %>%
  kable_styling() %>%     
  scroll_box(width="100%", box_css="border: 0px;")
Peso. mínimo Peso. máximo Peso. medio Peso mediano 1er cuartil 3er cuartil Desv. típica
Asintomática 585 4720 3216.9 3300.0 2886.2 3600.0 584.1
Leve 700 4740 3239.8 3260.0 2940.0 3581.2 573.9
Grave 1400 4500 3245.0 3312.5 2898.8 3700.0 663.9
  • Ajuste de los pesos de cada nivel a distribuciones normales: test de Shapiro-Wilks, p-valores \(8\times 10^{-8}\), \(3\times 10^{-7}\), \(0.001\), respectivamente

  • Homocedasticidad: Test de Fligner-Killeen, p-valor 0.292

  • Pesos medios: test de Kruskal-Wallis, p-valor 0.824

6.2.21 Bajo peso

I=c(Casos[Casos$Feto.muerto.intraútero=="No",]$Peso._gramos_...125,CasosGM[CasosGM$Feto.vivo=="Sí",]$Peso._gramos_...148)
I.cut=cut(I,breaks=c(0,2500,10000),labels=c(1,0),right=FALSE)
I.cut=ordered(I.cut,levels=c(0,1))

IA=c(Casos[Casos$Feto.muerto.intraútero=="No" &Casos$SINTOMAS_DIAGNOSTICO=="Asintomática" ,]$Peso._gramos_...125,CasosGM[CasosGM$Feto.vivo=="Sí"&CasosGM$SINTOMAS_DIAGNOSTICO=="Asintomática",]$Peso._gramos_...148)
IA.cut=cut(IA,breaks=c(0,2500,10000),labels=c(1,0),right=FALSE)
IA.cut=ordered(IA.cut,levels=c(0,1))

IL=c(Casos[Casos$Feto.muerto.intraútero=="No" &Casos$SINTOMAS_DIAGNOSTICO=="Leve" ,]$Peso._gramos_...125,CasosGM[CasosGM$Feto.vivo=="Sí"&CasosGM$SINTOMAS_DIAGNOSTICO=="Leve",]$Peso._gramos_...148)
IL.cut=cut(IL,breaks=c(0,2500,10000),labels=c(1,0),right=FALSE)
IL.cut=ordered(IL.cut,levels=c(0,1))

IG=c(Casos[Casos$Feto.muerto.intraútero=="No" &Casos$SINTOMAS_DIAGNOSTICO=="Grave" ,]$Peso._gramos_...125,CasosGM[CasosGM$Feto.vivo=="Sí"&CasosGM$SINTOMAS_DIAGNOSTICO=="Grave",]$Peso._gramos_...148)
IG.cut=cut(IG,breaks=c(0,2500,10000),labels=c(1,0),right=FALSE)
IG.cut=ordered(IG.cut,levels=c(0,1))



SintN=c(Casos[Casos$Feto.muerto.intraútero=="No",]$SINTOMAS_DIAGNOSTICO,CasosGM[CasosGM$Feto.vivo=="Sí",]$SINTOMAS_DIAGNOSTICO)

taula=table(data.frame(I.cut,SintN))[c(2,1) ,1:3]
Tabla.DMCasosr(IA.cut,IL.cut,IG.cut,"Bajo peso", "No bajo peso")
Asintomáticas (N) Asintomáticas (%) Leves (N) Leves (%) Graves (N) Graves (%) p-valor Tipo
Bajo peso 39 10.3 24 7.5 9 12.5 0.284495 Paramétrico
No bajo peso 341 89.7 296 92.5 63 87.5
Datos perdidos 10 9 3
Barplot.DGSalt(I.cut,SintN,"Bajo peso", "No bajo peso")

  • Potencia del test: 0.275