Práctica dirigida: correlación y regresión

César Córdova

7/4/2021

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.

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

Ejercicio 1

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


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

Recordatorio de clase de teoría

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