Проблема с кодировкой интерпретации diff и diff - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь закодировать следующее уравнение (со стр. 237 «Эконометрии Ангрита и Пишке в основном безвредных») в R, но у меня возникают проблемы:

enter image description here

У меня есть набор данных панели (назовите его «sample») со следующими переменными: y (т.е. моя зависимая переменная), год, единица (то есть код налога моей отдельной единицы), treatment_indi c (1 или 0 , варьируется в зависимости от единицы, но не во времени), ковариат (зависит от единицы, но не во времени). У меня есть одна дата события.

(Вы можете запустить мой код ниже, выполнив следующие действия для загрузки примеров данных из пакета did:

library(did)
library(tidyverse)
data(mpdta)
sample <- mpdta %>%
  filter(first.treat == 2006 | first.treat == 0) %>%
rename(y = lemp) %>%
rename(covariate = lpop) %>%
rename(treatment_indic = treat) %>%
rename(unit = countyreal) %>%
select(y, unit, treatment_indic, covariate, year)

)

Чтобы понять, что я делаю, я пытаюсь повторить рисунок 3 от Autor (2003): https://economics.mit.edu/files/11572. В частности, я хочу точечные оценки $ \ delta $ выше, а также их стандартные ошибки.

enter image description here

Пока что я кодирую это в R как:

library(tidyverse)
library(broom)

E <- 2006
sample <- sample %>%
  mutate(k = year - E)

model <- lm(y ~ factor(k):treatment_indic - 1 + factor(k) +  covariate + treatment_indic, data = sample)
summary(model)

results <- tidy(model) %>%
  filter(grepl(':', term)) %>%
  mutate(k = substr(term,10,12)) %>%
  mutate(k = as.numeric(str_remove_all(k,"[:t]"))) %>%
  mutate(post = as.factor(ifelse(k >= 0, 1, 0))) %>%
  mutate(year = as.factor(k + E)) %>%
  select(-term, -statistic, -p.value, -k) 

p <- results %>%
  ggplot(aes(x = year, y = estimate, group = post, color = post)) +
  geom_hline(yintercept=0) + 
  geom_errorbar(aes(ymin=estimate-2*std.error, ymax=estimate+2*std.error), 
                width=0.2, color = "grey65") + 
  geom_point()+
  geom_errorbar(aes(ymin=estimate-std.error, ymax=estimate+std.error), width=0.2) + 
  theme_bw() +
  labs(x="", 
       y ="ATT",
       color = "Post-treatment\nindicator")
p

Я подозреваю, что строка, которая создает "модель", не не правильно, поскольку все стандартные ошибки оказались одинаковыми. Все стандартные ошибки в терминах взаимодействия - 0,1323683, а все стандартные ошибки в терминах коэффициента - 0,0460411. Для справки это дает следующую картину:

enter image description here

Я был бы очень признателен, если бы кто-то мог сообщить мне, если моя интерпретация кодирования «В основном безвредна» Эконометрическое уравнение верное. Если нет, что мне делать, чтобы изменить его?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...