你好(这里是第一个计时器)
我想估计R中的“双向”聚类-鲁棒方差-协方差矩阵。我使用的是“ multiwayvcov”库中的特定固定例程。我的问题仅涉及R中cluster.vcov
函数的设置。我拥有各种犯罪结果的面板数据。我的横断面单元是“专用区”(超过40个专用区),我观察到这些专用区在数个“月”(即24个月)内犯罪。我正在评估一种在全年仅几个月内“开启”(虚拟编码)的干预措施。
我包括“区域”和“月”固定效果(即模型中包含全套的区域和月虚拟对象)。我只有一个自变量正在评估。我想在“两个”维度上都聚类,但不确定如何设置。
我是否首先估计lm
的所有固定效果?或者,我是否只对自变量(不包括固定效应)运行模型回归犯罪,然后使用cluster.vcov
,即〜辖区+ 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)
首先估计一个忽略固定效应的模型是否合适?
答案 0 :(得分:0)
首先是答案:您应该首先使用固定效果估算lm模型。这将为您提供渐近正确的参数估计。 std错误是不正确的,因为它们是从假设iid错误的vcov矩阵计算得出的。
要将iid协方差矩阵替换为聚类鲁棒vcov矩阵,可以使用cluster.vcov,即my_new_vcov_matrix <- cluster.vcov(~ precinct + month_year)
。
然后是一个建议:我热烈推荐felm
中的函数lfe
,用于多路fe和健壮的标准错误。
语法如下:
library(multiwayvcov)
library(lfe)
data(petersen)
my_fe_model <- felm(y~x | firmid + year | 0 | firmid + year, data=petersen )
summary(my_fe_model)