[英]Use the formula(“string”) with felm() from the lfe package while also using fixed effects
我正在嘗試運行一個大型回歸公式,該公式在其他地方作為長字符串創建。 我還想使用“固定效果”(個人特定截距)。
如果沒有固定效果,這在lm()
和felm()
函數中都有效:
library("lfe")
MyData <- data.frame(country = c("US","US","DE","DE"),
y = rnorm(4),
x = rnorm(4))
testformula <- "y ~ x"
lm(formula(testformula),
data = MyData)
felm(formula(testformula),
data = MyData)
如果我使用國家固定效應,這種回歸在felm()
中也沒有問題:
felm(y ~ x | country,
data = MyData)
但是,當我嘗試將formula()
function 和固定效果參數結合起來時,出現錯誤:
felm(formula(testformula) | country ,
data = MyData)
"Error in terms(formula(as.Formula(formula), rhs = 1), specials = "G") :
Object 'country' not found"
我覺得這很奇怪,這兩個 arguments 都可以工作。 如何在 felm felm()
) 中使用formula()
function 並仍然使用 function 的便捷固定效果語法? 我不想將固定效果寫入公式,因為我想依賴 lfe package 的內部轉換。
ps:順便說一句,這在plm()
中有效,所以我猜 felm felm()
function 中有些奇怪,或者我輸入錯誤。
library("plm")
plm(formula(testformula),
data = MyData,
index = c("country"),
model = "within",
effect = "individual")
由於固定效應是公式*的一部分,我們可以將它們包含在公式字符串中。
fit1 <- felm(y ~ x | country, data=MyData)
testformula <- "y ~ x | country"
fit2 <- felm(formula(testformula), data=MyData)
fit2
# x
# 0.3382
all.equal(fit1$coefficients, fit2$coefficients)
# [1] TRUE
*您可以通過以下事實看出這一點:R 中的 function 參數通常用逗號分隔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.