R中的固定效应:plm vs lm + factor()

时间:2016-09-18 23:31:39

标签: r lm plm

我试图在R中运行固定效应回归模型。我想控制变量C和D的异质性(两者都不是时间变量)。

我尝试了以下两种方法:

1)使用plm包:给我以下错误消息

formula = Y ~ A + B + C + D

reg = plm(formula, data= data, index=c('C','D'), method = 'within')

duplicate couples (time-id)Error in pdim.default(index[[1]], index[[2]]) : 

我还尝试使用

创建第一个面板
data_p = pdata.frame(data,index=c('C','D'))

但我在两个专栏中都重复了一遍。

2)使用factor()和lm:效果很好

formula = Y ~ A + B + factor(C) + factor(D)
reg = lm(formula, data= data)

这两种方法有什么区别?为什么plm不适合我?是因为其中一个指数应该是时间吗?

1 个答案:

答案 0 :(得分:3)

该错误表示您已经重复了由变量C和D组成的id-time对。

假设您有第三个变量F,它与C共同保持个体与其他个体不同(或者您的第一个维度,无论它是什么)。然后使用dplyr,你可以创建一个独特的指标,比如id

data.frame$id <- data.frame %>% group_indices(C, F) 

plm中的index参数变为index = c(id, D)

如果您有不同的观察结果,lm + factor()就是一个解决方案。如果不是这种情况,则不会在每个id内对结果进行适当加权,也就是说,未正确识别固定效果。