Para esta práctica revisaremos los factores asociados con la fecundidad en el mundo. Para ello utilizaremos datos compilados por el proyecto Gapminder (https://www.gapminder.org/).
Antes de empezar debemos cargar un par de paquetes de R.
“ggplot2” para realizar gráficos estadísticos
“stargazer” para presentación de resultados de regresión
Carga de paquetes
library(ggplot2)#avisar en caso de error
library(stargazer)
Carga de datos
load("dataWorld_q.rda")
Exploración de “dataWorld”
names(dataWorld_q)
## [1] "country" "quinq" "tfr" "yearSchF" "contracep"
## [6] "age1mar" "sanitat" "water" "birthSkill" "childMort"
## [11] "deathRate" "extPov" "famWorkFem" "femWork" "incomePp"
## [16] "income10p" "gini" "lifExpFem" "lifExpTot" "maleWork"
## [21] "materMort" "vaccMeas" "schGenEq" "doctor" "teenFert"
head(dataWorld_q, 20)
## country quinq tfr yearSchF contracep age1mar sanitat water
## 1 Afghanistan 1950-1954 7.550 NaN NaN NaN NaN NaN
## 2 Albania 1950-1954 6.122 NaN NaN NaN NaN NaN
## 3 Algeria 1950-1954 7.448 NaN NaN 19.6 NaN NaN
## 4 Angola 1950-1954 7.152 NaN NaN NaN NaN NaN
## 5 Antigua and Barbuda 1950-1954 4.492 NaN NaN NaN NaN NaN
## 6 Argentina 1950-1954 3.156 NaN NaN NaN NaN NaN
## 7 Armenia 1950-1954 4.498 NaN NaN NaN NaN NaN
## 8 Australia 1950-1954 3.140 NaN NaN 22.6 NaN NaN
## 9 Austria 1950-1954 2.040 NaN NaN 25.3 NaN NaN
## 10 Azerbaijan 1950-1954 5.272 NaN NaN NaN NaN NaN
## 11 Bahamas 1950-1954 4.034 NaN NaN NaN NaN NaN
## 12 Bahrain 1950-1954 6.980 NaN NaN NaN NaN NaN
## 13 Bangladesh 1950-1954 6.334 NaN NaN 14.4 NaN NaN
## 14 Barbados 1950-1954 4.438 NaN NaN NaN NaN NaN
## 15 Belarus 1950-1954 2.594 NaN NaN NaN NaN NaN
## 16 Belgium 1950-1954 2.344 NaN NaN 23.3 NaN NaN
## 17 Belize 1950-1954 6.658 NaN NaN NaN NaN NaN
## 18 Benin 1950-1954 5.836 NaN NaN NaN NaN NaN
## 19 Bhutan 1950-1954 6.670 NaN NaN NaN NaN NaN
## 20 Bolivia 1950-1954 6.746 NaN NaN NaN NaN NaN
## birthSkill childMort deathRate extPov famWorkFem femWork incomePp income10p
## 1 NaN 413.40 37.140 NaN NaN NaN 1084 NaN
## 2 NaN 258.80 16.280 NaN NaN NaN 2034 NaN
## 3 NaN 257.60 23.200 NaN NaN NaN 4104 NaN
## 4 NaN 325.80 35.040 NaN NaN NaN 3298 NaN
## 5 NaN 135.80 10.760 NaN NaN NaN 3648 NaN
## 6 NaN 88.26 9.146 NaN NaN NaN 8152 NaN
## 7 NaN 133.40 11.880 NaN NaN NaN 1920 NaN
## 8 NaN 30.22 9.356 NaN NaN NaN 12260 NaN
## 9 NaN 59.52 12.280 NaN NaN NaN 7592 NaN
## 10 NaN 169.20 14.220 NaN NaN NaN 3772 NaN
## 11 NaN 52.62 10.528 NaN NaN NaN 11100 NaN
## 12 NaN 309.60 21.360 NaN NaN NaN 17440 NaN
## 13 NaN 329.60 25.140 NaN NaN NaN 1044 NaN
## 14 NaN 182.60 13.540 NaN NaN NaN 3356 NaN
## 15 NaN 113.02 13.100 NaN NaN NaN 2956 NaN
## 16 NaN 53.66 12.280 NaN NaN NaN 10840 NaN
## 17 NaN 167.20 13.960 NaN NaN NaN 1894 NaN
## 18 NaN 342.80 34.960 NaN NaN NaN 1240 NaN
## 19 NaN 379.60 31.400 NaN NaN NaN 868 NaN
## 20 NaN 316.80 27.780 NaN NaN NaN 3194 NaN
## gini lifExpFem lifExpTot maleWork materMort vaccMeas schGenEq doctor
## 1 NaN 29.22 33.10 NaN NaN NaN NaN NaN
## 2 NaN 55.88 55.34 NaN NaN NaN NaN NaN
## 3 NaN 43.36 47.66 NaN NaN NaN NaN NaN
## 4 NaN 32.72 37.56 NaN NaN NaN NaN NaN
## 5 NaN 60.56 59.04 NaN NaN NaN NaN NaN
## 6 NaN 64.92 61.50 NaN NaN NaN NaN NaN
## 7 NaN 65.76 59.22 NaN NaN NaN NaN NaN
## 8 NaN 72.16 69.58 NaN 87.84 NaN NaN NaN
## 9 NaN 68.94 66.26 NaN NaN NaN NaN NaN
## 10 NaN 61.32 55.02 NaN NaN NaN NaN NaN
## 11 NaN 61.22 59.04 NaN NaN NaN NaN NaN
## 12 NaN 46.64 43.32 NaN NaN NaN NaN NaN
## 13 NaN 40.76 40.74 NaN NaN NaN NaN NaN
## 14 NaN 59.02 59.96 NaN NaN NaN NaN NaN
## 15 NaN 62.84 64.66 NaN NaN NaN NaN NaN
## 16 NaN 70.20 67.60 NaN 105.64 NaN NaN NaN
## 17 NaN 57.08 56.32 NaN NaN NaN NaN NaN
## 18 NaN 33.68 36.66 NaN NaN NaN NaN NaN
## 19 NaN 32.60 37.08 NaN NaN NaN NaN NaN
## 20 NaN 41.32 43.50 NaN NaN NaN NaN NaN
## teenFert
## 1 NaN
## 2 NaN
## 3 NaN
## 4 NaN
## 5 NaN
## 6 62.400
## 7 NaN
## 8 38.580
## 9 33.575
## 10 NaN
## 11 NaN
## 12 NaN
## 13 NaN
## 14 NaN
## 15 NaN
## 16 NaN
## 17 NaN
## 18 NaN
## 19 NaN
## 20 99.500
En este ejercicio vamos calcular un modelo de regresión lineal simple para la esperanza de vida de las mujeres según la fecundidad para el quinquenio 1995-1999. Organice su respuesta considerando los siguientes puntos:
Variable dependiente: Expectativa de vida (“lifExpFem”)
Variable independiente: Tasa de fecundidad (“tfr”)
Exploración gráfica
ggplot(dataWorld_q[dataWorld_q$quinq=="1995-1999",], aes(x=tfr, y=lifExpFem)) +
geom_point() +
geom_smooth(method="lm", se = F) +
xlab("Número de hijos por mujer") +
ylab("Esperanza de vida en años") +
ggtitle("Mundo 1995-1999: Esperanza de vida al nacer de las mujeres según \ntasa global de fecundidad")
Estimación de parámetros y bondad de ajuste
reg_evida1 <- lm(lifExpFem ~ tfr,
data = dataWorld_q[dataWorld_q$quinq=="1995-1999",])
summary(reg_evida1)
##
## Call:
## lm(formula = lifExpFem ~ tfr, data = dataWorld_q[dataWorld_q$quinq ==
## "1995-1999", ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.4436 -2.8010 0.5704 3.3742 15.7574
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 86.3094 0.8347 103.40 <2e-16 ***
## tfr -5.1315 0.2098 -24.46 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.154 on 182 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.7667, Adjusted R-squared: 0.7654
## F-statistic: 598.1 on 1 and 182 DF, p-value: < 2.2e-16
Preguntas
¿Cuál es el valor de la pendiente?
¿Cuál es el valor de la constante?
¿Se trata de una relación directa o inversa?
¿En cuánto aumenta o disminuye la expectativa de vida por cada hijo en promedio adicional?
Evalúe el desempeño del modelo
Evalúe si la variable independiente tiene un “efecto” estadísticamente significativa sobre la variable dependiente.
Considere H0: B1 = 0; H1: B1 ≠ 0.
reg_evida2 <- lm(lifExpFem ~ tfr,
data = dataWorld_q[dataWorld_q$quinq=="2015-2019",])
summary(reg_evida2)
##
## Call:
## lm(formula = lifExpFem ~ tfr, data = dataWorld_q[dataWorld_q$quinq ==
## "2015-2019", ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.1850 -2.2070 0.2299 2.8533 10.9325
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 88.6175 0.7295 121.47 <2e-16 ***
## tfr -5.1858 0.2364 -21.93 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.251 on 182 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.7255, Adjusted R-squared: 0.724
## F-statistic: 481 on 1 and 182 DF, p-value: < 2.2e-16
Comparación de modelos de regresión simple
stargazer(reg_evida1 , reg_evida2 , type = "text",
omit.stat=c("ser", "f"),
dep.var.labels = "Expectativa de vida femenina",
dep.var.caption = "Variable dependiente:",
star.cutoffs = c(0.05, 0.01, 0.001))
##
## ===========================================
## Variable dependiente:
## ------------------------------
## Expectativa de vida femenina
## (1) (2)
## -------------------------------------------
## tfr -5.132*** -5.186***
## (0.210) (0.236)
##
## Constant 86.309*** 88.617***
## (0.835) (0.730)
##
## -------------------------------------------
## Observations 184 184
## R2 0.767 0.725
## Adjusted R2 0.765 0.724
## ===========================================
## Note: *p<0.05; **p<0.01; ***p<0.001
RPTA: El modelo del quinquenio 1995-1999 presenta mejor desempeño (R 2 ajustado = 76.5%).
Estimación puntual
Durante el quinquenio 1995-1999:
new.data <- data.frame(tfr = 4)
predict(reg_evida1 , new.data, type = "response")
## 1
## 65.78326
new.data <- data.frame(tfr = 5)
predict(reg_evida1 , new.data, type = "response")
## 1
## 60.65172
Exploración gráfica (2015-2019)
ggplot(dataWorld_q[dataWorld_q$quinq=="2015-2019",], aes(x=tfr, y=lifExpFem)) +
geom_point() + geom_smooth(method="lm", se = F) + xlab("Número de hijos por mujer") +
ylab("Esperanza de vida en años") +
ggtitle("Mundo 2015-2019: Esperanza de vida al nacer de las mujeres según \ntasa global de fecundidad")
Cálculo del modelo
reg_evida1 <- lm(lifExpFem ~ tfr,
data = dataWorld_q[dataWorld_q$quinq == "2015-2019", ])
summary(reg_evida1)
##
## Call:
## lm(formula = lifExpFem ~ tfr, data = dataWorld_q[dataWorld_q$quinq ==
## "2015-2019", ])
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.1850 -2.2070 0.2299 2.8533 10.9325
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 88.6175 0.7295 121.47 <2e-16 ***
## tfr -5.1858 0.2364 -21.93 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.251 on 182 degrees of freedom
## (10 observations deleted due to missingness)
## Multiple R-squared: 0.7255, Adjusted R-squared: 0.724
## F-statistic: 481 on 1 and 182 DF, p-value: < 2.2e-16