La tarea debe entregarse de manera individual, pero se recomienda ampliamente colaborar en grupos de estudio. Las secciones teóricas deben estar desarrolladas en un procesador de textos y enviadas en formato .docx o .pdf. Alternativamente, puede escribir sus respuestas en lápiz y papel, con letra legible y adjuntar un escaneo de sus respuestas. Las secciones prácticas deberán contener archivos de código replicable y archivos de salida en R (o similares, en caso de usar otro software) para considerarse completas. Las tareas deben entregarse antes de la fecha límite a través de Teams. Puede crear una carpeta comprimida que contenga todos sus archivos y subir esta carpeta en Teams. Recuerde que en Teams debe asegurarse de que los archivos se han subido correctamente.
Basado en Abadie, Diamond, & Hainmueller (2010).1
En la Sesión 22 estimamos el control sintético para los datos de California y la Proposición 99. La función synth, que realiza la optimización para estimar \(V\) y \(W\), usa por defecto el optimizador de Nelder-Mead. Este método es un optimizador que no requiere especificar derivadas y que es útil para problemas altamente no lineales. A costa de estos beneficios, el optimizador de Nelder-Mead puede ser computacionalmente intensivo. La opción optimxmethod de la función synth permite implementar el control sintético con otros métodos de optimización. Una alternativa es el método nlm, un método basado en métodos newtonianos por medio de aproximaciones usando derivadas. Este segundo método es mucho más rápido, pero menos exacto.panel.ca <- as.data.frame(read_csv("Datos/california_panel.csv"))
head(panel.ca)
state_id state year cigsale lnincome beer age15to24 retprice
1 1 Alabama 1970 89.8 NA NA 0.1788618 39.6
2 1 Alabama 1971 95.4 NA NA 0.1799278 42.7
3 1 Alabama 1972 101.1 9.498476 NA 0.1809939 42.3
4 1 Alabama 1973 102.9 9.550107 NA 0.1820599 42.1
5 1 Alabama 1974 108.2 9.537163 NA 0.1831260 43.1
6 1 Alabama 1975 111.7 9.540031 NA 0.1841921 46.6
dataprep.out <-
dataprep(panel.ca,
predictors= c("lnincome", "beer",
"age15to24","retprice"),
predictors.op = c("mean"),
dependent = c("cigsale"),
unit.variable = c("state_id"),
time.variable = c("year"),
special.predictors = list(
list("cigsale",1975,c("mean")),
list("cigsale",1980,c("mean")),
list("cigsale",1988,c("mean"))),
treatment.identifier = 3,
controls.identifier = c(1:2,4:39),
time.predictors.prior = c(1980:1988),
time.optimize.ssr = c(1970:1988),
unit.names.variable = c("state"),
time.plot = c(1970:2000))
synth.out <- synth(data.prep.obj = dataprep.out)
synth.tables <- synth.tab(dataprep.res = dataprep.out,
synth.res = synth.out)
synth.out_nlm <- synth(data.prep.obj = dataprep.out,
optimxmethod = c("nlm"))
synth.tables_nlm <- synth.tab(dataprep.res = dataprep.out,
synth.res = synth.out_nlm)
print(synth.tables_nlm)
$tab.pred
Treated Synthetic Sample Mean
lnincome 10.077 9.894 9.829
beer 24.280 23.263 23.655
age15to24 0.174 0.176 0.173
retprice 89.422 89.030 87.266
special.cigsale.1975 127.100 126.723 136.932
special.cigsale.1980 120.200 120.390 138.089
special.cigsale.1988 90.100 91.807 113.824
$tab.v
v.weights
lnincome 0.001
beer 0.001
age15to24 0.001
retprice 0.007
special.cigsale.1975 0.525
special.cigsale.1980 0.397
special.cigsale.1988 0.068
$tab.w
w.weights unit.names unit.numbers
1 0.000 Alabama 1
2 0.000 Arkansas 2
4 0.328 Colorado 4
5 0.066 Connecticut 5
6 0.000 Delaware 6
7 0.000 Georgia 7
8 0.000 Idaho 8
9 0.000 Illinois 9
10 0.000 Indiana 10
11 0.000 Iowa 11
12 0.000 Kansas 12
13 0.000 Kentucky 13
14 0.000 Louisiana 14
15 0.000 Maine 15
16 0.000 Minnesota 16
17 0.000 Mississippi 17
18 0.000 Missouri 18
19 0.000 Montana 19
20 0.000 Nebraska 20
21 0.236 Nevada 21
22 0.000 New Hampshire 22
23 0.000 New Mexico 23
24 0.000 North Carolina 24
25 0.000 North Dakota 25
26 0.000 Ohio 26
27 0.000 Oklahoma 27
28 0.000 Pennsylvania 28
29 0.000 Rhode Island 29
30 0.000 South Carolina 30
31 0.000 South Dakota 31
32 0.000 Tennessee 32
33 0.000 Texas 33
34 0.369 Utah 34
35 0.000 Vermont 35
36 0.000 Virginia 36
37 0.000 West Virginia 37
38 0.000 Wisconsin 38
39 0.000 Wyoming 39
$tab.loss
Loss W Loss V
[1,] 0.002711178 3.836524
==========================================
v.weights v.weights.1
------------------------------------------
lnincome 0.001 0.001
beer 0.012 0.001
age15to24 0.003 0.001
retprice 0.031 0.007
special.cigsale.1975 0.493 0.525
special.cigsale.1980 0.392 0.397
special.cigsale.1988 0.068 0.068
------------------------------------------
Se verifican las observaciones previas. En general los métodos númericos arrojan resultados distintos.
w.weights unit.names w.weights.1
1 0.000 Alabama 0.000
2 0.000 Arkansas 0.000
4 0.175 Colorado 0.328
5 0.062 Connecticut 0.066
6 0.000 Delaware 0.000
7 0.000 Georgia 0.000
8 0.001 Idaho 0.000
9 0.000 Illinois 0.000
10 0.000 Indiana 0.000
11 0.000 Iowa 0.000
12 0.000 Kansas 0.000
13 0.000 Kentucky 0.000
14 0.000 Louisiana 0.000
15 0.000 Maine 0.000
16 0.000 Minnesota 0.000
17 0.000 Mississippi 0.000
18 0.000 Missouri 0.000
19 0.182 Montana 0.000
20 0.000 Nebraska 0.000
21 0.236 Nevada 0.236
22 0.000 New Hampshire 0.000
23 0.000 New Mexico 0.000
24 0.000 North Carolina 0.000
25 0.000 North Dakota 0.000
26 0.000 Ohio 0.000
27 0.000 Oklahoma 0.000
28 0.000 Pennsylvania 0.000
29 0.000 Rhode Island 0.000
30 0.000 South Carolina 0.000
31 0.000 South Dakota 0.000
32 0.000 Tennessee 0.000
33 0.000 Texas 0.000
34 0.343 Utah 0.369
35 0.000 Vermont 0.000
36 0.000 Virginia 0.000
37 0.000 West Virginia 0.000
38 0.000 Wisconsin 0.000
39 0.000 Wyoming 0.000
Se verifican las observaciones previas. En general los métodos númericos arrojan resultados distintos, en este caso algunos pesos son distintos dependiendo del método empleado. Podría pensarse que los resultados del CS serán distintos
#Unidades sintéticas
Ys <- dataprep.out$Y0plot %*% synth.out$solution.w
Ys_nlm <- dataprep.out$Y0plot %*% synth.out_nlm$solution.w
#Unidad verdadera
Y1 <- dataprep.out$Y1plot
#Creamos una basesita
data.plot <- as.data.frame(cbind(Y1,Ys,Ys_nlm))
colnames(data.plot) <- c("Y1","Ys","Ys_nlm")
data.plot <- data.plot %>%
mutate(year=seq(from=1970, to=2000))
#Gráfico de series
data.plot %>%
ggplot()+
geom_line(aes(y=Y1,x=year)) +
geom_line(aes(y=Ys,x=year), linetype = "dashed")+
geom_line(aes(y=Ys_nlm,x=year), linetype = "dashed", color="blue")+
ylab("per-capita cigarette sales (in packs)")+
xlab("year")+
geom_vline(xintercept=1988, color = "black", size=1, linetype="dashed")+
scale_y_continuous(breaks = seq(0,140,20))+
scale_x_continuous(breaks=seq(1970, 2000, 5))
Se puede observar que los CS son diferentes, solo por utilizar un método numérico distinto, y aunque los valores de los pesos en general son diferentes el “comportamiento es similar”. Podemos elaorar una gráfica para observar la diferencia entre los CS
data.plot <- data.plot %>%
mutate(gapcs=Ys-Ys_nlm)
data.plot %>%
ggplot()+
geom_line(aes(y=gapcs,x=year), color="blue") +
ylab("per-capita cigarette sales (in packs)")+
xlab("year")+
geom_vline(xintercept=1988, color = "black", size=1, linetype="dashed")+
geom_hline(yintercept=0, color = "black", size=1, linetype="dashed")+
scale_x_continuous(breaks=seq(1970, 2000, 5))
La diferencia con los métodos utilizados es de apenas dos paquetes. Por lo que la sustitución podría considerarse equivalente.
Basado en Low, H., y Meghir, C. (2017).2
En un modelo estructural (modelo complejo) las ecuaciones indican la manera en que los agentes optimizan la asignación de recursos (toma de desiciones), es decir, especifican la relación entre preferencias y conjuntos de información. Estos modelos se utilizan para evaluar los efectos a largo plazo mediante la construcción de contrafactuales.
Un modelo en forma reducida (modelo simple) identifica el efecto de una variable sobre otra (causalidad), pero a diferencia de los modelos estructurales no hace explicito el comportamiento optimizador de los agentes, sirve para evaluación a corto plazo y no permite la costrucción de contrafactuales.
Son aquellos donde se hacen supuestos sobre los objetivos de los agentes, el conjunto de información y el ambiente. Se especifica sobre que variables se toman decisiones, y los efectos de estas sobre la dinámica (se supone una dinámica estocástica).
Se puede combinar para validar el modelo, comparando el impactos que estima el modelo estructural contra los impacto que estima la forma reducida con datos experimentales.
En el trabajo de Attanasio, Meghir y Santiago (2012) se analiza PROGRESA. Se propone un modelo estructural para la decisión del hogar sobre enviar al niño a la escuela.
Se encuentran las condiciones para la solución óptima del problema.
Se encuetran sendas óptimas para agentes homogéneos y heterogéneos. Asumiendo valores de los parámetros estructurales.
Se obtienen los momentos de la simulación.
Se define la función de criterio a minimizar (mínimos cuadrados ponderados entre simulación y datos).
Basado en Taylor et al. (2016).3
En el modelo de forma reducida no se identifican los efectos de derrame, entonces los efectos del tratamiento están alterados por la existencia de estos efectos de derrame.
El modelo LEWIE toma en cuenta los efectos de los tratados sobre los no tratados, además considera la manera en que estos efectos del tratamiento en los no tratados afectan nuevamente a los tratados, es decir, se tiene un efecto multiplicador. Por lo anterior, este modelo evalúa el impacto de las comunidades donde operan los programas sociales.
Se crean modelos para hogares beneficiarios y no beneficiarios para conjuntarlos en un modelo de equilibrio general de la economía local.
A través de una estimación punto que utiliza los valores de línea base de los hogares beneficiados y no beneficiados para construir para cada hogar una matriz de contabilidad social (Social Accounting Matrice, SAM)
A partir de estas matrices se observa la estructura económica de los hogares beneficiados y no beneficiados.
La matriz SAM sirve para calcular una matriz multiplicadora. El efecto total será igual al producto de esta matriz multiplicadora por el cambio en la demanda final.
Se supone una distribución del parámetro estimado valor estimado insesgada con desviación estándar es igual al error estándar de la estimación.
Se toma un valor al azar para cada parámetros considerando la distribución.
Se simula el efecto del programa para los parámetros, repetimos varias veceseste paso, almancendo el resultado
Se construyen los intervalos de confianza con estos resultados
Basado en Athey e Imbens (2019).4
Machine Learning (ML) trabaja con objetivos sobre los algoritmos (algorithmic models) para resolver problemas con datos.
Mientras que los modelos econométricos estándar trabajan con base en modelos (model-based) para resolver problemas con datos.
Se puede decir que el enfoque es dististinto en cada área, pero el objetivo es el mismo: resolver problemas con datos.Ambas técnicas permiten encontrar (y así seleccionar) regresores (atributos) para el modelo lineal usual con un criterio de penalización (sobre el número de regresores) en el problema de optimización. En términos de la literatura consultada, se define
\[g(x)=\mathbb{E}\left[Y_{i} \mid \mathbf{X}_{i}=x\right]\]
entonces si se supone
\[g(x)=\boldsymbol{\beta}^{\top} x=\sum_{k=1}^{K} \boldsymbol{\beta}_{k} x_{k},\]
se querran encontrar los parametros \(\beta\) de tal forma que
\[\arg \min _{\beta} \sum_{i=1}^{N}\left(Y_{i}-\boldsymbol{\beta}^{\top} \mathbf{X}_{i}\right)^{2}+\lambda\left(\|\boldsymbol{\beta}\|_{q}\right)^{1 / q}\]
cuando, \(q=1\) (norma 1) es regresión LASSO, cuando \(q=2\) (norma 2) es regresión ridge.
Nota: En estos esqeumas se hace mención que los datos se regularizan, es decir, para cada regresor se transforman los datos para tener media cero y varianza uno.Los árboles de regresión es un método de aprendizaje supervisado que se utiliza para regresión (la lectura no lo menciona, pero tambien pueden utilizarse para clasificación). El objetivo es crear un modelo que prediga el valor de una variable objetivo aprendiendo reglas de decisión simples inferidas de las características de los datos.
El valor predecido en la hoja es el promedio (se hacen diferentes subgrupos de entrenamiento).
Como una extensión, un bosque aleatorio compuesto por un grab numero de árboles donde cada árbol difiere en
En la lectura sugerida, se platea la medición del ATE (Average Treatment Effect). Que se define como
\[\tau=\mathbb{E}\left[Y_{i}(1)-Y_{i}(0)\right]\]
donde \(Y_i(w)\) es el resultado potencial de la unidad \(i\), \(W_i\) es el tratamiento binario, \(X_i\) el vector de covariables. El ATE se puede estimar mediante la esperanza condicional de la salida \(\mu(\cdot)\), estimando el propensity score \(e(\cdot)\) o estimando estas dos. Las expresiones para dichas estimaciones son las sigueintes:
\[\mu(w, x)=\mathbb{E}\left[Y_{i} \mid W_{i}=w, \mathbf{X}_{i}=x\right]\]
\[e(x)=\mathbb{E}\left[W_{i} \mid \mathbf{X}_{i}=x\right]\]
\[ \begin{aligned} \tau &=\mathbb{E}\left[\mu\left(1, \mathbf{X}_{i}\right)-\mu\left(0, \mathbf{X}_{i}\right)\right] \\ &=\mathbb{E}\left[\frac{Y_{i} W_{i}}{e\left(\mathbf{X}_{i}\right)}-\frac{Y_{i}\left(1-W_{i}\right)}{1-e\left(\mathbf{X}_{i}\right)}\right] \\ &=\mathbb{E}\left\{\frac{\left[Y_{i}-\mu\left(1, \mathbf{X}_{i}\right)\right] W_{i}}{e\left(\mathbf{X}_{i}\right)}-\frac{\left[Y_{i}-\mu\left(0, \mathbf{X}_{i}\right)\right]\left(1-W_{i}\right)}{1-e\left(\mathbf{X}_{i}\right)}\right\}+\mathbb{E}\left[\mu\left(1, \mathbf{X}_{i}\right)-\mu\left(0, \mathbf{X}_{i}\right)\right] \end{aligned} \]
algunas de las técnicas de ML para estas estimaciones son:
Balance de covariables. Proceso que optimiza los pesos de las observaciones, para llevar a los mismos valores medios, al grupo de tratamiento y control. Este enfoque permite una estimación eficiete del ATE. Es un procedimiento mucho más estable que el calculo del “propensity score”.
Ortogonalización y cross-Fitting. Para ajustar los parámetros incomodos
\[\psi(y, w, x)=\mu(1, x)-\mu(0, x)+\frac{w}{e(x)}[y-\mu(1, x)]+\frac{1-w}{1-e(x)}[y-\mu(0, x)]\]
donde la muestra promedio de \(\hat{\Psi}_{i}\) es un estimador para el ATE.
Matrix completion problem. Si se tienen observaciones de \(N\) unidades sobre \(T\) períodos de tiempo \(Y_{it}\) y un tratamiento binario \(W_{it}\) \[\mathbf{Y}=\left(\begin{array}{ccccc} Y_{11} & Y_{12} & Y_{13} & \ldots & Y_{1 T} \\ Y_{21} & Y_{22} & Y_{23} & \ldots & Y_{2 T} \\ Y_{31} & Y_{32} & Y_{33} & \ldots & Y_{3 T} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ Y_{N 1} & Y_{N 2} & Y_{N 3} & \ldots & Y_{N T} \end{array}\right) \quad \mathbf{W}=\left(\begin{array}{ccccc} 1 & 1 & 0 & \ldots & 1 \\ 0 & 0 & 1 & \ldots & 0 \\ 1 & 0 & 1 & \ldots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & 0 & 1 & \ldots & 0 \end{array}\right)\]
El problema de estimar los ATEs se puede transformar en un problema de completar matrices.
\[\mathbf{Y}(0)=\left(\begin{array}{ccccc} ? & ? & Y_{13} & \ldots & ? \\ Y_{21} & Y_{22} & ? & \ldots & Y_{2 T} \\ ? & Y_{32} & ? & \ldots & Y_{3 T} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ ? & Y_{N 2} & ? & \ldots & Y_{N T} \end{array}\right)\text{(potencial control outcome)}\]
\[\mathbf{Y}(1)=\left(\begin{array}{ccccc} Y_{11} & Y_{12} & ? & \ldots & Y_{1 T} \\ ? & ? & Y_{23} & \ldots & ? \\ Y_{31} & ? & Y_{33} & \ldots & ? \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ Y_{N 1} & ? & Y_{N 3} & \ldots & ? \end{array}\right)\text{(potencial treated outcome)}\]
Por tanto, el problema de estimar los efectos causales se convierte en el de imputar los valores faltantes en una matriz.
También se puede utilizar el ML para la descubrir la heterogeneidad del efectos del tratamiento (treatment effect heterogeneity). Con esto se pueden resolver las preguntas ¿Qué personas se benefician más de un tratamiento? ¿Para qué personas es positivo el efecto del tratamiento? ¿Cómo cambian los efectos del tratamiento con las covariables?
Para medir la heterogeneidad se define el ATE condicional (CATE), como
\[\tau(x)=E\left[\tau_{i} \mid \mathbf{X}_{i}=x\right]\]
con \(\tau_{i}=Y_{i}(1)-Y_{i}(0)\) que es el efecto del tratamiento para el individuo \(i\).
Se puede medir la heterogeneidad a traves de modelos de variables instrumentales mediante el uso de redes neuronales. Otro enfoques propuestos para medir CATE: LASSO, meta-learners, BART (Bayesian additive regression trees), R-leaner, entre otras.
Se puede utilizar ML para el diseño experimental, utilizando tecnicas para la asignación a brazos de tratamiento: Thompson sampling (Multi-armed bandit), UCBs (Upper Confidence Bounds).Basado en Varían (2014).5
Siguiendo el texto, se podría predecir la serie de tiempo de la salida (visitas a una página web, compras online realizadas, etc.) como función de su historia pasada, efectos de temporada, productos disponibles, busquedas en google relativas a la salida estudiada, etc. Por la gran cantidad de predictores disponibles se puede realizar una selección de regresores, por ejemplo se puede utilizar BSTS (Bayesian Structural Time Series)..
Posteriormente se lleva acabo la campaña publicitaria durante algunos periodos y se registra la saluda de intéres. Utilizando el modelo desarrollado previamente se realiza una predicción de cuálhabría sido la salida (en los periodos correspondentes) en ausencia de la campaña publicitaria. La comparación de la salida real con la salida contrafáctica (artificielmente construida) nos da una estimación del efecto causal de la campaña de publicidad en internet.En el big data la incertidumbre de los datos se desprecia (pues tiende a ser pequeña por la gran cantidad de datos disponible). Así la principal fuente de incertidumbre es la estructura del modelo (por ejemplo: la variación de los parámetros respecto a que variables de control e instrumentos se eligen).
Abadie, A., Diamond, A., & Hainmueller, J. (2010). Synthetic control methods for comparative case studies: Estimating the effect of California’s tobacco control program. Journal of the American statistical Association, 105(490), 493-505.↩
Low, H., & Meghir, C. (2017). The use of structural models in econometrics. Journal of Economic Perspectives, 31(2), 33-58.↩
Taylor, J. E., Filipski, M. J., Alloush, M., Gupta, A., Rojas Valdes, R.I., & Gonzalez-Estrada, E. (2016). Economic impact of refugees. Proceedings of the National Academy of Sciences, 201604566.↩
Athey, S., & Imbens, G. W. (2019). Machine learning methods that economists should know about. Annual Review of Economics, 11.↩
Varian, H. R. (2014). Big data: New tricks for econometrics. Journal of Economic Perspectives, 28(2), 3-28↩