plm-package ID-YEAR Кластерные стандартные ошибки
Я искал способ сделать кластерные стандартные ошибки, основанные на кластерах ID-Year (каждая комбинация ID-Year рассматривается как новый кластер). Я обнаружил, что такие функции не существуют для plm
объекты, но у меня была идея, и я хотел бы знать, имеет ли это смысл:
В моей формуле PLM, скажем, у меня есть
p <- plm(y~x+factor(year), df, model="within", index=("ID","Date"), effect="individual")
pce <- coeftest(p, vcov=vcovHC(p, method = "arellano", type="sss",cluster="group"))
Могу ли я просто назначить модель LSDV с индексом, который просто представляет комбинации ID-Year, например:
df$IDYEAR <- paste(df$ID,df$YEAR)
p1 <- plm(y~x+factor(year)+factor(ID), df, model="pooling", index=("IDYEAR"))
p1ce <- coeftest(p1, vcov=vcovHC(p1, method = "arellano", type="sss",cluster="group"))
Это должно оценить почти точно такую же модель, обманывая мой plm
думать, что уровень группы IDYEAR
так что я получаю правильные стандартные ошибки. Правильно ли мое мышление здесь?
1 ответ
Решение
Я думаю, незначительная корректировка vcovDC
следует сделать
vcovDC <- function(x, ...){
vcovHC(x, cluster="group", ...) + vcovHC(x, cluster="time", ...) -
vcovHC(x, method="white1", ...)
}
Довольно аккуратное объяснение здесь.
Это должно работать и для вашего примера с LSDV.