【问题标题】:R - Plm and lm - Fixed effectsR - Plm 和 lm - 固定效果
【发布时间】:2017-09-24 00:08:20
【问题描述】:

我有一个平衡的面板数据集,df,它基本上由三个变量组成,A、B 和 Y,对于一堆唯一标识的区域随着时间的推移而变化。我想运行一个回归,包括区域(下面等式中的区域)和时间(年)固定效应。如果我没记错的话,我可以通过不同的方式实现这一点:

lm(Y ~ A + B + factor(region) + factor(year), data = df)

或

library(plm)
plm(Y ~ A + B, 
    data = df, index = c('region', 'year'), model = 'within',
    effect = 'twoways')

在第二个等式中,我指定了索引(region 和 year)、模型类型('within', FE)和 FE 的性质('twoways' ,这意味着我同时包括区域和时间 FE)。

尽管我似乎做事正确,但我得到的结果却截然不同。当我不考虑时间固定效应并使用参数effect = 'individual'时,问题就消失了。 这是怎么回事?我错过了什么吗?是否有任何其他 R 包允许运行相同的分析?

【问题讨论】:

  • 变量 A 和 B 的结果应该相同。 lm 方法 (LSDV) 将为您提供个体和时间固定效应的估计值以及截距。
  • 两个想法:在lm 命令中指定公式,但在末尾添加-1。如上所述,这将删除 plm 不会自动添加的截距。第二点:不是factor,你试过as.factor吗?

标签: r regression plm


【解决方案1】:

也许发布您的数据示例将有助于回答这个问题。对于一些虚构的数据,我得到了相同的系数。你也可以使用 lfe 包中的 felm 来做同样的事情:

N <- 10000
df <- data.frame(a = rnorm(N), b = rnorm(N),
                 region = rep(1:100, each = 100), year = rep(1:100, 100))
df$y <- 2 * df$a - 1.5 * df$b + rnorm(N)


model.a <- lm(y ~ a + b + factor(year) + factor(region), data = df)
summary(model.a)
#  (Intercept)       -0.0522691  0.1422052   -0.368   0.7132    
#  a                  1.9982165  0.0101501  196.866   <2e-16 ***
#  b                 -1.4787359  0.0101666 -145.450   <2e-16 ***

library(plm)
pdf <- pdata.frame(df, index = c("region", "year"))

model.b <- plm(y ~ a + b, data = pdf, model = "within", effect = "twoways")
summary(model.b)

# Coefficients :
#    Estimate Std. Error t-value  Pr(>|t|)    
# a  1.998217   0.010150  196.87 < 2.2e-16 ***
# b -1.478736   0.010167 -145.45 < 2.2e-16 ***

library(lfe)

model.c <- felm(y ~ a + b | factor(region) + factor(year), data = df)
summary(model.c)

# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)    
# a  1.99822    0.01015   196.9   <2e-16 ***
# b -1.47874    0.01017  -145.4   <2e-16 ***

【讨论】:

  • 非常感谢克里斯托夫。你的回答非常简洁。我正在进一步挖掘数据集。我无法分享数据,但我认为这种差异必须与当时构建变量的方式有关。我对你的答案投了赞成票。
  • 问题终于解决了吗?我遇到了类似的困难,我得到了与lm 和plm 相同的系数。但是,(仅)在我与函数 plm 一起使用的数据框中,我插入因子而不是变量(在函数 lm 中分解)。
【解决方案2】:

这似乎不是数据问题。

我正在使用 Wooldridge (2012) Introductory Econometrics 的 R 语言进行计算机练习。特别是第 14 章 CE.1(数据是租赁文件,地址:https://www.cengage.com/cgi-wadsworth/course_products_wp.pl?fid=M20b&product_isbn_issn=9781111531041)

我计算了模型的差异(在 Python 中)

model_diff = smf.ols(formula='diff_lrent ~ diff_lpop + diff_lavginc + diff_pctstu', data=rental).fit()

OLS 回归结果

==============================================================================
Dep. Variable:             diff_lrent   R-squared:                       0.322
Model:                            OLS   Adj. R-squared:                  0.288
Method:                 Least Squares   F-statistic:                     9.510
Date:                Sun, 05 Nov 2017   Prob (F-statistic):           3.14e-05
Time:                        00:46:55   Log-Likelihood:                 65.272
No. Observations:                  64   AIC:                            -122.5
Df Residuals:                      60   BIC:                            -113.9
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
================================================================================
                   coef    std err          t      P>|t|      [0.025      0.975]
--------------------------------------------------------------------------------
Intercept        0.3855      0.037     10.469      0.000       0.312       0.459
diff_lpop        0.0722      0.088      0.818      0.417      -0.104       0.249
diff_lavginc     0.3100      0.066      4.663      0.000       0.177       0.443
diff_pctstu      0.0112      0.004      2.711      0.009       0.003       0.019
==============================================================================
Omnibus:                        2.653   Durbin-Watson:                   1.655
Prob(Omnibus):                  0.265   Jarque-Bera (JB):                2.335
Skew:                           0.467   Prob(JB):                        0.311
Kurtosis:                       2.934   Cond. No.                         23.0
==============================================================================

现在,R 中的 PLM 包对一阶差分模型给出了相同的结果:

库(plm) modelfd

目前没有问题。但是,固定效应报告的估计值不同。

modelfx

FE 结果不应该有任何不同。其实电脑练习题是:

(iv) Estimate the model by fixed effects to verify that you get identical estimates and standard errors to those in part (iii).

我最好的客人是我想念理解 R 包上的一些东西。

【讨论】:

  • 嗨@GhostCat。我认为这个问题以前没有得到回答,我建议这不是数据问题,而是包中的一致内容。
  • 那你应该说得更清楚。它几乎读起来就像你变相提出了一个“我现在有类似问题”的问题。
猜你喜欢
  • 2017-01-26
  • 2017-09-16
  • 2015-04-06
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
  • 2016-03-13
  • 1970-01-01
相关资源
最近更新 更多