我试图在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不适合我?是因为其中一个指数应该是时间吗?
答案 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内对结果进行适当加权,也就是说,未正确识别固定效果。