如何使用 lfe 包计算动态面板模型
How to calculate dynamic panel models with lfe package
我正在尝试估计具有滞后和多组效应的大型动态固定效应面板数据模型。
我知道 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
提供的快速性?
目前还没有直接的方法来处理 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 在幕后所做的没有什么不同。
我正在尝试估计具有滞后和多组效应的大型动态固定效应面板数据模型。
我知道 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
提供的快速性?
目前还没有直接的方法来处理 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 在幕后所做的没有什么不同。