固定效果plm包R - 每年多次观察/ id

时间:2017-04-20 04:11:07

标签: r plm economics

我正在进行状态和年份固定效果回归,根据该行的比赛(白色,黑色,其他),每个状态/年组合有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)  ` 

是否有解决方法或我运气不好?

1 个答案:

答案 0 :(得分:1)

plm函数只需要一对id / time。对于您提供的每个ID,您有一年以上的时间。

如果每个st_namerace对组成一个&#34;个人&#34; (或者你给小组这个维度的名字),那么你可以这样做:

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建议的那种嵌套面板结构。您只是重新定义了面板的第一个维度。