簡體   English   中英

使用來自 lfe package 的公式(“字符串”)和 felm(),同時還使用固定效果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM