Применение многоканальной кластер-устойчивой функции в R - PullRequest
1 голос
/ 02 мая 2019

Hello (первый таймер здесь),

Я хотел бы оценить «двустороннюю» кластер-устойчивую матрицу дисперсии-ковариации в R. Я использую конкретную стандартную процедуру из библиотеки «multiwayvcov»,Мой вопрос относится исключительно к настройке функции cluster.vcov в R. У меня есть групповые данные о различных результатах преступлений.Моей единицей поперечного сечения является «участок» (более 40 участков), и я наблюдаю преступность на этих участках в течение нескольких «месяцев» (т. Е. 24 месяцев).Я оцениваю вмешательство, которое «включается» (с фиктивной кодировкой) только на несколько месяцев в течение года.

Я включаю фиксированные эффекты «участка» и «месяца» (т. Е. Полный набор участка и месяцаманекены входят в модель).У меня есть только одна независимая переменная, которую я оцениваю.Я хочу кластеризовать «оба» измерения, но я не уверен, как их настроить.

Оцениваю ли я все фиксированные эффекты сначала с lm?Или я просто запускаю модель регрессии преступления на независимую переменную (исключая фиксированные эффекты), затем использую cluster.vcov, то есть ~ precinct + month_year.

Похоже, что это даст неправильную стандартную ошибку.Правильно?Я надеюсь, что это было ясно.Извините за путаницу.См. Мою схему ниже.

library(multiwayvcov)

model <- lm(crime ~ as.factor(precinct) + as.factor(month_year) + policy, data = DATASET_full)

boot_both <- cluster.vcov(model, ~ precinct + month_year)

coeftest(model, boot_both)

### What the documentation offers as an example
### https://cran.r-project.org/web/packages/multiwayvcov/multiwayvcov.pdf

library(lmtest)

data(petersen)

m1 <- lm(y ~ x, data = petersen)

### Double cluster by firm and year using a formula

vcov_both_formula <- cluster.vcov(m1, ~ firmid + year)

coeftest(m1, vcov_both_formula)

Подходит ли сначала для оценки модели, которая игнорирует фиксированные эффекты?

1 Ответ

0 голосов
/ 02 мая 2019

Сначала ответ: сначала вы должны оценить вашу lm -модель, используя фиксированные эффекты. Это даст вам ваши асимптотически правильные оценки параметров. Ошибки std неверны, потому что они вычисляются из матрицы vcov, которая предполагает ошибки iid.

Чтобы заменить ковариационную матрицу iid на кластерную робастную матрицу vcov, вы можете использовать cluster.vcov, т.е. my_new_vcov_matrix <- cluster.vcov(~ precinct + month_year).

Тогда рекомендация: я настоятельно рекомендую функцию felm из lfe как для многоканальных файловых систем, так и для стандартных кластерных ошибок.

Синтаксис следующий:

library(multiwayvcov)
library(lfe)

data(petersen)

my_fe_model <- felm(y~x | firmid + year | 0 | firmid + year, data=petersen )

summary(my_fe_model)
...