# Activación de paquetes
library(haven)
library(foreign)
library(ggplot2)
library(moments)
library(knitr)
library(sjPlot)
library(sjmisc)
library(sjlabelled)
library(olsrr)  # Métodos de selección por pasos
library(PerformanceAnalytics)  # Varias funciones.
# Lo utilizaremos para construir matriz de correlaciones, incluyendo gráficos
# de dispersión para análisis exploratorio de los datos

Taller evaluativo parte I.

En 2005 Almond y colaboradores presentaron un artículo en el que evaluaron los costos hospitalarios, el estado de salud al nacimiento y la mortalidad infantil según el peso al nacer. Uno de los argumentos con relación al problema es que un incremento en una desviación estándar en el peso al nacimiento disminuye los costos hospitalarios y la tasa de mortalidad infantil, incrementa el APGAR y reduce el uso de ventilación asistida en 0,51, 0,42, 0,51 y 9,25 desviaciones estándar respectivamente. Dado que la exposición de la madre al tabaquismo durante el embarazo es un factor modificable, los autores de dicho artículo se interesaron en evaluar el efecto sobre el bajo peso al nacer. Desenlace: Peso al nacimiento en gramos (bweight)

Variables explicativas: tabaquismo (mbsmoke), edad de la madre en años, Estado civil casada(mmarried), madre/padre hispánica(o) (mhisp/fhisp), raza de la madre blanca (mrace), madreextranjera (foreign), consumo alcohol durante el embarazo (alcohol), antecedentes de hijosnacidos muertos (deadkids), edad del padre (fage), años de educación de madre/padre(medu/fedu), número de visitas prenatales (nprenatal), meses desde el ultimo nacimiento(monthslb), orden de nacimiento (order), trimestre de la primera visita prenatal (prenatal), mes delnacimiento (birthmonth).

# Cargar base de datos
library(haven)
PesoNacerv11 <- read_dta("datasets/PesoNacerv11.dta")
mydata <- na.omit(PesoNacerv11)

# Seleccionar variables
myVar <- c("bweight", "mbsmoke", "mage", "fage", "mmarried", "mhisp", "fhisp", "foreign",
    "mrace", "frace", "alcohol", "deadkids", "medu", "fedu", "nprenatal", "monthslb",
    "order", "prenatal", "birthmonth")

# Creando sub_base con variables a trabajar
mydata <- mydata[, myVar]
# Cargando una librería para trabajar con factores
library(Hmisc)

## Definiendo como factores las variables categóricas
mydata$mmarried <- factor(mydata$mmarried, levels = c(0, 1), labels = c("No", "Si"))

mydata$alcohol <- factor(mydata$alcohol, levels = c(0, 1), labels = c("No", "Si"))

mydata$mbsmoke <- factor(mydata$mbsmoke, levels = c(0, 1), labels = c("No", "Si"))

mydata$mhisp <- factor(mydata$mhisp, levels = c(0, 1), labels = c("No", "Si"))

mydata$fhisp <- factor(mydata$fhisp, levels = c(0, 1), labels = c("No", "Si"))

mydata$foreign <- factor(mydata$foreign, levels = c(0, 1), labels = c("No", "Si"))

mydata$mrace <- factor(mydata$mrace, levels = c(1, 0), labels = c("Blanca", "Otra"))


mydata$frace <- factor(mydata$frace, levels = c(1, 0), labels = c("Blanca", "Otra"))


mydata$deadkids <- factor(mydata$deadkids, levels = c(0, 1), labels = c("No", "Si"))
summary(mydata)
    bweight     mbsmoke        mage           fage      mmarried  mhisp    
 Min.   : 340   No:3778   Min.   :13.0   Min.   : 0.0   No:1394   No:4484  
 1st Qu.:3033   Si: 864   1st Qu.:22.0   1st Qu.:24.0   Si:3248   Si: 158  
 Median :3390             Median :26.0   Median :28.0                      
 Mean   :3362             Mean   :26.5   Mean   :27.3                      
 3rd Qu.:3725             3rd Qu.:30.0   3rd Qu.:33.0                      
 Max.   :5500             Max.   :45.0   Max.   :60.0                      
 fhisp     foreign      mrace         frace      alcohol   deadkids 
 No:4470   No:4394   Blanca:3902   Blanca:3777   No:4492   No:3438  
 Si: 172   Si: 248   Otra  : 740   Otra  : 865   Si: 150   Si:1204  
                                                                    
                                                                    
                                                                    
                                                                    
      medu           fedu        nprenatal       monthslb         order      
 Min.   : 0.0   Min.   : 0.0   Min.   : 0.0   Min.   :  0.0   Min.   : 0.00  
 1st Qu.:12.0   1st Qu.:12.0   1st Qu.: 9.0   1st Qu.:  0.0   1st Qu.: 1.00  
 Median :12.0   Median :12.0   Median :11.0   Median : 13.0   Median : 2.00  
 Mean   :12.7   Mean   :12.3   Mean   :10.8   Mean   : 23.1   Mean   : 1.89  
 3rd Qu.:14.0   3rd Qu.:14.0   3rd Qu.:13.0   3rd Qu.: 35.0   3rd Qu.: 2.00  
 Max.   :17.0   Max.   :17.0   Max.   :40.0   Max.   :272.0   Max.   :12.00  
    prenatal     birthmonth   
 Min.   :0.0   Min.   : 1.00  
 1st Qu.:1.0   1st Qu.: 4.00  
 Median :1.0   Median : 7.00  
 Mean   :1.2   Mean   : 6.54  
 3rd Qu.:1.0   3rd Qu.: 9.00  
 Max.   :3.0   Max.   :12.00  
Variable Nombre Descripción Códigos/Valores
1 bweight Peso al nacimiento Gramos
2 mbsmoke Tabaquismo 0=No, 1=Si
3 mage Edad de la madre Años
4 fage Edad del padre Años
5 mmarried Estado civil 0=Soltera, 1=Casada
6 mhisp Madre hispánica 0=No, 1=Si
7 fhisp Padre hispánico 0=No, 1=Si
8 foreign Extranjera 0=No, 1=Si
9 mrace raza de la madre blanca 0 = No, 1 = Si
10 frace raza del padre blanca 0 = No, 1 = Si
11 alcohol Consumo de alcohol 0=No, 1=Si
12 deadkids antecedentes de hijos nacidos muertos 0=No, 1=Si
13 medu Años de educación madre Años
14 fedu Años de educación padre Años
15 nprenatal Número de visitas prenatales 0 a 40
16 monthslb Meses desde el ultimo nacimiento 0 a 280
17 order Orden de nacimiento 0 a 12
18 prenatal trimestre de la primera visita prenatal 0 a 3
19 birthmonth Mes delnacimiento Meses

Nota: En la variable fage se presentaban 294 datos faltantes, que corresponderián a padres cuya edad no se reportó. Para efectos de los cálculos pedidos se eliminaron estos 294 registros de la base de datos (6.7% de 4642 datos), quedando con 4348 datos con los cuales se procedió a realizar los cálculos y en análisis.

indices <- which(mydata$fage == 0)  #posiciones de los 0=NA en la vble fage
mydata <- mydata[-indices, ]  #borra las filas donde fage=0
summary(mydata)
    bweight     mbsmoke        mage           fage      mmarried  mhisp    
 Min.   : 340   No:3593   Min.   :13.0   Min.   :14.0   No:1146   No:4206  
 1st Qu.:3062   Si: 755   1st Qu.:23.0   1st Qu.:25.0   Si:3202   Si: 142  
 Median :3402             Median :27.0   Median :29.0                      
 Mean   :3371             Mean   :26.7   Mean   :29.1                      
 3rd Qu.:3742             3rd Qu.:31.0   3rd Qu.:33.0                      
 Max.   :5500             Max.   :45.0   Max.   :60.0                      
 fhisp     foreign      mrace         frace      alcohol   deadkids 
 No:4194   No:4117   Blanca:3706   Blanca:3659   No:4220   No:3222  
 Si: 154   Si: 231   Otra  : 642   Otra  : 689   Si: 128   Si:1126  
                                                                    
                                                                    
                                                                    
                                                                    
      medu           fedu        nprenatal       monthslb         order     
 Min.   : 0.0   Min.   : 0.0   Min.   : 0.0   Min.   :  0.0   Min.   : 0.0  
 1st Qu.:12.0   1st Qu.:12.0   1st Qu.: 9.0   1st Qu.:  0.0   1st Qu.: 1.0  
 Median :12.0   Median :12.0   Median :11.0   Median : 14.0   Median : 2.0  
 Mean   :12.8   Mean   :12.8   Mean   :10.9   Mean   : 23.2   Mean   : 1.9  
 3rd Qu.:14.0   3rd Qu.:15.0   3rd Qu.:13.0   3rd Qu.: 36.0   3rd Qu.: 2.0  
 Max.   :17.0   Max.   :17.0   Max.   :30.0   Max.   :272.0   Max.   :12.0  
    prenatal      birthmonth   
 Min.   :0.00   Min.   : 1.00  
 1st Qu.:1.00   1st Qu.: 4.00  
 Median :1.00   Median : 7.00  
 Mean   :1.19   Mean   : 6.56  
 3rd Qu.:1.00   3rd Qu.: 9.00  
 Max.   :3.00   Max.   :12.00  

Parte 1. Modelo explicativo (Modelo de regresión lineal simple)

Evalúe para el peso al nacer del niño (bweight), mediante modelos de regresión lineal simples el efecto de la edad de la madre (mage) y del padre (fage) en años, los años de educación de la madre y del padre (medu/fedu), el número de visitas prenatales (nprenatal), el estado civil casada (mmarried), consumo alcohol durante el embarazo (alcohol) y tabaquismo (mbsmoke).

1. Describa el comportamiento del peso al nacer del niño (bweight).

library(dplyr)  #Para el pipeline
library(flextable)  #Para la tabla
library(moments)  #Para la asimetría y la curtosis

ft <- mydata %>%
    summarise(media = mean(mydata$bweight), desv_est = sd(mydata$bweight), mínimo = min(mydata$bweight),
        máximo = max(mydata$bweight), asimetría = skewness(mydata$bweight), curtosis = kurtosis(mydata$bweight),
        mediana = median(mydata$bweight))

ft <- flextable(ft)
ft <- autofit(ft)
ft
par(mfrow = c(1, 2))  #Modifico PAR para hacer un gráfico al lado del otro
# Comandos para la primera gráfica
hist(mydata$bweight, col = "lightgreen")
# Comandos para la segunda gráfica
boxplot(mydata$bweight, horizontal = FALSE)

par(mfrow = c(1, 1))  #Vuelvo el PAR a su estado inicial

La variable peso al nacer tiene valores que van desde 340 gr a 5500 gr, con una media de 3370.7 gr y desviación estándar de 580 gr. La curtosis es de 2.9 y su curva tiene una morfología leptocúrtica. Además, su asimetría es negativa con una cola izquierda hasta aproximadamente los 2000 gramos y a partir de allí se encuentran la mayoría de los datos, cercanos a la media.

2. Construya una matriz de correlaciones o un correlograma con las variables cuantitativas (Edad y años de educación de la madre y del padre y número de visitas prenatales), incluyendo el desenlace de interés. (Interprete cada uno de los coeficientes de correlación para la relación entre cada variable y el desenlace de interés)

# Paquete para el correlograma
library(corrplot)

# Definir variables numericas
myNumVar = c("bweight", "mage", "fage", "medu", "fedu", "nprenatal")

# Definir la matriz de variables numericas
matrizNum <- mydata[, myNumVar]

# Calcular la matriz de correlaciones
corrmatriz <- cor(matrizNum)
corrmatriz
            bweight     mage      fage     medu     fedu nprenatal
bweight   1.0000000 0.108838 0.0776624 0.106758 0.119223  0.236890
mage      0.1088382 1.000000 0.7633103 0.422402 0.356099  0.167030
fage      0.0776624 0.763310 1.0000000 0.302475 0.287208  0.119530
medu      0.1067584 0.422402 0.3024750 1.000000 0.633154  0.210487
fedu      0.1192227 0.356099 0.2872075 0.633154 1.000000  0.210476
nprenatal 0.2368904 0.167030 0.1195305 0.210487 0.210476  1.000000
# Gráfico de la matriz de correlaciones
corrplot(corrmatriz, method = "number", type = "lower")

library(PerformanceAnalytics)

myNumVar <- mydata[, myNumVar]

chart.Correlation(myNumVar, histogram = TRUE, method = "pearson")

Según los gráficos de correlación entre las variables numéricas y el bajo peso al nacer (bweight), hay una baja a moderada correlación entre las variables cuantitativas descritas y el bajo peso al nacer, siendo mayor con el número de controles prenatales (0.24) y menor con la edad de la madre (0.078), mientras que la correlación del bajo peso al nacer con las demás variables está entre 0.11 y 0.12.

3. Realice el gráfico de dispersión de cada una de las variables explicativas de naturaleza cuantitativa con el desenlace. Interprete el gráfico.

ggplot(mydata, aes(x = mage, y = bweight)) + geom_point() + theme_classic() + ggtitle("Bajo peso al nacer VS edad de la madre") +
    geom_smooth(method = "lm", se = FALSE, col = "red")

ggplot(mydata, aes(x = fage, y = bweight)) + geom_point() + theme_classic() + ggtitle("Bajo peso al nacer VS edad del padre") +
    geom_smooth(method = "lm", se = FALSE, col = "red")

ggplot(mydata, aes(x = medu, y = bweight)) + geom_point() + theme_classic() + ggtitle("Bajo peso al nacer VS educación de la madre") +
    geom_smooth(method = "lm", se = FALSE, col = "red")

ggplot(mydata, aes(x = fedu, y = bweight)) + geom_point() + theme_classic() + ggtitle("Bajo peso al nacer VS educación del padre") +
    geom_smooth(method = "lm", se = FALSE, col = "red")

ggplot(mydata, aes(x = nprenatal, y = bweight)) + geom_point() + theme_classic() +
    ggtitle("Bajo peso al nacer VS número de visitas prenatales") + geom_smooth(method = "lm",
    se = FALSE, col = "red")

Interpretación de gráficos de dispersión.

En los gráficos de dispersión de los datos de las variables cuantitativas se puede observar que los datos del bajo peso al nacer con respecto al número de controles prenatales muestran una pendiente positiva, indicando que a mayor número de controles prenatales, mayor será el peso al nacer. Con respecto al resto de las variables numéricas (edad de la madre, edad del padre, educación de la madre, educación del padre), se observa una pendiente casi plana indicando que la correlación entre estas y el bajo peso al nacer, no es significativa. En general, se puede decir que hay una dispersión importante de los datos en todas las variables.

4. Construya para cada variable independientes un modelo de regresión lineal simple. Interprete los coeficientes del modelo. ¿Cómo se interpreta el intercepto y la pendiente en las variables cuantitativas? ¿Cómo se interpreta el intercepto y la pendiente en las variables cualitativas (estado civil, alcohol, tabaquismo)?

Modelos de regresión lineal simple

Modelo 1. Peso al nacer vs edad de la madre

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 1. Peso al nacer vs edad de la madre Esta tabla muestra los
## coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod1 <- lm(bweight ~ mage, data = mydata)
sjPlot::tab_model(mod1, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3066.48 43.05 2982.08 – 3150.88 71.23 <0.001
mother’s age 11.40 1.58 8.30 – 14.50 7.22 <0.001
Observations 4348
R2 / R2 adjusted 0.012 / 0.012
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod1 <- anova(mod1)
anovamod1
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod1)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{mage}) + \epsilon \]

# show the theoretical model
extract_eq(mod1, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3066.48 + 11.4(\operatorname{mage}) \end{aligned} \]

# grafica del modelo
ggplot(mod1, aes(x = mage, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

* La tabla ANOVA muestra que la asunción del modelo lineal es significativa (valor-p<0.001), por lo que se puede usar la regresión lineal para relacionar las variables peso al nacer y edad de la madre.

  • La pendiente vale 11.40 y es significativa (valor-p<0.001). Por cada año que se incremente la edad de la madre, aumenta en 11.40 gramos el peso del bebé al nacer.

  • El intercepto vale 3066.48 y es significativo (valor-p<0.001). En este caso, a pesar de ser significativo, el intercepto no tendría interpretación real, puesto que no es posible que una madre tenga 0 años.

  • Ecuación: Peso_estimado_bebe_gramos = 3066.48 + 11.40 * Edad_madre_años

  • El coeficiente de determinación R2 = 0.012, lo que indica que el 1.2% de la variabilidad del peso al nacer del bebé, es explicada por la edad de la madre; el resto 98.8% es explicado por otras variables no incluidas en este modelo. La regresión lineal simple de estas dos variables no es muy buen modelo, y debe pensarse en otro tipo de modelo o en un modelo multivariado.

  • La gráfica muestra la pobre relación lineal entre las variables Edad de la madre y Peso al nacer. La nube de puntos de las observaciones está muy disperda respecto a la línea de regresión estimada.

Modelo 2. Peso al nacer vs edad del padre

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 2. Peso al nacer vs edad del padre Esta tabla muestra los
## coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod2 <- lm(bweight ~ fage, data = mydata)
sjPlot::tab_model(mod2, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3162.66 41.45 3081.39 – 3243.93 76.29 <0.001
father’s age 7.15 1.39 4.42 – 9.88 5.14 <0.001
Observations 4348
R2 / R2 adjusted 0.006 / 0.006
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod2 <- anova(mod2)
anovamod2
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod2)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{fage}) + \epsilon \]

# show the theoretical model
extract_eq(mod2, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3162.66 + 7.15(\operatorname{fage}) \end{aligned} \]

# grafica del modelo
ggplot(mod2, aes(x = fage, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

* La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de 7.15 y es significativa (valor-p<0.001). A partir de 3162.66 gr (Intercepto, valor-p<0.001), por cada año que se incremente la escolaridad del padre, aumenta en 7.15 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos = 3162.66 + 7.15 * Edad_padre_años

  • El coeficiente de determinación R2 = 0.011, indica que el 0.6% de la variabilidad del peso al nacer del bebé, es explicada por la edad de la padre; el resto 99.4% es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.

  • La gráfica muestra la pobre relación lineal entre las variables Edad del padre y Peso al nacer. La nube de puntos de las observaciones está muy disperda respecto a la línea de regresión estimada.

Modelo 3. Peso al nacer vs años de educación de la madre

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 3. Peso al nacer vs años de educación de la madre Esta tabla muestra
## los coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod3 <- lm(bweight ~ medu, data = mydata)
sjPlot::tab_model(mod3, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3044.97 46.84 2953.13 – 3136.81 65.00 <0.001
mother’s education
attainment
25.46 3.60 18.41 – 32.51 7.08 <0.001
Observations 4348
R2 / R2 adjusted 0.011 / 0.011
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod3 <- anova(mod3)
anovamod3
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod3)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{medu}) + \epsilon \]

# show the theoretical model
extract_eq(mod3, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3044.97 + 25.46(\operatorname{medu}) \end{aligned} \]

# grafica del modelo
ggplot(mod3, aes(x = medu, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

  • La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de 25.46 y es significativa (valor-p<0.001). A partir de 3044.97 gr (Intercepto, valor-p<0.001), por cada año que se incremente la escolaridad de la madre, aumenta en 25.46 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos = 3044.97 + 25.46 * educación_madre_años

  • El coeficiente de determinación R2 = 0.011, indica que el 1.1% de la variabilidad del peso al nacer del bebé, es explicada por la escolaridad de la madre; el resto 98.9% es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.

  • La gráfica muestra la pobre relación lineal entre las variables educación de la madre y Peso al nacer. La nube de puntos de las observaciones está muy disperda respecto a la línea de regresión estimada con mayor dispersión en los valores extremos en años de educación.

Modelo 4. Peso al nacer vs años de educación del padre

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 4. Peso al nacer vs años de educación del padre Esta tabla muestra
## los coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod4 <- lm(bweight ~ fedu, data = mydata)
sjPlot::tab_model(mod4, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3061.41 40.04 2982.92 – 3139.91 76.46 <0.001
father’s education
attainment
24.17 3.05 18.19 – 30.16 7.92 <0.001
Observations 4348
R2 / R2 adjusted 0.014 / 0.014
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod4 <- anova(mod4)
anovamod4
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod4)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{fedu}) + \epsilon \]

# show the theoretical model
extract_eq(mod4, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3061.41 + 24.17(\operatorname{fedu}) \end{aligned} \]

# grafica del modelo
ggplot(mod4, aes(x = fedu, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

* La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de 24.17 y es significativa (valor-p<0.001). A partir de 3061.41 gr (Intercepto, valor-p<0.001), por cada año que se incremente la escolaridad del padre, aumenta en 24.17 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos = 30.61 + 24.17 * educación_padre_años

  • El coeficiente de determinación R2 = 0.011, indica que el 1.4% de la variabilidad del peso al nacer del bebé, es explicada por escolardidad del padre; el resto 98.6% es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.

  • La gráfica muestra la pobre relación lineal entre las variables educación del padre y Peso al nacer. La nube de puntos de las observaciones está muy disperda respecto a la línea de regresión estimada con mayor dispersión en los valores extremos en años de educación.

Modelo 5. Peso al nacer vs número de visitas prenatales

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 5. Peso al nacer vs número de visitas prenatales Esta tabla muestra
## los coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod5 <- lm(bweight ~ nprenatal, data = mydata)
sjPlot::tab_model(mod5, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 2946.11 27.76 2891.68 – 3000.55 106.11 <0.001
number of prenatal care
visits
39.03 2.43 34.27 – 43.78 16.07 <0.001
Observations 4348
R2 / R2 adjusted 0.056 / 0.056
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod5 <- anova(mod5)
anovamod5
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod5)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{nprenatal}) + \epsilon \]

# show the theoretical model
extract_eq(mod5, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 2946.11 + 39.03(\operatorname{nprenatal}) \end{aligned} \]

# grafica del modelo
ggplot(mod5, aes(x = nprenatal, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

* La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de 39.03 y es significativa (valor-p<0.001). A partir de 2946.11 gr (Intercepto, valor-p<0.001), por cada visita prenatal, aumenta en 39.03 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos = 2946.11 + 39.03 * Número de controles prenatales

  • El coeficiente de determinación R2 = 0.056, indica que el 5.6% de la variabilidad del peso al nacer del bebé, es explicada por el número de controles prenatales realizados; el resto 94.4% es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.

  • La gráfica muestra una baja relación lineal entre las variables el número de controles prenatales y el Peso al nacer. La nube de puntos de las observaciones está muy disperda respecto a la línea de regresión estimada.

Modelo 6. Peso al nacer vs estado civil

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 6. Peso al nacer vs estado civil Esta tabla muestra los coeficientes
## estimados y las pruebas de hipótesis individuales (para el interpto y para
## la pendiente)
mod6 <- lm(bweight ~ mmarried, data = mydata)
sjPlot::tab_model(mod6, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3199.80 16.87 3166.73 – 3232.88 189.67 <0.001
mmarried [Si] 232.09 19.66 193.55 – 270.64 11.81 <0.001
Observations 4348
R2 / R2 adjusted 0.031 / 0.031
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod6 <- anova(mod6)
anovamod6
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod6)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{mmarried}_{\operatorname{Si}}) + \epsilon \]

# show the theoretical model
extract_eq(mod6, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3199.8 + 232.09(\operatorname{mmarried}_{\operatorname{Si}}) \end{aligned} \]

# grafica del modelo
ggplot(mod6, aes(x = mmarried, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

  • La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de 232.09 y es significativa (valor-p<0.001). A partir de 3199.80 gr (Intercepto, valor-p<0.001), si los padres estan casados, se presenta un aumento de peso de 232.09 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos si los padres estan casados = 3199.80 + 232.09 * (1) = 3431.09 gr Peso_estimado_bebe_gramos si los padres no estan casados = 3199.80 + 232.09 * (0) = 3199.80 gr

  • El coeficiente de determinación R2 = 0.031, indica que el 3.1% de la variabilidad del peso al nacer del bebé, es explicada si la madre esta casada; el 96.9% restante es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.

Modelo 7. Peso al nacer vs consumo de alcohol

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 7. Peso al nacer vs consumo de alcohol Esta tabla muestra los
## coeficientes estimados y las pruebas de hipótesis individuales (para el
## interpto y para la pendiente)
mod7 <- lm(bweight ~ alcohol, data = mydata)
sjPlot::tab_model(mod7, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3375.04 8.92 3357.54 – 3392.53 378.23 <0.001
alcohol [Si] -146.57 52.01 -248.53 – -44.61 -2.82 0.005
Observations 4348
R2 / R2 adjusted 0.002 / 0.002
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod7 <- anova(mod7)
anovamod7
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod7)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{alcohol}_{\operatorname{Si}}) + \epsilon \]

# show the theoretical model
extract_eq(mod7, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3375.04 - 146.57(\operatorname{alcohol}_{\operatorname{Si}}) \end{aligned} \]

# grafica del modelo
ggplot(mod7, aes(x = alcohol, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

  • La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de -146.57 y es significativa (valor-p<0.001). A partir de 3375.04 gr (Intercepto, valor-p<0.001), si la madre consume alcohol durante el embarazo disminuye el peso al nacer en 156.57gr.

  • Ecuación: Peso_estimado_bebe_gramos si la madre consume alcohol = 3375.04 - 146.57 * (1) = 3228.47 Peso_estimado_bebe_gramos si la madre no consume alcohol = 3375.04 - 146.57 * (0) = 3375.04

  • El coeficiente de determinación R2 = 0.002, indica que el 0.2% de la variabilidad del peso al nacer del bebé, es explicada por el consumo de alcohol de la madre durante el embarazo; el 99.8% restante es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es buen modelo para predecir el peso.

Modelo 8. Peso al nacer vs tabaquismo

library(sjPlot)  #Para la presentación de la tabla con los coeficientes

## Modelo 8. Peso al nacer vs tabaquismo Esta tabla muestra los coeficientes
## estimados y las pruebas de hipótesis individuales (para el interpto y para
## la pendiente)
mod8 <- lm(bweight ~ mbsmoke, data = mydata)
sjPlot::tab_model(mod8, show.se = TRUE, show.stat = TRUE)
  infant birth weight
(grams)
Predictors Estimates std. Error CI Statistic p
(Intercept) 3418.27 9.52 3399.60 – 3436.94 358.93 <0.001
mbsmoke [Si] -273.83 22.85 -318.63 – -229.02 -11.98 <0.001
Observations 4348
R2 / R2 adjusted 0.032 / 0.032
## Tabla ANOVA del modelo Esta tabla muestra los errores cuadrádicos y la
## prueba de hipótesis de la regresión (si el modelo lineal es válodo o no lo
## es)
anovamod8 <- anova(mod8)
anovamod8
# Ecuación del modelo
library(equatiomatic)
extract_eq(mod8)

\[ \operatorname{bweight} = \alpha + \beta_{1}(\operatorname{mbsmoke}_{\operatorname{Si}}) + \epsilon \]

# show the theoretical model
extract_eq(mod8, wrap = TRUE, use_coefs = TRUE)

\[ \begin{aligned} \operatorname{\widehat{bweight}} &= 3418.27 - 273.83(\operatorname{mbsmoke}_{\operatorname{Si}}) \end{aligned} \]

# grafica del modelo
ggplot(mod8, aes(x = mbsmoke, y = bweight)) + geom_point() + geom_smooth(method = lm,
    se = TRUE, level = 0.95)

  • La tabla ANOVA muestra que la sunción de modelo lineal es significativa (valor-p<0.001), por lo que puede usarse la regresión lineal en este caso.

  • La pendiente es de -273.83 y es significativa (valor-p<0.001). A partir de 3418.27 gr (Intercepto, valor-p<0.001), si la madre fuma durante el embarazo, se presenta una disminución de peso de 273.83 gramos el peso del bebé al nacer.

  • Ecuación: Peso_estimado_bebe_gramos si los padres estan casados = 3418.27 - 273.83 * (1) = 3144.44 gr Peso_estimado_bebe_gramos si los padres no estan casados = 3418.27 - 273.83 * (0) = 3418.27 gr

  • El coeficiente de determinación R2 = 0.032, indica que el 3.2% de la variabilidad del peso al nacer del bebé, es explicada si la madre esta casada; el 96.8% restante es explicado por otras variables no incluidas en este modelo. La regresión lineal simple con sólo estas dos variables no es muy buen modelo para predecir el peso.