FELM的价值观

时间:2017-11-14 02:09:18

标签: r linear-regression lfe

我试图从具有许多因子的线性模型中得到拟合值,我想使用R包felm中的lfe函数来估计。除非我误解了函数返回的fitted.values的含义,否则看起来这些值与我手动构建它时得到的输出不匹配。以下是根据包文档改编的示例:

library(lfe)
set.seed(42)
nn = 10
n1 = 3

x <- rnorm(nn)
f1 <- sample(n1, length(x), replace=TRUE)
y <- 2.13*x + cos(f1) + rnorm(length(x), sd=0.5)
est <- felm(y ~ x | f1)
estb <- lm(y~x+factor(f1)-1)


# we have exactly the same coefficients
getfe(est)['effect']/estb$coefficients[2:(n1+1)]
est$coefficients/estb$coefficients[1]

# but different fitted values -- in fact all having the same group offset
estb$fitted.values-est$fitted.values

这些抵消是什么? felm是否打算返回不同类型的拟合值?谢谢你看

2 个答案:

答案 0 :(得分:1)

看起来felm吐出的拟合值仅使用felm方程的第一部分中的回归量计算(不包括固定效应)。这解释了您在数据中看到的相同组偏移量。

您可以通过从观察值中减去felm对象中的残差来导出整个模型的拟合值。与拟合值不同,残差是使用完整模型计算的(参见felm函数的帮助)。

答案 1 :(得分:0)

这在lfe 2.8-5.1中不再是问题。在OP的示例中,estb$fitted.values将返回正确的拟合值,包括固定效果。 felm()lm()输出之间的差异仅来自舍入。