多向鲁棒函数在R

时间:2019-05-02 07:01:41

标签: r lm least-squares dummy-variable covariance-matrix

你好(这里是第一个计时器)

我想估计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)

首先估计一个忽略固定效应的模型是否合适?

1 个答案:

答案 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)