我正在研究州和年份固定效应回归,根据该行的种族(白人、黑人、其他),每个州/年份组合有 3 个观察值 - 请参阅下面的链接。
到目前为止,我一直在使用基本 lm 函数来估计考虑所有三个种族的固定效应回归。我通过使用州、年份和种族作为因素变量来做到这一点。我还对每场比赛进行单独的回归。问题是我更喜欢使用 plm 包,这样我就可以获得所有种族模型的 r 平方内,但是它给了我错误。
编辑:I included a picture of my data here 该数据是一个平衡面板,有 34 个州、12 年(2003-2014 年),每个州/年组合有 3 个种族,因此总共有 1244 个观察值。
这是我用来运行 plm 回归的代码:
#plm regression
plm.reg <- plm(drugcrime_ar ~ decrim_dummy + median_income + factor(race),
data = my.data, index=c("st_name","year"), model = "within",
effect = "twoways")
我收到的错误:
Error in pdim.default(index[[1]], index[[2]]):
duplicate couples (id-time)
In addition: Warning messages:
1: In pdata.frame(data, index) :
duplicate couples (id-time) in resulting pdata.frame
to find out which, use e.g. table(index(your_pdataframe), useNA = "ifany"
2: In is.pbalanced.default(index[[1]], index[[2]]) :
duplicate couples (id-time)
3: In is.pbalanced.default(index[[1]], index[[2]]) :
duplicate couples (id-time) `
有解决方法吗?还是我运气不好?
最佳答案
plm
函数只需要一对 ID/时间。对于您提供的每个 ID,您都有一年以上的时间。
如果每个 st_name
和 race
对形成一个“个体”(或者您为面板的这个维度指定的任何名称),那么您可以这样做:
library(dplyr)
my.data$id <- group_indices(my.data, st_name, race)
#which would be the same as my.data <- my.data %>% mutate(id = group_indices(st_name, race)), if this function supported mutate.
plm.reg <- plm(drugcrime_ar ~ decrim_dummy + median_income + factor(race),
data = my.data, index=c("id","year"), model = "within",
effect = "twoways")
但是,请注意,在这种情况下,您没有使用 @Helix123 建议的某种嵌套面板结构。您只是重新定义面板的第一个维度。
关于r - 固定效应 plm 包 R - 每年/id 的多次观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43510067/