【问题标题】:Include interaction terms in a fixed effect model using feols使用 feol 在固定效应模型中包含交互项
【发布时间】:2021-07-13 22:09:40
【问题描述】:

我有一个关于在 fixst 包中使用 feols 的问题。我想运行一个回归,其中解释变量x1 是一个具有面板结构的变量,x2 是一个时间序列变量。因变量y也有面板结构。

feols(y ~ x1 + x1*x2 | date, dat)

交互项x1*x2 的系数很有趣。但是,如果我运行上面的回归,则会出现警告说变量 x2 由于共线性而被删除。

我理解是因为在存在时间固定效应的情况下,任何时间序列变量都将与固定效应共线。但是我不知道为什么即使我没有在回归表中单独包含x2,为什么还会出现这样的警告。

我不想使用i() 语法,因为这会给我每个交互项的系数。相反,我只想为描述平均效果的交互项设置一个系数。有什么建议吗?

非常感谢您的帮助!提前致谢。

【问题讨论】:

    标签: r syntax linear-regression panel-data


    【解决方案1】:

    这不是 fixest 特有的,而是 R 解析公式的方式特有的。

    虽然看起来很奇怪,但在公式中写入 x1*x2 不仅包括 x1*x2 术语,还包括 x1x2

    您正在寻找的是:

    • x1:x2 仅包括交互(不包括变量)
    • I(x1*x2) 其中I() 告诉 R 不要触摸里面的东西,所以只添加了交互。

    这里有一些例子:

    base = iris
    names(base) = c("y", "x1", "x2", "x3", "species")
    
    # the multiplication adds x1 and x2
    head(model.matrix(y ~ x1*x2, base))
    #>   (Intercept)  x1  x2 x1:x2
    #> 1           1 3.5 1.4  4.90
    #> 2           1 3.0 1.4  4.20
    #> 3           1 3.2 1.3  4.16
    #> 4           1 3.1 1.5  4.65
    #> 5           1 3.6 1.4  5.04
    #> 6           1 3.9 1.7  6.63
    
    # x1:x2 only includes the product
    head(model.matrix(y ~ x1 + x1:x2, base))
    #>   (Intercept)  x1 x1:x2
    #> 1           1 3.5  4.90
    #> 2           1 3.0  4.20
    #> 3           1 3.2  4.16
    #> 4           1 3.1  4.65
    #> 5           1 3.6  5.04
    #> 6           1 3.9  6.63
    
    # I(x1*x2): idem
    head(model.matrix(y ~ x1 + I(x1*x2), base))
    #>   (Intercept)  x1 I(x1 * x2)
    #> 1           1 3.5       4.90
    #> 2           1 3.0       4.20
    #> 3           1 3.2       4.16
    #> 4           1 3.1       4.65
    #> 5           1 3.6       5.04
    #> 6           1 3.9       6.63
    

    【讨论】:

    • 嗨,非常感谢您提供这个提示!这很有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2021-06-16
    • 2013-05-19
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2022-01-02
    • 2014-09-17
    • 2014-10-08
    相关资源
    最近更新 更多