Está en la página 1de 19

Tarea 1 Métodos Cuantitativos II

Isidora Vergara
2023-10-21

Pregunta 1
Efectivamente, como indica la autoridad 1, al utilizar datos muestrales no basta con “analizar números y
variaciones absolutas”, correspondientes a la estimación de un punto y su variación anual, sino que se
requiere testear si las diferencias son estadísticamente significativas. Esto significa que se debe corroborar
que, si se eligen aleatoriamente otras muestras de la población de interés, existirá (o no) dicha diferencia en
un porcentaje dado de las repeticiones. Este porcentaje corresponde al nivel de confianza definido para las
estimaciones, frecuentemente definido en 95%.

En este sentido, el empleo asalariado público en el trimestre móvil diciembre - febrero 2022 estuvo en el
intervalo [1.057.199, 1.163.654] y en el mismo período en 2023 estuvo en [1.140.801, 1.253.295].

Testear la significancia de esa diferencia se puede hacer de forma equivalente con un test t o Z, según
corresponda (Z en este caso), o con intervalos de confianza, si se considera un mismo nivel de confianza. En
este caso, como existe una superposición entre los valores de ambos intervalos, entonces la diferencia anual
entre el número de asalariados públicos no es estadísticamente significativa para el nivel de confianza con
que se construyeron los intervalos.

Esta forma de presentar los resultados es, de hecho, bastante útil cuando se presentan datos para múltiples
grupos y es visualmente confuso presentar todos los tests. Al incluir los intervalos de confianza, el lector
puede comprobar rápidamente si hay o no diferencias significativas entre distintos grupos.

Instalación inicial de paquetes


# Nota: tarea está hecha con un R project, en caso contrario hay que agregar un direc
torio:
#setwd("C:/Users/iverg/Desktop/Magíster/Trimestre 2/Métodos cuantitativos II/Tareas/T
area 1")

rm(list = ls())

# Instalación de paquetes.
pacman::p_load(
rio, # importar/exportar datos.
here, # escribir rutas de las carpetas.
janitor, # limpiar datos y tablas.
tidyverse, # Manejo de bases de datos y visualización.
magrittr, # Permite utilizar operador %>% (piping).
skimr, # Inspeccionar datos.
inspectdf, # Inspeccionar datos.
ggplot2, # Paquete para visualización.
AER, # Datos.
gridExtra, # Para graficar.
summarytools, # Estadística descriptiva.
naniar, # Reemplaza NS/NR por missing values.
labelled, # Etiquetas.
rstatix, # Exportación a excel.
expss, # Exportación a excel.
plotly, # Visualizaciones interactivas.
scales, # Escalas gráficos.
patchwork, # Posición gráficos.
kableExtra, # Tablas HTML.
tinytext, # Pdf.
flextable, # Tablas de contingencia.
epitab, # Tablas pdf.
xtable, # Tablas pdf.
estimatr, # Errores robustos símil Stata.
stargazer, # Formato tablas.
texreg, # Regresiones en latex.
knitr # Tablas.
)

Pregunta 2
2a. Estadística descriptiva
# Base original.
datos_p2 <- import("nsw_dw.dta")
attach(datos_p2)

# Variables.
variables <- c("treat", "age", "education", "black", "hispanic", "married",
"nodegree", "re74", "re75", "re78")

# Tabla.
tabla_p2a <- psych::describe(datos_p2[variables]) %>%
mutate_if(is.numeric, round, 2) %>%
select(mean, sd) %>%
kable(caption = "Promedio y desviación estándar de las variables de interés",
align ="rr",
col.names = c("Promedio","Desv. estándar")) %>%
kable_styling(bootstrap_options = c("striped", position = "center"),
latex_options = "HOLD_position")
tabla_p2a

Promedio y desviación estándar de las variables de interés

Promedio Desv. estándar

treat 0.42 0.49

age 25.37 7.10

education 10.20 1.79

black 0.83 0.37

hispanic 0.09 0.28

married 0.17 0.37

nodegree 0.78 0.41

re74 2102.27 5363.58

re75 1377.14 3150.96

re78 5300.76 6631.49

2b. Boxplot de ingresos por grupo de tratamiento


# Formato variable treat.
datos_p2 <- datos_p2 %>% mutate(treat = as.factor(treat),
treat = case_when(treat %in% c(0) ~ "Control",
treat %in% c(1) ~ "Tratamiento"))

# Boxplot.
boxplot_p2b <- ggplot(subset(datos_p2, (!is.na(treat) & !is.na(re78))), aes(x=treat,
y=re78)) +
geom_boxplot(
# Boxes.
color="dodgerblue2",
fill="skyblue2",
alpha=0.5,
# Outliers.
outlier.colour="pink",
outlier.fill="pink",
outlier.size=3) +
theme_classic() +
theme(plot.caption = element_text(hjust = -0.11),
plot.title = element_text(size = rel(1.1), face = "bold"),
legend.position="none") +
labs(
title="Boxplot de ingresos en 1978 según grupo de tratamiento",
x="Grupo de tratamiento", y="Ingreso en 1978 (UM)",
caption = "Fuente: elaboración propia en base a datos National Supported Wor
k.")
boxplot_p2b

2c. Modelo de regresión lineal


# Modelo.
p2c <- lm(re78 ~ treat, data = datos_p2)
p2c_r <- coeftest(p2c, vcov = vcovHC(p2c, type = "HC1"))

# Intervalo de confianza manual al 95% y 445 observaciones.


lim_inf <- 1794.342 - 1.96*670.824
lim_sup <- 1794.342 + 1.96*670.824
print(paste("El límite inferior es", round(lim_inf, digits=2),
"y el límite superior es", round(lim_sup, digits=2)))

## [1] "El límite inferior es 479.53 y el límite superior es 3109.16"

# Tabla con error estándar e intervalos de confianza al 95%.


models <- list(p2c_r)
stargazer(models,type="text",ci=TRUE,
title = 'Modelo de regresión lineal con errores robustos e intervalos de co
nfianza al 95%')

##
## Modelo de regresión lineal con errores robustos e intervalos de confianza al 95%
## ============================================
## Dependent variable:
## ---------------------------
##
## --------------------------------------------
## treatTratamiento 1,794.342***
## (479.551, 3,109.134)
##
## Constant 4,554.801***
## (3,888.014, 5,221.588)
##
## ============================================
## ============================================
## Note: *p<0.1; **p<0.05; ***p<0.01

El coeficiente es 1.794,342 y es estadísticamente significativo a un nivel de confianza de 90%, 95% y 99%.


Esto significa que, manteniendo todo lo demás constante, el participar en el programa de inserción laboral
aumenta significativamente en 1.794 unidades monetarias el ingreso en 1978 en comparación a no haber
participado del programa.

Este coeficiente es estadísticamente significativo, lo que se observa claramente al construir los intervalos de
confianza con un nivel de confianza del 95%, sin estar contenido el valor cero en ellos.

2d. Relación causal


Para que esta especificación esté midiendo un efecto causal, se requiere que la variable tratamiento no esté
correlacionada con el término de error. Si los grupos de control y tratamiento están bien definidos en la
aleatorización, entonces la variable tratamiento no está correlacionado con el término de error, por lo que, en
teoría, no es necesario controlar por otras variables y se estaría midiendo causal. En caso contrario, el efecto
medido no es causal.

2e. Modelo de regresión lineal múltiple


# Edad al cuadrado.
datos_p2 <- datos_p2 %>% mutate(age2 = age^2)

# Modelo.
p2e <- lm(re78 ~ treat + education + age + age2 + black + hispanic +
married + nodegree + re74 + re75, data = datos_p2)
p2e_r <- coeftest(p2e, vcov = vcovHC(p2e, type = "HC1"))

# Tabla.
models <- list(p2c_r, p2e_r)
stargazer(models,type="text", ci=TRUE,
title = 'Modelo de regresión lineal múltiple con errores robustos')
##
## Modelo de regresión lineal múltiple con errores robustos
## ================================================================
## Dependent variable:
## -----------------------------------------------
##
## (1) (2)
## ----------------------------------------------------------------
## treatTratamiento 1,794.342*** 1,675.862**
## (479.551, 3,109.134) (349.181, 3,002.544)
##
## education 385.016**
## (5.137, 764.895)
##
## age 141.731
## (-358.293, 641.754)
##
## age2 -1.435
## (-9.411, 6.540)
##
## black -2,155.641**
## (-4,136.959, -174.324)
##
## hispanic 187.263
## (-2,501.044, 2,875.569)
##
## married -184.894
## (-1,975.834, 1,606.046)
##
## nodegree -55.545
## (-2,089.815, 1,978.726)
##
## re74 0.081
## (-0.129, 0.292)
##
## re75 0.051
## (-0.192, 0.294)
##
## Constant 4,554.801*** -307.012
## (3,888.014, 5,221.588) (-10,194.730, 9,580.707)
##
## ================================================================
## ================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01

Se observa que cambia el efecto del tratamiento en los ingresos de 1978, disminuyendo el coeficiente
estimado del tratamiento (no se está testeando esta diferencia). En particular, se estima en el segundo modelo
que, manteniendo todo lo demás constante, el recibir el tratamiento tiene un efecto positivo en el ingreso en
1978 de 1.675,862 unidades monetarias respecto a no recibir el tratamiento.
También se observa que las variables educación y raza negra tienen un efecto significativo en los ingresos de
1978, señal de que la aleatorización puede haber tenido cierto sesgo, existiendo una correlación entre la
variable tratamiento y el término del error.

Pregunta 3
3a. Estadística descriptiva
# Base original.
datos_p3 <- import("cps_nsw.dta")
attach(datos_p3)

# Variables.
variables <- c("treat", "age", "agesq", "education", "black", "hispanic",
"married", "nodegree", "re74", "re75", "re78")

# Tabla.
tabla_p3a <- psych::describe(datos_p3[variables]) %>%
mutate_if(is.numeric, round, 2) %>%
select(mean, sd) %>%
kable(caption = "Promedio y desviación estándar de las variables de interés",
align ="rr",
col.names = c("Promedio","Desv. estándar")) %>%
kable_styling(bootstrap_options = c("striped", position = "center"),
latex_options = "HOLD_position")
tabla_p3a

Promedio y desviación estándar de las variables de interés

Promedio Desv. estándar

treat 0.03 0.17

age 28.08 11.09

agesq 911.40 747.93

education 11.74 2.91

black 0.12 0.32

hispanic 0.08 0.27

married 0.46 0.50

nodegree 0.39 0.49


re74 3329.33 3977.15

re75 3362.73 3777.91

re78 7426.70 7567.99

# Tests de medias (ambas bases no tienen missing values).


test_age <- (28.08-25.37)/((11.09^2/6048+7.10^2/445)^1/2) # Significativo al 95%.
test_educ <- (11.74-10.20)/((2.91^2/6048+1.79^2/445)^1/2) # Significativo al 95%.
test_74 <- (3329.33-2102.27)/((3977.15^2/6048+5363.58^2/445)^1/2) # No significativo
al 95%.
test_75 <- (3362.73-1377.14)/((3777.91^2/6048+3150.96^2/445)^1/2) # No significativo
al 95%.
test_78 <- (7426.70-5300.76)/((7567.99^2/6048+6631.49^2/445)^1/2) # No significativo
al 95%.

Se observa que en esta base el grupo de tratamiento pasa a ser relativamente menos relevante,
representando sólo el 3% de la muestra, al incorporar un grupo de control de mayor tamaño.

Respecto a la muestra con los grupos de tratamiento y control aleatorizados, esta base presenta una mayor
edad promedio (28.08 versus 25.37) y mayor educación media (11.74 versus 10.20).

Considerando la representatividad de esta última encuesta, los resultados de esta estadística descriptiva
constituyen una primera señal de que el universo de personas en base a la cual se definieron los grupos de
tratamiento y control del programa de inserción laboral podría no ser representativo de la población de
interés, poniendo en riesgo la validez externa de las estimaciones.

3b. Modelo de regresión lineal


# Modelo.
p3b <- lm(re78 ~ treat, data = datos_p3)
p3b_r <- coeftest(p3b, vcov = vcovHC(p3b, type = "HC1"))

# Tabla con error estándar..


models <- list(p3b_r)
stargazer(models,type="text",
title = 'Modelo de regresión lineal')
##
## Modelo de regresión lineal
## ====================================
## Dependent variable:
## ---------------------------
##
## ------------------------------------
## treat -1,111.559*
## (585.334)
##
## Constant 7,460.703***
## (98.696)
##
## ====================================
## ====================================
## Note: *p<0.1; **p<0.05; ***p<0.01

En este caso, se estima que el grupo de tratamiento tiene, en promedio, un ingreso en 1978 1.111,559
unidades monetarias menor que el grupo de control. Este efecto es significativo al 90%.

Considerando que en estos datos los grupos no se construyeron de forma aleatoria, no se puede atribuir
causalidad al efecto estimado, ya que hay correlación entre la variable tratamiento y el término de error.

3c. Modelo de regresión lineal múltiple


# Modelo.
p3c <- lm(re78 ~ treat + education + age + agesq + black + hispanic +
married + nodegree, data = datos_p3)
p3c_r <- coeftest(p3c, vcov = vcovHC(p3c, type = "HC1"))

# Tabla.
models <- list(p3b_r, p3c_r)
stargazer(models,type="text",
title = 'Modelo de regresión lineal con errores robustos')
##
## Modelo de regresión lineal con errores robustos
## ======================================
## Dependent variable:
## ----------------------------
##
## (1) (2)
## --------------------------------------
## treat -1,111.559* 157.942
## (585.334) (618.031)
##
## education 178.295***
## (50.670)
##
## age -61.971
## (65.335)
##
## agesq -1.373
## (0.930)
##
## black -1,546.107***
## (288.881)
##
## hispanic 552.439
## (348.081)
##
## married 610.977**
## (250.538)
##
## nodegree -268.513
## (290.012)
##
## Constant 7,460.703*** 8,276.861***
## (98.696) (1,197.014)
##
## ======================================
## ======================================
## Note: *p<0.1; **p<0.05; ***p<0.01

Hay diferencias importantes entre ambos modelos. El efecto estimado del tratamiento pasa a ser positivo y
estadísticamente no significativo en la especificación con múltiples controles. En ese contexto, se estima que
la educación y estar casado tiene un efecto positivo y estadísticamente significativo en los ingresos de 1978,
mientras que ser de raza negra tiene un efecto negativo y estadísticamente significativo en el ingreso.

Así, el modelo corto que establecía que el tratamiento afectaba negativamente el ingreso de 1978 en realidad
estaba capturando el efecto de otras variables anteriormente omitidas y que eran relevantes al no estar los
grupos aleatorizados.
3d. Modelo de regresión lineal múltiple con
controles adicionales
# Modelo.
p3d <- lm(re78 ~ treat + education + age + agesq + black + hispanic +
married + nodegree + re74 + re75, data = datos_p3)
p3d_r <- coeftest(p3d, vcov = vcovHC(p3d, type = "HC1"))

# Tabla.
models <- list(p3b_r, p3c_r, p3d_r)
stargazer(models,type="text",
title = 'Modelo de regresión lineal con errores robustos')
##
## Modelo de regresión lineal con errores robustos
## ==================================================
## Dependent variable:
## ----------------------------------------
##
## (1) (2) (3)
## --------------------------------------------------
## treat -1,111.559* 157.942 1,505.868**
## (585.334) (618.031) (641.122)
##
## education 178.295*** 361.800***
## (50.670) (46.896)
##
## age -61.971 -313.529***
## (65.335) (59.858)
##
## agesq -1.373 2.588***
## (0.930) (0.846)
##
## black -1,546.107*** -1,347.961***
## (288.881) (271.662)
##
## hispanic 552.439 328.610
## (348.081) (324.117)
##
## married 610.977** 80.659
## (250.538) (231.342)
##
## nodegree -268.513 759.802***
## (290.012) (272.399)
##
## re74 0.297***
## (0.030)
##
## re75 0.605***
## (0.030)
##
## Constant 7,460.703*** 8,276.861*** 6,350.989***
## (98.696) (1,197.014) (1,099.136)
##
## ==================================================
## ==================================================
## Note: *p<0.1; **p<0.05; ***p<0.01

Finalmente, al incorporar los ingresos de 1974 y 1975 nuevamente cambia la magnitud y la significancia de la
variable tratamiento. En particular, se estima que quienes reciben el tratamiento tienen, todo lo demás
constante, un ingreso 1.505,868 superior a quienes no reciben el tratamiento. Este modelo está mejor
especificado que el anterior, al añadir variables que se esperaría que influyan en los ingresos de 1978, pero no
permite aún establecer causalidades (por ejemplo, no se está controlando por la variable género).

Se estima que tener un mayor ingreso en 1974 y 1975 tiene, en promedio, un efecto positivo en el ingreso de
1978, con coeficientes de baja magnitud pero significativos al 99%.

Pregunta 4
4a. Modelo de regresión lineal: salario y
educación
# Base original.
datos_p4 <- import("WAGE2.dta")
attach(datos_p4)

# Modelo de regresión simple.


p4a <- lm(lwage ~ educ, data = datos_p4)
p4a_r <- coeftest(p4a, vcov = vcovHC(p4a, type = "HC1"))

# Tabla.
modelos_p4 <- list(p4a_r)
stargazer(modelos_p4,
title = 'Regresión logaritmo natural del salario con educación',
digits = 2, type = 'text', header = FALSE)

##
## Regresión logaritmo natural del salario con educación
## ====================================
## Dependent variable:
## ---------------------------
##
## ------------------------------------
## educ 0.06***
## (0.01)
##
## Constant 5.97***
## (0.08)
##
## ====================================
## ====================================
## Note: *p<0.1; **p<0.05; ***p<0.01

De acuerdo a esta especificación, un año de educación adicional aumenta significativamente en un 6% el


salario. Esta especificación difícilmente es interpretable como causalidad, ya que hay sesgo por omisión de
variables relevantes, al no estar controlando por una serie de variables que, teóricamente, pueden afectar el
salario (por ejemplo, edad, experiencia, sexo, entre otras). Asimismo, existe sesgo de selección, ya que se
observan sólo los ingresos de quienes están trabajando, por lo que la muestra no fue elegida aleatoriamente
(está truncada al no considerar a quienes “optan” por no entrar al mercado laboral). Por último, también
puede haber simultaneidad a partir de cierto nivel de años de escolaridad, en que mayores ingresos puedan
explicar que se alcancen mayores niveles educativos (por ejemplo, de posgrado).

4b. Omisión de variable relevante


La omisión de una variable relevante en el modelo hace que la estimación de los coeficientes de las variables
que sí se encuentran incluidas en el modelo puedan capturar el efecto que en realidad corresponde a la
variable omitida.

Particularmente, en el caso de un modelo de retornos por año de educación, se espera que el omitir la
habilidad innata como variable explicativa de los salarios pueda sesgar positivamente el retorno por año de
educación (el coeficiente de esta variable) si existe una covarianza positiva entre educación y habilidad, lo que
podría esperarse, dado que el costo relativo de estudiar es menor para quienes tienen mayor habilidad
innata). También será positivo el sesgo si es que los individuos más hábiles perciben más ingresos.

4c. Modelo de regresión lineal: salario, educación


y habilidad
# Modelo de regresión simple.
p4c <- lm(lwage ~ educ + IQ, data = datos_p4)
p4c_r <- coeftest(p4c, vcov = vcovHC(p4c, type = "HC1"))

# Tabla.
modelos_p4 <- list(p4a_r, p4c_r)
stargazer(modelos_p4, ci=TRUE,
title = 'Regresión logaritmo natural del salario con educación y habil
idad',
digits = 3, type = 'text', header = FALSE)
##
## Regresión logaritmo natural del salario con educación y habilidad
## ======================================
## Dependent variable:
## -----------------------------
##
## (1) (2)
## --------------------------------------
## educ 0.060*** 0.039***
## (0.048, 0.072) (0.025, 0.053)
##
## IQ 0.006***
## (0.004, 0.008)
##
## Constant 5.973*** 5.658***
## (5.812, 6.134) (5.473, 5.843)
##
## ======================================
## ======================================
## Note: *p<0.1; **p<0.05; ***p<0.01

Se observa que disminuye el efecto de un año de educación en el ingreso de 1978, en comparación al


modelo en que se omitía la variable IQ como proxy de la habilidad innata, manteniéndose positivo y
estadísticamente significativo el efecto de la escolaridad. Esto se debe a que la variable educación
probablemente estaba capturando el efecto de otras variables relevantes que estaban siendo omitidas. En
este caso, el IQ se utiliza como proxy de habilidad innata y tiene un efecto positivo y estadísticamente
significativo sobre el logaritmo del salario. En particular, cuando el puntaje de IQ aumenta en 1, el salario
aumenta en 0,6% promedio, manteniendo constante el resto de las variables del modelo.

4d. Omisión de variable relevante


# Regresión IQ y educ.
p4d_inic <- lm(IQ ~ educ, data = datos_p4)
p4d_inic_r <- coeftest(p4d_inic, vcov = vcovHC(p4d_inic, type = "HC1"))

# Modelo corto y modelo largo y regresión IQ y educ.


modelos_p4 <- list(p4a_r, p4c_r, p4d_inic_r)
stargazer(modelos_p4,
title = 'Regresión educación y habilidad',
digits = 3, type = 'text', header = FALSE)
##
## Regresión educación y habilidad
## ======================================
## Dependent variable:
## -----------------------------
##
## (1) (2) (3)
## --------------------------------------
## educ 0.060*** 0.039*** 3.534***
## (0.006) (0.007) (0.184)
##
## IQ 0.006***
## (0.001)
##
## Constant 5.973*** 5.658*** 53.687***
## (0.082) (0.094) (2.545)
##
## ======================================
## ======================================
## Note: *p<0.1; **p<0.05; ***p<0.01

Modelo corto: lwage = 5.973 + 0.060*educ + u_i

Modelo largo: lwage = 5.658 + 0.039*educ + 0.006*IQ + e_i

Relación entre educación y habilidad innata (IQ): IQ = 53.687 + 3.534*educ + v_i

El sesgo de variable omitida se define como: beta_1 = beta_2 * [cov(educ,IQ) / var(educ)] Donde beta_1
corresponde al coeficiente de educación en el modelo largo y beta_2 corresponde al coeficiente de IQ en el
modelo largo.

Por lo tanto: sesgo = 0.039 + 0.006 * 3.534 = 0.060

De esta forma, se observa que el sesgo es positivo (dado por el signo de 0.006 * 3.534) y que el coeficiente
estimado para educación en el modelo corto es 0.060 (como se observa en el primer modelo de la tabla).

4e. Modelo de regresión lineal: salario y múltiples


controles
# Modelo de regresión simple.
p4e <- lm(lwage ~ educ + IQ + exper + tenure + married + south + urban,
data = datos_p4)
p4e_r <- coeftest(p4e, vcov = vcovHC(p4e, type = "HC1"))

# Tabla.
modelos_p4 <- list(p4a_r, p4c_r, p4e_r)
stargazer(modelos_p4,
title = 'Regresión logaritmo natural del salario con múltiples control
es',
digits = 2, type = 'text', header = FALSE)

##
## Regresión logaritmo natural del salario con múltiples controles
## ======================================
## Dependent variable:
## -----------------------------
##
## (1) (2) (3)
## --------------------------------------
## educ 0.06*** 0.04*** 0.05***
## (0.01) (0.01) (0.01)
##
## IQ 0.01*** 0.005***
## (0.001) (0.001)
##
## exper 0.01***
## (0.003)
##
## tenure 0.01***
## (0.003)
##
## married 0.21***
## (0.04)
##
## south -0.10***
## (0.03)
##
## urban 0.17***
## (0.03)
##
## Constant 5.97*** 5.66*** 5.05***
## (0.08) (0.09) (0.12)
##
## ======================================
## ======================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Por último, al controlar por más variables que, teóricamente, podrían explicar los salarios, se observa que un
año adicional de educación tendría un efecto estadísticamente significativo de 5% sobre los salarios. La
variable IQ, proxy de habilidad innata, disminuye en su magnitud respecto al modelo especificado en b,
aunque se mantiene estadísticamente significativa. Otras variables como experiencia, tenure (posesión), estar
casado y vivir en áreas urbanas tiene un efecto positivo y significativo en los salarios. Vivir en el sur (datos de
USA) tiene un efecto negativo y significativo en los salarios. Este modelo parece está mejor especificado,
controlando por variables documentadas en la literatura sobre ecuaciones de ingresos, y con un R cuadrado
ajustado de 25% (es decir, un cuarto de la varianza de los ingresos puede explicarse por la variación de estas
variables).

También podría gustarte