5 votos

Pretendencias paralelas en el paquete de estudio de eventos "did" de Callaway Sant'Anna

He observado que en algunas de mis regresiones de estudios de sucesos, dependiendo del paquete de R que utilice obtengo resultados diferentes en cuanto a la violación de las tendencias previas paralelas. En concreto, realicé una regresión de estudio de sucesos utilizando el paquete "fixest", que indicaba que los grupos de tratamiento y control no seguían tendencias paralelas antes del tratamiento, mientras que el paquete "did" por Callaway y Sant'Anna mostró que ambos grupos seguían la misma tendencia antes del tratamiento, es decir, que los coeficientes se situaban en torno a cero. Todas las unidades tratadas lo fueron al mismo tiempo, por lo que no pudo deberse a efectos escalonados del tratamiento.

A continuación, generé otros datos para ver si este problema se limitaba a mi conjunto de datos. Generé un conjunto de datos de observaciones "tratadas" y "no tratadas" a lo largo de 10 periodos, con 100 observaciones por grupo (2000 observaciones en total), donde las observaciones del grupo no tratado se sitúan en torno a cero en cada periodo, pero las observaciones del grupo tratado crecen linealmente de -5 a 5 a lo largo de los 10 periodos (véase el gráfico).

enter image description here

Por lo tanto, cabría esperar que los coeficientes de la regresión del estudio de eventos también indicaran una violación de las tendencias paralelas, sin cambio de tendencia en el momento del tratamiento (5). De hecho, el paquete fixest muestra exactamente esto:

enter image description here

Sin embargo, cuando ejecuto la regresión en el paquete did, obtengo lo siguiente:

enter image description here

donde por algunas razones las pre-tendencias son simplemente filtradas. ¿Alguien tiene alguna idea de lo que está pasando aquí? Traté de averiguar a partir de la publicación pero no he encontrado nada que pueda aplicarse a esta situación. Aquí está el código R para reproducir el ejemplo:

library(did)
library(ggplot2)

## Generate data
period        <- rep(1:10, 200)
id            <- rep(1:200, each = 10)
group         <- rep(0:1, each = 1000)
values0       <-  0 + rnorm(1000, mean = 0, sd = 1)
values1       <-  period[1001:2000] - 5 + rnorm(1000, mean = 0, sd = 1)
values        <- c(values0, values1)
first_treated <- rep(c(0,6), each = 1000)
df            <- data.frame(cbind(period, id, group, values, first_treated))

## Plot data
ggplot(df, aes(period, values, colour = group)) +
  geom_point(alpha = 0.3) +
  theme_classic()

## Run fixest estimation
iplot(feols(values ~ i(period, group, ref = c(5)), 
      data=df))

## Run did estimation
did_test <- att_gt(yname = "values",
                    idname = "id",
                    tname = "period",
                    gname = "first_treated",
                    data = df)
did_test <- aggte(did_test, type = "dynamic", na.rm = TRUE)
ggdid(did_test)

2voto

Handoko Puntos 370

Resulta que el problema se resolvía al establecer el periodo de referencia como "universal" en lugar de "variable", lo cual es un problema cuando se tienen pretendencias lineales de larga duración como en este ejemplo. He aquí una enlace con más información.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X