Factores de riesgo asociados con bajo peso al nacer

birthwt {MASS} : el marco de datos tiene 189 filas y 10 columnas. Los datos se recopilaron en Baystate Medical Center, Springfield, Massachusetts durante 1986. Fuente: Hosmer, DW y Lemeshow, S. (1989) Regresión logística aplicada. Nueva York: Wiley.
Referencias: Venables, WN y Ripley, BD (2002) Modern Applied Statistics with S. Fourth edition. Saltador.
https://www.rdocumentation.org/packages/MASS/versions/7.3-51.4/topics/birthwt

Utiliza str() y head() para explorar la estructura, y con help(), mirar el significado de cada variable.

library(MASS)
## Warning: package 'MASS' was built under R version 3.6.1
str(birthwt) #Estructura de los datos.
## 'data.frame':    189 obs. of  10 variables:
##  $ low  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ age  : int  19 33 20 21 18 21 22 17 29 26 ...
##  $ lwt  : int  182 155 105 108 107 124 118 103 123 113 ...
##  $ race : int  2 3 1 1 1 3 1 3 1 1 ...
##  $ smoke: int  0 0 1 1 1 0 0 0 1 1 ...
##  $ ptl  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ ht   : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ ui   : int  1 0 0 1 1 0 0 0 0 0 ...
##  $ ftv  : int  0 3 1 2 0 0 1 1 1 0 ...
##  $ bwt  : int  2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
head(birthwt) #Cabecera de los datos.
##    low age lwt race smoke ptl ht ui ftv  bwt
## 85   0  19 182    2     0   0  0  1   0 2523
## 86   0  33 155    3     0   0  0  0   3 2551
## 87   0  20 105    1     1   0  0  0   1 2557
## 88   0  21 108    1     1   0  0  1   2 2594
## 89   0  18 107    1     1   0  0  1   0 2600
## 91   0  21 124    3     0   0  0  0   0 2622
#help(birthwt)

Reacomodando la estructura

bwt <- with(birthwt, {
race <- factor(race, labels = c("white", "black", "other"))
ptd <- factor(ptl > 0)
ftv <- factor(ftv)
levels(ftv)[-(1:2)] <- "2+"
data.frame(low = factor(low, labels = c("No", "Yes")), age, lwt, race, smoke = (smoke > 0),
           ptd, ht = (ht > 0), ui = (ui > 0), ftv, bwt)
})
str(bwt) #Estructura de los datos.
## 'data.frame':    189 obs. of  10 variables:
##  $ low  : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ age  : int  19 33 20 21 18 21 22 17 29 26 ...
##  $ lwt  : int  182 155 105 108 107 124 118 103 123 113 ...
##  $ race : Factor w/ 3 levels "white","black",..: 2 3 1 1 1 3 1 3 1 1 ...
##  $ smoke: logi  FALSE FALSE TRUE TRUE TRUE FALSE ...
##  $ ptd  : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 1 1 1 1 1 1 1 ...
##  $ ht   : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ ui   : logi  TRUE FALSE FALSE TRUE TRUE FALSE ...
##  $ ftv  : Factor w/ 3 levels "0","1","2+": 1 3 2 3 1 1 2 2 2 1 ...
##  $ bwt  : int  2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
head(bwt) #Cabecera de los datos.
##   low age lwt  race smoke   ptd    ht    ui ftv  bwt
## 1  No  19 182 black FALSE FALSE FALSE  TRUE   0 2523
## 2  No  33 155 other FALSE FALSE FALSE FALSE  2+ 2551
## 3  No  20 105 white  TRUE FALSE FALSE FALSE   1 2557
## 4  No  21 108 white  TRUE FALSE FALSE  TRUE  2+ 2594
## 5  No  18 107 white  TRUE FALSE FALSE  TRUE   0 2600
## 6  No  21 124 other FALSE FALSE FALSE FALSE   0 2622

Calcula una tabla de frecuencias relativas marginales de los pares (raza de la madre, peso inferior a 2.5 kg o no) que permita ver si la raza de la madre influye en el peso del bebé.

df = subset(bwt,select=c(1,4)) #Filtro low y race por columna.
table(df)->data #Creando una tabla bidimencional.
round(prop.table(data),3)#Frecuencia relativa global
##      race
## low   white black other
##   No  0.386 0.079 0.222
##   Yes 0.122 0.058 0.132
round(prop.table(data,margin=1),3)#Frecuencia marginal por filas.
##      race
## low   white black other
##   No  0.562 0.115 0.323
##   Yes 0.390 0.186 0.424
round(prop.table(data,margin=2),3)#Frecuencia marginal por columnas.
##      race
## low   white black other
##   No  0.760 0.577 0.627
##   Yes 0.240 0.423 0.373

Dibuja un diagrama de mosaico de la tabla del ejercicio anterior.

plot(data,col="lightblue",main="Raza | Peso")
<b>Diagrama 1:</b> Podemos observar que en las 3 razas de la madre el Indicador de peso al nacer NO es inferior a 2,5 kg domina en las 3 categorias siendo mas probable que el peso promedio de los bebés sea > 2.5kg

Diagrama 1: Podemos observar que en las 3 razas de la madre el Indicador de peso al nacer NO es inferior a 2,5 kg domina en las 3 categorias siendo mas probable que el peso promedio de los bebés sea > 2.5kg

Dibuja un diagrama bidimensional de barras, con las barras organizadas en bloques, que permita visualizar la información de los ejercicios anteriores. Aprovecha para nombres adecuados a los bloques, colores a las barras, y añadir una leyenda que explique qué representa cada barra.

barplot(prop.table(data,margin = 1),beside=TRUE,legend.text=TRUE,ylim=c(0,0.6),col=c("black","lightgreen"),main="Frecuencia relativa marginal \n del peso inferior a 2.5 kg del bebé \n con respecto a la raza de la madre")
<b>Diagrama 2:</b> El peso de los bebés No inferior a 2.5kg tiene una valor máximo en las mujeres de raza blanca.

Diagrama 2: El peso de los bebés No inferior a 2.5kg tiene una valor máximo en las mujeres de raza blanca.

barplot(t(prop.table(data,margin=2)),beside=TRUE,legend.text=TRUE,ylim=c(0,0.8),col=c("white","black","lightblue"),main="Frecuencia relativa marginal \n de la raza de la madre \n respecto al peso inferior a 2.5kg del bebé")
<b>Diagrama 3:</b> Podemos observar que para todas las razas predomina el NO, las mujeres de raza blanca tienen mayor influencia en el No , pero para las 3 razas sus bebés tienden a tener más de 2.5kg

Diagrama 3: Podemos observar que para todas las razas predomina el NO, las mujeres de raza blanca tienen mayor influencia en el No , pero para las 3 razas sus bebés tienden a tener más de 2.5kg

¿Se puede obtener alguna conclusión de la tabla y el diagrama de barras anterior? Argumenta tu respuesta

Conclusión: según la siguiente tabla https://www.etapainfantil.com/wp-content/uploads/2017/03/Tabla-peso-estatura-bebe-ninos.png el peso de niños y niñas promedio es de 3.4kg para un recién nacido.Los bebés < 2.5kg se consideran pequeños y bebés > 2.5kg son considerados normales. Los 3 diagramas tienden en su mayoría a mostrar bebes > 2.5kg considerados dentro de un rango normal.

Repite los cuatro ejercicios anteriores para los pares (madre fumadora o no, peso inferior a 2.5 kg o no) y para los pares (madre hipertensa o no, peso inferior a 2.5 kg o no.

  • Frecuencia global
df_smoke = subset(bwt,select=c(1,5))#Filtro por columna low,smoke.
table(df_smoke)->data2
round(prop.table(data2),3)#Frecuencia relativa global (low + smoke)
##      smoke
## low   FALSE  TRUE
##   No  0.455 0.233
##   Yes 0.153 0.159
plot(data2,col="lightblue",main="Diagrama entre la variable peso, y si la madre fuma o no.")
<b>Diagrama 4:</b> Podemos observar que la proporción peso es mayor a 2.5kg si no fuma

Diagrama 4: Podemos observar que la proporción peso es mayor a 2.5kg si no fuma

  • Frecuencia Marginal 1
round(prop.table(data2,margin=1),3)#Frecuencia marginal por filas.
##      smoke
## low   FALSE  TRUE
##   No  0.662 0.338
##   Yes 0.492 0.508
barplot(prop.table(data2,margin = 1),beside=TRUE,legend.text=TRUE,ylim=c(0,0.7),col=c("black","lightgreen"),main="Frecuencia relativa marginal \n del peso inferior a 2.5 kg del bebé \n con respecto a la madre fumadora")
<b>Diagrama 5:</b> Podemos observar que el valor máximo esta dado por el peso mayor a 2.5kg si la madre no fuma

Diagrama 5: Podemos observar que el valor máximo esta dado por el peso mayor a 2.5kg si la madre no fuma

  • Frecuencia Marginal 2
round(prop.table(data2,margin=2),3)#Frecuencia marginal por columnas.
##      smoke
## low   FALSE  TRUE
##   No  0.748 0.595
##   Yes 0.252 0.405
barplot(t(prop.table(data2,margin=2)),beside=TRUE,legend.text=TRUE,ylim=c(0,0.8),col=c("lightblue","lightgreen"),main="Frecuencia relativa marginal \n de la madre fumadora con respecto \n al peso inferior a 2.5kg del bebé")
<b>Diagrama 6:</b> Podemos observar que la proporción no fumadora con peso no inferior a 2.5kg presenta un valor maximo en la grafica.

Diagrama 6: Podemos observar que la proporción no fumadora con peso no inferior a 2.5kg presenta un valor maximo en la grafica.

  • Frecuencia global
df_ht = subset(bwt,select=c(1,7))#Filtro por columna low,ht.
table(df_ht)->data3
round(prop.table(data3),3)#Frecuencia relativa global (low + ht)
##      ht
## low   FALSE  TRUE
##   No  0.661 0.026
##   Yes 0.275 0.037
plot(data3,col="lightblue",main="Diagrama entre la variable peso, y si es la madre es hipertensa o no.")
<b>Diagrama 7:</b> Podemos observar que la proporción de peso no inferior a 2.5kg abarca un rango mayor cuando la madre no es hipertensa

Diagrama 7: Podemos observar que la proporción de peso no inferior a 2.5kg abarca un rango mayor cuando la madre no es hipertensa

  • Frecuencia marginal 1
round(prop.table(data3,margin=1),3)#Frecuencia marginal por filas.
##      ht
## low   FALSE  TRUE
##   No  0.962 0.038
##   Yes 0.881 0.119
barplot(prop.table(data3,margin = 1),beside=TRUE,legend.text=TRUE,ylim=c(0,1),col=c("black","lightgreen"),main="Frecuencia relativa marginal \n del peso inferior a 2.5 kg del bebé \n con respecto a la madre hipertensa")
<b>Diagrama 8:</b> Podemos observar que la proporción de peso no inferior a 2.5kg abarca un rango mayor cuando la madre no es hipertensa

Diagrama 8: Podemos observar que la proporción de peso no inferior a 2.5kg abarca un rango mayor cuando la madre no es hipertensa

  • Frecuencia marginal 2
round(prop.table(data3,margin=2),3)#Frecuencia marginal por columnas.
##      ht
## low   FALSE  TRUE
##   No  0.706 0.417
##   Yes 0.294 0.583
barplot(t(prop.table(data3,margin=2)),beside=TRUE,legend.text=TRUE,ylim=c(0,0.8),col=c("lightblue","lightgreen"),main="Frecuencia relativa marginal \n respecto a la madre hipertensa \n en comparación con el peso \n inferior a 2.5 kg del bebé")
<b>Diagrama 9:</b> Podemos observar que la madre no hipertensa tiende a tener bebes mas grandes

Diagrama 9: Podemos observar que la madre no hipertensa tiende a tener bebes mas grandes

Calcula una tabla de frecuencias relativas marginales de las ternas (raza de la madre, madre fumadora o no, peso inferior a 2.5 kg o no) que permita ver si la raza de la madre y su condición de fumadora o no fumadora influyen en el peso del bebé.

  • Frecuencias relativas global
df_terna = subset(bwt,select=c(1,4,5))
table(df_terna)->data4
round(prop.table(data4),3)#Frecuencia relativa global
## , , smoke = FALSE
## 
##      race
## low   white black other
##   No  0.212 0.058 0.185
##   Yes 0.021 0.026 0.106
## 
## , , smoke = TRUE
## 
##      race
## low   white black other
##   No  0.175 0.021 0.037
##   Yes 0.101 0.032 0.026
  • Frecuencia relativa Marginal 1
round(prop.table(data4,margin=1),3)#Frecuencia marginal por filas.
## , , smoke = FALSE
## 
##      race
## low   white black other
##   No  0.308 0.085 0.269
##   Yes 0.068 0.085 0.339
## 
## , , smoke = TRUE
## 
##      race
## low   white black other
##   No  0.254 0.031 0.054
##   Yes 0.322 0.102 0.085
  • Frecuencia relativa Marginal 2
round(prop.table(data4,margin=2),3)#Frecuencia marginal por columnas.
## , , smoke = FALSE
## 
##      race
## low   white black other
##   No  0.417 0.423 0.522
##   Yes 0.042 0.192 0.299
## 
## , , smoke = TRUE
## 
##      race
## low   white black other
##   No  0.344 0.154 0.104
##   Yes 0.198 0.231 0.075

Dibuja un diagrama de mosaico de la tabla del ejercicio anterior.

plot(data4,col="lightblue",main="Comparación raza | fumadora | peso inf 2.5kg")
<b>Diagrama 10</b>

Diagrama 10