如何使用lfe包计算动态面板模型

5

我试图估计一个带有滞后和多个组效应的大型动态固定效应面板数据模型。

我知道plm包中的pseries对象可以处理带有滞后的面板回归。

library(plm)
data("EmplUK", package = "plm")
Em <- pdata.frame(EmplUK)
plm(emp~output+capital + lag(wage, 1),data=Em,model="within")

lfe包中是否有类似的解决方案,使我可以利用lfe提供的速度优势来处理面板对象?

1个回答

6

目前还没有直接使用 felm 进行滞后的方法,但可以按以下方式进行:

library(lfe)
felm(emp~output+capital + lag(Em[,'wage'],1)|firm,data=Em)

之所以使用 felm 时滞后不能立即生效,是因为它会使用默认的滞后函数,而不是 pseries 滞后函数。在上述指定方式中,使用了 pseries 滞后函数。

另一种使其生效的方法是:

felm(emp~output+capital + lag(wage,1)|firm,data=as.data.frame(Em))

即,在代码中明确包含 as.data.frame,这将把 Em 转换为具有适当属性的 "data.frame"。这将导致整个数据集的复制,但与 plm 在幕后执行的操作没有区别。


1
下一个lfe版本(大约一个月后)将直接支持pseries,前提是已加载plm。这证明是一个非常简单的修复。在创建模型框架时,我只需用“as.Formula”替换“as.formula”的一个点即可。这样可以保留'wage'的类,并使用正确的lag()。 - Simen Gaure
3
当前版本的lfe(2.3)可以处理这个问题,也就是说,felm(emp~output+capital + lag(wage, 1)|firm,data=Em)将使用pseries滞后值。 - Simen Gaure

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接