我想用R中的面板数据运行固定效应Poisson模型,将计数变量作为结果,将人口的对数作为偏移变量(即对比率进行建模)。但是,使用下面的示例数据集,当我运行两个模型m1和m2时,可以获得相同的结果。如果有人能指出我在指定m1方面做错了什么,或者使用其他软件包提供了解决方案,我将不胜感激。非常感谢
library(AER)
data(Fatalities)
library(pglm)
m1 <- pglm(fatal ~ beertax + as.factor(year) + offset(log(pop)), index = c("state"), model = "within", effect="individual", data = Fatalities, family = poisson)
summary(m1)
m2 <- pglm(fatal ~ beertax + as.factor(year), index = c("state"), model = "within", effect="individual", data = Fatalities, family = poisson)
summary(m2)
答案 0 :(得分:0)
一个直接的解决方案是使用 glm
代替,并为年份和州设置虚拟变量:
fit_model <- glm(fatal ~ beertax + as.factor(year) + as.factor(state) + offset(log(pop)) , data = Fatalities, family = poisson)
在 STATA 中给出相同的结果(至少使用这个命令:xtpoisson fatal beertax year1-year7, fe offset(log_pop)
)。
当状态数量相当大时,这种方法是不可行的。在 CRAN 中,有一个新颖的 fixest
包 (https://cran.r-project.org/web/packages/fixest/index.html),它提供了一个具有稳健标准错误的快速解决方案。