26  Diseños cuasi-experimentales

Autores/as

Carrasco Escobar, Gabriel

Quispe Quispe, Jesus

26.1 General

En la evaluacion de intervenciones, se busca saber si la intervención efectivamente causó algún cambio significativo en alguna caracteristica de una poblacion determinada (por ejemplo, la tasa de mortalidad por dengue en una comunidad). Para ello lo mejor seria llevar a cabo un experimento controlado aleatorizado, pues lo que hace que un experimento tenga el poder de medir correctamente el impacto de una variable sobre otra es la aleatorización en la selección de la muestra del estudio (control) y en la aleatorización del tratamiento (intervencion), bajo el control de un investigador.

Llevar a cabo un experimento aleatorio muchas veces no es factible; sin embargo, aún asi se puede analizar el impacto de una intervención via un experimento natural, también conocido como diseño cuasiexperimental, los cuales valiendose de determinados supuestos buscan replicar los resultados de los experimentos aleatorizados.

Un experimento natural se caracteriza principalmente por que no hay asignación aleatoria, asi a diferencia de un experimento controlado aleatorio, en un experimento natural no hay asignación aleatoria de las unidades a las intervenciones bajo la supervision de un investigador, de modo tal que variación en la variable de tratamiento es determinada por factores externos.

Entre las metodologias clasicas que pertenecen a este marco teorico son: Regresión discontinua (RD), Series de tiempo interrumpidas (ITS), Diferencia en diferencias (DD), entre otras (Kraig, 2021).

26.1.1 Paquetes

Los paquetes generales a ser utilizados en esta sección son:

26.2 Regresión discontinua (RD)

26.2.1 Descripcion general del diseño

Muchas intervenciones se valen de un indicador o score el cual al fijarse en un determinado umbral establece la condicion de eligibilidad para dicha intervencion. Por ejemplo, muchos programas sociales contra la pobreza se valen de un indicador económico para decidir la participación de sus beneficiarios en el programa.

La regresión discontinua es una metodología la cual puede ser empleada para evaluar aquellas intervenciones que tengan una regla de asignacion del tratamiento que involucre un indice de eligibilidad continuo con un umbral claramente definido. Asi dada la importacia de la regla de asignacion, esta puede ser nitida (o Sharp) o difusa (o fuzzy).

El supuesto, que se prueba como parte del procedimiento, es que las unidades cercanas a ambos lados del límite son suficientemente similares para que las excluidas de la intervención sean un grupo de comparación válido.

La diferencia en los resultados entre aquellos que están cerca de ambos lados del límite, medida por la discontinuidad en la línea de regresión en ese punto, es atribuible a la intervención, al igual que la medida del impacto de la intervención.

26.2.2 Modelo

\[ Y_{i} = \beta_{0} + \beta_{1} X_{i} + \beta_{2} D_{i} +\beta_{3} X_{i}D_{i} + \beta_{j} Z_{ji}'s + \epsilon_{i} \]

donde :

Variables:

  • \(D_{i}\) = {1,0} si el indice \(\geq x_{o}\) o si el indice \(< x_{o}\) respectivamente.

  • \(X_{i}\) = Variable running o scoring, sobre la cual se plantea el umbral \(x_{o}\)

  • \(D_{i}\) = Variable de seleccion de eligibilidad.

  • \(Z_{ji}'s\) = Variables de control

Parametros

  • \(\beta_{0}\) = El valor promedio de la variable objetivo para aquellas unidades por debajo del umbral

  • \(\beta_{1}\) = Es el coeficiente asociado con la variable running \(X_{i}\) , que representa el cambio en la variable objetivo por cada unidad de cambio en \(X_{i}\) en ausencia de la intervencion.

  • \(\beta_{2}\) = Es el efecto de la intervencion (Average treatment effect-ATE), pues es un estimador de \(E[Y|D=1; X,Z_{j}'s]-E[Y|D=0; X,Z_{j}'s]\) que representa el cambio inmediato en \(Y_{i}\) cuando \(D_{i}=1\) (es decir, en el lado derecho del umbral).

  • \(\beta_{3}\) = es el efecto de la interacción entre la running variable y el tratamiento, que representa cómo cambia la pendiente de \(Y_{i}\) debido al tratamiento.

  • \(\beta_{j}\) = Efectos del resto de controles considerados

26.2.3 Supuestos

\(E[Y^{0}_{i}|X = c_{0}]\) y \(E[Y^{1}_{i}|X = c_{0}]\) son continuos (suaves) de X en \(c_{0}\)

Este supuesto es clave; sin embargo, su validacion completa no es factible en la realidad.

  • El indicador de eligibilidad debe ser continuo alrededor del umbral\(c_{0}\). Es decir, que la variable running o score no presenta saltos o interrupciones que pueda dar cuenta de una manipulacion en el indicador para asi participar de la intervecion. Este supuesto puede ser comprobado empleando el el test de densidad de McCrary

  • Supuestos usuales de un modelo de regresión (Homocedasticidad, no autocorrelacion, etc) de acuerdo al caso. Debemos asegurarnos de que los efectos estimados sean insesgados y consistentes, hecha la especificación correcta del modelo.

26.2.4 Caso de estudio

Emplearemos datos de un programa social, el cual consistió en un subsidio económico para solventar parte del gasto en salud de un grupo de hogares. Al respecto la base de dato cuenta con las siguientes variables:

Variable Descripcion
enrolled Participa si o no del programa social (0=no 1=si)
round Etapa de la intervención (0 = Pre , 1 = Post intervención)
locality_identifier Identificador de localidad geográfica a la cual pertenece el hogar
age_hh Edad de la cabeza del hogar
indigenous La cabeza de hogar habla un lenguaje indigena
educ_hh Nivel educativo de la cabeza de hogar (Años completados de escolarizacion)
educ_sp Nivel educativo de la conyuge (Años completados de escolarizacion)
female_hh La cabeza de hogar es una mujer
dirtfloor El hogar cuenta con un piso de tierra (0=no 1=si)
bathroom El hogar cuenta con un baño privado (0=no 1=si)
land Numero de hectareas de tierra pertenecientes al hogar
age_hh Edad de la cabeza del hogar
hhsize Numero de miembros del hogar
eligible El hogar es eligible para pertenecer al programa social (0=no 1=si)
hospital Visito algun miembro del hogar el hospital durante el año pasado (0=no 1=si)

Emplearemos los datos de la intervención sobre el gasto en Salud; sin embargo, tomando en cuenta que la variable pobreza sirvió como variable scoring o running. Asi se establecio una linea de pobreza de 58 ptos de modo tal que aquellos hogares con un score inferior a 58 eran considerados para recibir la intervención y aquellos que superaban este umbral no.

library(rddensity)    #Tests y otras herramientas para validar el cumplimiento de los supuestos 

db_treat  <- readRDS("data/insurance_intervention_sc.rds")

26.2.5 Análisis Parametrico

26.2.5.1 Pasos del análisis

  1. Explorar descriptivamente los datos, para

    1.1 Examinar si el conjunto de datos permite establecer un quiebre claro en la variable objetivo el cual coincida con el umbral fijado de la variable running.

    1.2 Determinar el uso de un modelo de regresión discontinua Sharp o Fuzzy.

    1.3 Determinar el uso de una versión lineal o no lineal del modelo de regresión discontinua. 1.4 Analizar el correcto cumplimiento de los supuestos de la metodología de regresión discontinua.

  2. Opcionalmente, se puede preprocesar los datos a analizar, esto es centralizar la variable running.

  3. Estimar el modelo de regresion que incorpora la metodología de regresión discontinua.

  4. Interpretar resultados.

26.2.5.2 Exploración de datos

Sabemos que la intervención empleó la línea de pobreza fijada en 58 como regla para establecer qué hogares recibirían la intervención y cuales no. En primera instancia comprobaremos si la intervención efectivamente fue aplicada en base a esa regla; así como cuan estricta fue su aplicación.

db_treat %>% 
  ggplot(aes(x = poverty_index, y = enrolled, color = enrolled)) +
  geom_point(size = 0.5, alpha = 0.5, 
             position = position_jitter(width = 0, height = 0.25, seed = 1234)) + 
  geom_vline(xintercept = 58) + # Establecemos el umbral de intervencion
  labs(x = "Indice de pobreza", y = "Participo en la intervencion") + 
  scale_color_viridis_c("Enrollment:", end = 0.7,option = "A") +
  guides(color = FALSE) +
  theme_bw()

Observamos claramente que ningún hogar con un indice de pobreza superior a 58 participó de la interveción, por lo tanto podemos concluir que la intervención fue diseñada de modo sharp.

Ahora bien, respecto de la variable score, running o indice de eligibilidad, requerimos comprobar si hay un quiebre en el nivel del indice de pobreza establecido, ello lo lograremos al aplicar el test de densidad de McCrary.

test_density <- rdplotdensity(rdd = rddensity(db_treat$poverty_index, c = 58), 
                              X = db_treat$poverty_index, plotGrid = c("es"),
                              type = "both", histFillCol="gray3")

Podemos observar que no hay diferencia significativa en la distribucion del indice de pobreza alrededor del punto de corte, en la medida que los intervalos de confianza de las densidades se superponen.

En último lugar, respecto del análisis descriptivo, podemos comprobar visualmente si efectivamente hay una clara discontinuidad marcada alrededor del punto de corte establecido.

db_treat %>%
  filter(round == 1) %>%
  mutate(enrolled_lab = ifelse(enrolled == 1, "Tratado", "No Tratado")) %>%
  ggplot(aes(x = poverty_index, y = health_expenditures,
             group = enrolled_lab, colour = enrolled_lab, fill = enrolled_lab)) +
  geom_point(alpha = 0.03) +
  geom_smooth(method = "lm") +
  labs(x = "Indice de pobreza", y = "Gasto en salud") +
  scale_colour_viridis_d("Enrollment:", end = 0.7, option = "A") +
  scale_fill_viridis_d("Enrollment:", end = 0.7, option = "A") +
  theme_bw() +
  theme(legend.position="bottom")

El gráfico anterior muestra la presencia de la interrupción, y por lo tanto dado todo lo anterior queda claro que este conjunto de datos es adecuado para estimar un modelo de regresión discontinua sharp. En ese sentido procedemos a estimar el modelo de regressión discontinua.

26.2.5.3 Ajuste del modelo de regresión

db_treat <- db_treat %>%
  mutate(poverty_index_c0 = poverty_index - 58)  # Tipicamente se suele centrar en umbral la variable running


library(estimatr)
out_rdd <- lm(health_expenditures ~ poverty_index_c0 * enrolled + 
                           age_hh + age_sp + educ_hh + educ_sp + 
                           female_hh + indigenous + hhsize + dirtfloor + 
                           bathroom + land + hospital_distance,
                     data = db_treat %>% filter(round == 1))  # Analizaremos aquellos hogares 
                                                              # una vez ya ejecutado la intervecion(tratamiento)

Estimado el modelo, podemos obtener un resumen de los resultados y su estructura final.

\[ GastoSalud_{i} = 29.22 + 0.17*IndicePobreza_{i} -9*D_{i} - 0.20*IndicePobreza_{i}*D_{i} + \beta_{j} Z_{ji}'s + \epsilon_{i} \]

summ(out_rdd)
Observations 4960
Dependent variable health_expenditures
Type OLS linear regression
F(14,4945) 299.01
0.46
Adj. R² 0.46
Est. S.E. t val. p
(Intercept) 29.22 0.92 31.76 0.00
poverty_index_c0 0.17 0.03 5.71 0.00
enrolled -9.03 0.43 -20.97 0.00
age_hh 0.09 0.02 5.63 0.00
age_sp -0.05 0.02 -2.99 0.00
educ_hh -0.07 0.06 -1.14 0.25
educ_sp -0.14 0.06 -2.17 0.03
female_hh 0.57 0.48 1.20 0.23
indigenous -1.88 0.29 -6.45 0.00
hhsize -1.98 0.07 -29.50 0.00
dirtfloor -1.76 0.29 -5.97 0.00
bathroom 0.57 0.28 2.07 0.04
land -0.05 0.04 -1.11 0.27
hospital_distance -0.01 0.00 -1.73 0.08
poverty_index_c0:enrolled -0.20 0.04 -4.90 0.00
Standard errors: OLS

26.2.5.4 Interpretación de coeficientes principales

  • El intercepto representa el valor esperado (promedio) del gasto en salud cuando todas las demás variables son cero; es decir, 29.22$ del gasto en salud promedio para aquellos hogares con un índice de pobreza igual a cero y que no superan el umbral.

  • El coeficiente asociado a la variable running indicaria que el cambio en el gasto en salud asociado con un aumento unitario en el índice de pobreza fue de 0.17 para los hogares que no superan el umbral de 58pts.

  • el efecto promedio del tratamiento o average treatment effect (ATE) es de -9.03. Ello indica que en promedio el gasto en salud de aquellos individuos por encima de la línea de pobreza es 9 unidades inferior para aquellos que participan de la interveción.

26.3 Series de tiempo interrumpida (ITS)

Las series de tiempo interrumpidas (ITS) son una aplicación específica de RD en la que el umbral es el momento en el que la intervención entró en vigor.

Este puede ser un método particularmente relevante cuando la efectividad de la intervención es repentina, en lugar de gradual, como la finalización de un puente o una conexión importante de transmisión de energía, o la disponibilidad de servicios públicos.

Las series de tiempo interrumpidas se pueden utilizar cuando:

  • Tenemos datos sobre un resultado a lo largo del tiempo (datos longitudinales)

  • Queremos entender cómo y si el resultado ha cambiado después de un evento (ej. meteorológico, o, tradicionalmente, una intervención, una política o un programa) al que se expuso toda la población en un momento específico.

Los datos deben incluir observaciones antes y después de que ocurriera el evento. Cuantas más observaciones se tenga a ambos lados del evento, más robusto será el modelo (por lo general).

La variable dependiente en estos modelos por lo general es una medida de resumen de la población (ej. promedios o conteos). Por ejemplo, el producto bruto interno de un país, la tasa de criminalidad en una ciudad, el puntaje promedio de matemáticas en una escuela, o los casos de malaria en una cuidad.

A diferencia de la mayoría de los otros modelos que requieren muchos controles, estos modelos son flexibles porque pueden generar inferencias válidas en ciertas circunstancias con solo dos variables independientes: el tiempo y la fecha de inicio del evento.

Las series de tiempo interrumpidas nos permiten investigar cada efecto, entendiendo así si el evento:

  • No tiene ningún efecto (A)

  • Tiene solo un efecto inmediato (B)

  • Tiene un efecto sostenido a largo plazo (C)

  • Tiene un efecto inmediato y sostenido (D)

26.3.1 Modelo ITS

\[ Y_{t}=\beta_{0}+\beta_{1}T_{t}+\beta_{2}D_{t}+\beta_{3}P_{t} \]

Donde :

Variables:

\(Y_{t}\) = desenlace en salud (outcome)

\(T_{t}\) = variable continua para el tiempo desde el inicio del periodo de observación

\(D_{t}\) = una variable dummy para el periodo de tiempo (antes / después del evento)

\(P_{t}\) = variable continua para el tiempo posterior al evento

Coeficientes:

\(\beta_{1}\) = tendencia previa al evento

\(\beta_{2}\) = cambio en el nivel del resultado inmediatamente después del evento

\(\beta_{3}\) = cambio en la tendencia después del evento.

Créditos: Turner, 2021

26.3.2 Supuestos del modelo ITS

  • Shock bien definido

  • No hay eventos simultáneos

  • Tendencia previa al evento bien establecida (tamaño muestra de análisis considerable)

  • Correcta especificación del modelo

  • La tendencia previa al evento se hubiera mantenido en ausencia del evento.

26.3.3 Caso de estudio

  • Impacto en Salud: Muertes semanales por dengue en Iquitos (por 10,000 habitantes)

  • Evento: Evento de lluvias extremo (PDSI > 4 ~ 01-11-2015)

    • Índice de severidad de la sequía de Palmer (PDSI): El PDSI se calcula utilizando los niveles de humedad del suelo, la tasa de evapotranspiración esperada (es decir, la cantidad de evaporación del suelo que ocurriría si hubiera suficientes niveles de agua disponibles, según la temperatura media diaria y la duración de los días del mes) y la precipitación.

    • El índice varía de −10 (muy seco) a 10 (muy húmedo), con valores por debajo de −4 o por encima de 4 clasificados como extremos.

dat <- read_csv("data/dengue.csv") %>%
  mutate(date = ymd(date))

26.3.4 Análisis paramétrico

26.3.4.1 Pasos del análisis

  1. Explorar de forma gráfica los datos y confirmar si ITS es un diseño adecuado para la pregunta de investigación.

  2. Poner en formato la base de datos. Crear las variables T (tiempo desde el inicio del estudio), D (indicador pre/post evento desde el 01-11-2015), P (tiempo desde el inicio del evento)

  3. Realizar el modelo de regresión segmentada para ITS usando las tres variables creadas.

  4. Interpretar resultados de los coeficientes.

  5. Calcular los valores predichos en base al modelo ITS.

  6. Graficar los resultados del ITS junto con los valores del paso 1.

  7. Calcular el escenario contrafactual (sin evento) y graficarlo.

26.3.4.2 Exploración de datos

dat %>%
  ggplot(aes(x = date, y = dengue_cases)) +
  geom_point(alpha = .6) +
  geom_vline(aes(xintercept = dmy("01-11-2015")), 
             linetype = "dashed", col = "red3") +
  theme_bw()

26.3.4.3 Formato de datos

  • Crear las variables:

    • \(T\) (tiempo desde el inicio del estudio)

    • \(D_{t}\) (indicador pre/post evento desde el 01-11-2015)

    • \(P\) (tiempo desde el inicio del evento)

dat_its <- dat %>%
  mutate(T = seq(1:n()), # Tiempo desde inicio del estudio
         D = ifelse(T>200,1,0), # Dummy 0=pre, 1= post evento
         P = ifelse(T>200,T-200,0)) # Tiempo desde el evento
dengue_cases date T D P
38.50479 2012-01-01 1 0 0
48.61841 2012-01-08 2 0 0
102.44811 2012-01-15 3 0 0
58.05859 2012-01-22 4 0 0
60.03438 2012-01-29 5 0 0
107.77661 2012-02-05 6 0 0
70.40195 2012-02-12 7 0 0
18.88587 2012-02-19 8 0 0
36.42974 2012-02-26 9 0 0
43.87267 2012-03-04 10 0 0
94.13151 2012-03-11 11 0 0
68.44217 2012-03-18 12 0 0
69.88381 2012-03-25 13 0 0
61.40350 2012-04-01 14 0 0
41.64085 2012-04-08 15 0 0
112.07083 2012-04-15 16 0 0
73.64975 2012-04-22 17 0 0
70.00000 2012-04-29 18 0 0
80.17728 2012-05-06 19 0 0
45.20039 2012-05-13 20 0 0

26.3.4.4 Modelo de regresión

fit <- dat_its %>%
  lm(dengue_cases ~ T + D + P, data = .)

summ(fit)
Observations 365
Dependent variable dengue_cases
Type OLS linear regression
F(3,361) 398.71
0.77
Adj. R² 0.77
Est. S.E. t val. p
(Intercept) 58.37 4.10 14.23 0.00
T 0.18 0.04 5.15 0.00
D 13.60 6.08 2.24 0.03
P 0.55 0.06 9.34 0.00
Standard errors: OLS

26.3.4.5 Interpretación de coeficientes

  • El coeficiente de tiempo (T) indica la tendencia de las muertes por dengue antes del evento. Es positivo y significativo, lo que indica que las muertes por dengue en la población de Iquitos aumenta con el tiempo. Por cada semana que pasa, las muertes aumentan en 0.18 por cada 10,000 habitantes.

  • El coeficiente del evento (D) indica el aumento de las muertes por dengue inmediatamente después del evento. Podemos ver que el efecto inmediato es positivo y significativo indicando que el inicio de lluvias extremas aumentó las muertes por dengue en la población de Iquitos en 13.6 por cada 10,000 habitantes.

  • El coeficiente de tiempo transcurrido desde el evento (P) indica que la tendencia ha cambiado después del evento. El efecto sostenido es positivo y significativo, lo que indica que por cada semana las muertes diarias por dengue han aumentado en 0.55 por cada 10,000 habitantes con respecto a la tendencia pre-evento.

26.3.4.6 Predicción de valores del modelo

\[ Pred = 58.37 + 0.18*T + 13.6*D + 0.55* P \]

pred <- augment(fit, interval = "confidence")
dengue_cases T D P .fitted .lower .upper .resid .hat .sigma .cooksd .std.resid
38.50479 1 0 0 58.55599 50.54917 66.56280 -20.0511934 0.0198507 28.91821 0.0024870 -0.7008569
48.61841 2 0 0 58.73831 50.79162 66.68500 -10.1199008 0.0195537 28.93289 0.0006237 -0.3536711
102.44811 3 0 0 58.92064 51.03392 66.80736 43.5274741 0.0192597 28.84504 0.0113574 1.5209738
58.05859 4 0 0 59.10296 51.27605 66.92988 -1.0443765 0.0189687 28.93785 0.0000064 -0.0364881
60.03438 5 0 0 59.28529 51.51803 67.05255 0.7490859 0.0186807 28.93788 0.0000033 0.0261675
107.77661 6 0 0 59.46762 51.75983 67.17540 48.3089896 0.0183957 28.82357 0.0133386 1.6873104
70.40195 7 0 0 59.64994 52.00147 67.29842 10.7520064 0.0181137 28.93225 0.0006502 0.3754864
18.88587 8 0 0 59.83227 52.24293 67.42161 -40.9463967 0.0178347 28.85586 0.0092798 -1.4297452
36.42974 9 0 0 60.01459 52.48421 67.54498 -23.5848589 0.0175587 28.91072 0.0030294 -0.8234083
43.87267 10 0 0 60.19692 52.72530 67.66854 -16.3242463 0.0172857 28.92489 0.0014279 -0.5698424
94.13151 11 0 0 60.37925 52.96621 67.79228 33.7522612 0.0170157 28.88223 0.0060058 1.1780530
68.44217 12 0 0 60.56157 53.20693 67.91621 7.8805967 0.0167487 28.93487 0.0003221 0.2750186
69.88381 13 0 0 60.74390 53.44745 68.04034 9.1399151 0.0164847 28.93383 0.0004262 0.3189237
61.40350 14 0 0 60.92622 53.68777 68.16468 0.4772725 0.0162237 28.93789 0.0000011 0.0166515
41.64085 15 0 0 61.10855 53.92789 68.28921 -19.4677010 0.0159656 28.91941 0.0018707 -0.6791173
112.07083 16 0 0 61.29088 54.16779 68.41396 50.7799512 0.0157106 28.81189 0.0125182 1.7711941
73.64975 17 0 0 61.47320 54.40747 68.53893 12.1765462 0.0154586 28.93068 0.0007079 0.4246610
70.00000 18 0 0 61.65553 54.64694 68.66412 8.3444727 0.0152096 28.93451 0.0003269 0.2909794
80.17728 19 0 0 61.83785 54.88617 68.78953 18.3394248 0.0149636 28.92151 0.0015528 0.6394327
45.20039 20 0 0 62.02018 55.12518 68.91518 -16.8197930 0.0147206 28.92412 0.0012843 -0.5863760

26.3.4.7 Gráfico del modelo ITS

dat_its %>%
  ggplot(aes(x = T, y = dengue_cases)) +
  geom_point(alpha = .6) +
  geom_vline(aes(xintercept = 200), linetype = "dashed", col = "red3") +
  geom_line(data = pred, aes(y = .fitted), col = "deepskyblue3") +
  geom_ribbon(data = pred, aes(ymin = .lower, ymax = .upper), 
              fill = "deepskyblue3", alpha = .3) +
  theme_bw()

26.3.4.8 Escenario Contrafactual

\[ Pred=57.15+(0.19∗T)+(13.09∗0)+(0.54∗0) \]

conterfactual <- dat_its %>%
  mutate(D = 0,
         P = 0) %>%
  augment(fit, newdata = ., interval = "confidence")

dat_its %>%
  ggplot(aes(x = T, y = dengue_cases)) +
  geom_point(alpha = .6) +
  geom_vline(aes(xintercept = 200), linetype = "dashed", col = "red3") +
  geom_line(data = pred, aes(y = .fitted), col = "deepskyblue3") +
  geom_ribbon(data = pred, aes(ymin = .lower, ymax = .upper), fill = "deepskyblue3", alpha = .3) +
  geom_line(data = conterfactual, aes(y = .fitted), col = "orange2", linetype = "dashed") +
  geom_ribbon(data = conterfactual, aes(ymin = .lower, ymax = .upper), 
              fill = "orange2", alpha = .3) +
  theme_bw()

26.3.5 Consideraciones finales

Algunas consideraciones que se deben tomar en cuenta al interpretar estos modelos son:

  • Efectos rezagados

  • Regresión a la media

  • Autocorrelación

Finalmente, las series de tiempo también están sujetas a amenazas a la validez interna, tales como:

  • Otro hecho ocurrió al mismo tiempo del evento de interés y provocó el efecto inmediato y sostenido que observamos;

  • Procesos de selección (vulnerabilidad), ya que las personas se ven afectadas de diferente manera por el evento.

Para abordar estos problemas puede :

  • Utilizar como control un grupo que no esté expuesto al evento (por ejemplo, una población con características comparables donde no hubo eventos de lluvias extremas)

26.4 Diferencia en diferencias (dif-in-dif)

26.4.1 Descripcion general del diseño

En varias ocasiones (en evaluaciones de determinadas intervenciones) no se tiene certeza de la regla de asignación entre los grupos de tratamiento y control. Así, por ejemplo, entre los distritos miembros de una provincia se puede estar aplicando una intervención contra la anemia, ante la cual los distritos pueden participar voluntariamente (Gertler et al. 2017). Este tipo de interveción origina al momento de su evaluación 2 problemas:

  1. El solo observar un indicador como la concentración de hemoglobina en la sangre, antes y despues de la intervecion en aquellos distritos que se inscribieron en el programa no capturara el impacto causal de la interveción, puesto que puede haber muchos otros factores afectando la anemia a la par.

  2. El solo comparar la intervención entre aquellos que la recibieron y aquellos que no también es problemático dado que no se tiene certeza de que no hayan otros factores no observables por los que determinados distritos no se incribieron a la intervencion y otros si (Sesgo de seleccion).

En ese tipo de situaciones se puede considerar emplear el método de Diferencia en Diferencias. Diferencia en diferencias es una metodología para evaluar el efecto de una interveción que contrasta las diferencias a lo largo del tiempo entre una población beneficiaria de la intervecion (grupo de tratamiento) y otra que no (grupo de comparación). Asi esta metodología en general en su desarrollo lleva a cabo:

  1. La diferencia en los resultados antes y despues del grupo de tratamiento (primera diferencia).

  2. La diferencia en los resultados antes y despues del grupo no tratado pero expuesto a las mismas condiciones que el grupo de tratamiento salvo la intervención ( Segunda diferencia).

26.4.2 Modelo

Variables:

\[ Y_{i} = \beta_{0} + \beta_{1}G_{i} + \beta_{2}T_{i} + \beta_{3} G_{i}T_{i} +\epsilon_{i} \]

donde:

Variables

\(G_{i}\) = {0,1} No pertenece, pertenece al grupo de tratamiento respectivamente

\(T_{i}\) = {0,1} Periodo pre tratamiento, post tratamiento

Parámetros

\(\beta_{0}\) = es el intercepto, que representa el valor esperado de \(Y_{i}\) para el grupo de control antes del tratamiento \(G_{i}=0\).

\(\beta_{1}\) = Este coeficiente representa la diferencia entre el grupo de tratamiento y de control antes del tratamiento \(T_{i}=0\).

\(\beta_{2}\) = Este coeficiente representa cuánto ha cambiado el resultado promedio del grupo de control \(G_{i}=0\) en el periodo posterior al tratamiento \(T_{i}=1\).

\(\beta_{3}\) = Es el parametro principal ya que es el efecto del tratamiento promedio(Average treatment effect - ATE) asi representa cuánto ha cambiado el resultado promedio del grupo de tratamiento en comparación al grupo de control,en el período posterior a la intervencion

26.4.3 Supuestos

  • Tendencias paralela: Este supuesto afirma que en ausencia de intervención, los grupos de tratamiento y control tendrían tendencias comunes en el atributo bajo analisis. Este supuesto es clave por que asegura que la estimación del efecto del tratamiento sea insesgada.

  • La composición de aquellas unidades de análisis que conforman los grupos de tratamiento y control como por ejemplo individuos, hogares, familias, etc, no cambian con el paso del tiempo.

  • Supuestos usuales de un modelo de regresión (Homocedasticidad, no autocorrelacion,etc)

26.4.4 Caso de Estudio

Emplearemos los mismos datos del programa social investigado en la sección de RD, el cual consistio en un subsidio económico para solventar parte del gasto en salud de un grupo de hogares.

health_expenditures poverty_index enrolled round locality_identifier age_hh age_sp educ_hh educ_sp female_hh indigenous hhsize dirtfloor bathroom land hospital_distance poverty_index_c0
15.1854553 55.95054 1 0 26 24 23 0 6 0 0 4 1 0 1 124.82 -2.0494576
19.5809021 55.95054 1 1 26 25 24 0 6 0 0 4 1 0 1 124.82 -2.0494576
13.0762568 46.05873 1 0 26 30 26 4 0 0 0 6 1 0 2 124.82 -11.9412689
2.3988545 46.05873 1 1 26 31 27 4 0 0 0 6 1 0 2 124.82 -11.9412689
0.0000000 54.09583 1 1 26 59 57 0 0 0 0 6 1 0 4 124.82 -3.9041748
15.2863531 54.09583 1 0 26 58 56 0 0 0 0 6 1 0 4 124.82 -3.9041748
20.0269089 56.90340 1 1 26 36 25 3 0 0 0 7 1 0 2 124.82 -1.0965996
11.3117609 56.90340 1 0 26 35 24 3 0 0 0 7 1 0 2 124.82 -1.0965996
11.2239122 46.90881 1 0 26 37 35 0 0 0 0 7 1 0 2 124.82 -11.0911903
16.6646862 46.90881 1 1 26 39 36 0 0 0 0 7 1 0 2 124.82 -11.0911903
8.8769245 48.18393 1 0 26 34 41 0 2 1 0 9 1 0 1 124.82 -9.8160744
0.1155464 48.18393 1 1 26 35 41 0 2 1 0 9 1 0 1 124.82 -9.8160744
0.0000000 49.69088 1 1 26 31 30 0 6 0 0 7 0 0 1 124.82 -8.3091202
12.6858168 49.69088 1 0 26 30 29 0 6 0 0 7 0 0 1 124.82 -8.3091202
17.2236977 57.10974 1 1 26 58 57 3 0 0 0 9 0 0 4 124.82 -0.8902626
12.6680889 57.10974 1 0 26 57 56 3 0 0 0 9 0 0 4 124.82 -0.8902626
10.5806131 49.69088 1 0 26 24 28 2 6 0 0 7 1 0 2 124.82 -8.3091202
1.2849009 49.69088 1 1 26 25 29 2 6 0 0 7 1 0 2 124.82 -8.3091202
7.2307086 52.62751 1 0 26 40 36 0 2 0 0 9 1 0 1 124.82 -5.3724899
6.4174824 52.62751 1 1 26 40 37 0 2 0 0 9 1 0 1 124.82 -5.3724899

Los paquete que usaremos son:

26.4.5 Análisis Parametrico

26.4.5.1 Pasos del análisis

  1. Explorar descriptivamente los datos, para detectar anomalías tales como outliers.
  2. Estimar el modelo de regresión que incorpora la metodología de regresión de diferencia en diferencias.
  3. Resumir la información de los resultados y proceder a interpretarlos.

26.4.5.2 Exploración de datos

En primera instancia, realizaremos una exploración de los datos. Para ello observamos la distribución de la variable objetivo para así detectar potenciales problemas que puedan dificultar la estimación de un modelo de regresión lineal simple.

db_treat %>% 
  ggplot(aes(x = health_expenditures)) +
  geom_histogram(binwidth = 8, color = "white", boundary = 0) +
  labs(x = "Gasto en Salud",
       y = "Frecuencia") +
  facet_wrap(~ enrolled) +
  theme_bw()

Se observa que las distribuciones son sesgadas, por lo que opcionalmente se podría continuar el análisis con el logaritmo del gasto en salud para facilitar el cumplimiento de los supuestos del modelo de regresión lineal simple.

26.4.5.3 Ajuste del modelo de regresion

Dado que no se detecto alguna anomalía adicional, ejecutamos el ajuste del modelo de regresión planteado.

out_did <- lm(health_expenditures ~ round * enrolled, 
                           data = db_treat)

y finalmente procedemos a revisar el resumen de los resultados obtenidos.

summ(out_did)
Observations 9919
Dependent variable health_expenditures
Type OLS linear regression
F(3,9915) 1730.14
0.34
Adj. R² 0.34
Est. S.E. t val. p
(Intercept) 20.79 0.18 117.36 0.00
round 1.51 0.25 6.04 0.00
enrolled -6.30 0.23 -27.50 0.00
round:enrolled -8.16 0.32 -25.19 0.00
Standard errors: OLS

Como se observa, el modelo ajustado final es:

\[ Y_{i} = 20.7 + -6.30G_{i} + 1.51T_{i} -8.16 G_{i}T_{i} +\epsilon_{i} \]

26.4.5.4 Interpretación de coeficientes principales

  • El intercepto muestra que 20.79 fue el valor esperado (promedio) del gasto en salud de un hogar que forma parte del grupo de hogares que no recibieron la intervencion \(G=0\), en el periodo antes de llevar acabo de la intervención \(T=0\).

  • El segundo parámetro, indica que en el periodo previo a la subvención económica \(T=0\), el grupo de hogares que recibió la intervención \(G=1\) gastaba -6.3 en relación al grupo de hogares que no recibió la interveción (control).

  • El tercer parámetro muestra que el gasto en salud promedio para aquellos hogares que no recibieron el tratamiento \(G=0\) varió en 1.51 en el periodo post tratamiento \(T=1\).

  • El cuarto parámetro indica que producto de la intervencion,en promedio, el gasto en salud se ha reducido en -8.16$ (Average Treatment Effect) para el grupo de tratamiento, esto es aquellos que recibieron la subvención económica.