gpt4 book ai didi

r - 如何使用 felm() 指定工具变量模型?

转载 作者:行者123 更新时间:2023-12-05 04:02:58 26 4
gpt4 key购买 nike

由于实现了聚类标准误差方法,我想用 felm() 估计一个工具变量模型。使用 AER::ivreg()plm::plm() 我可以生成相同的结果。然而,在 felm() 中指定函数对我来说似乎不是很简单,我失败了。

我正在使用 ivreg() 帮助的示例,其中 tdiffI(tax/cpi) 都是工具日志(价格):

library(AER)
aer.hat <- ivreg(log(packs) ~ log(rprice) + log(rincome) | log(rincome) + tdiff + I(tax/cpi),
data=CigarettesSW, subset=year == "1995")
> coef(aer.hat)
(Intercept) log(rprice) log(rincome)
9.8949555 -1.2774241 0.2804048

使用 plm() 我可以轻松生成相同的结果:

library(plm)
plm.hat <- plm(log(packs) ~ log(rprice) + log(rincome) | log(rincome) + tdiff + I(tax/cpi),
data=CigarettesSW[CigarettesSW$year == 1995, ], model="pooling")
> coef(plm.hat)
(Intercept) log(rprice) log(rincome)
9.8949555 -1.2774241 0.2804048

但是我用 lfe::felm() 失败了:

library(lfe)
felm.hat <- felm(log(packs) ~ log(rprice) + log(rincome) | 0 | log(rprice) ~ tdiff + I(tax/cpi) | 0 ,
data=CigarettesSW[CigarettesSW$year == 1995, ])
> coef(felm.hat)
(Intercept) tdiff I(tax/cpi)
1.000000e+00 -8.187404e-17 -3.294448e-17

我们如何在 felm() 中做到这一点?

数据

data("CigarettesSW", package="AER")
CigarettesSW$rprice <- with(CigarettesSW, price/cpi)
CigarettesSW$rincome <- with(CigarettesSW, income/population/cpi)
CigarettesSW$tdiff <- with(CigarettesSW, (taxs - tax)/cpi)

最佳答案

我们有

felm.hat <- felm(log(packs) ~ log(rincome) | 0 | (log(rprice) ~ tdiff + I(tax/cpi)),
data = CigarettesSW[CigarettesSW$year == 1995, ])
coef(felm.hat)
# (Intercept) log(rincome) `log(rprice)(fit)`
# 9.8949555 0.2804048 -1.2774241

Point 1: instrumented variable log(rprice) 只需要在第三部分,不需要也添加到第一部分。

要点2:在第三部分我加了括号; ?felm 说明了 ~| 之间的干扰,但我不确定为什么在这种情况下需要括号。

我还删除了| 0结尾,不需要。

关于r - 如何使用 felm() 指定工具变量模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53912380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com