R - Plm和lm - 固定效果

时间:2017-04-26 14:13:56

标签: r regression plm

我有一个平衡的面板数据集 df ,它基本上包含三个变量, A B Y < / em>,随着时间的推移,对于一堆唯一标识的区域而言会有所不同。我想进行回归,包括区域(下面的等式中的区域)和时间(年)的固定效应。如果我没弄错的话,我可以通过不同的方式实现这一目标:

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包可以运行相同的分析?

2 个答案:

答案 0 :(得分:7)

也许发布您的数据示例有助于回答这个问题。对于某些组成的数据,我得到相同的系数。您还可以使用包felm中的lfe执行相同的操作:

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 ***

答案 1 :(得分:0)

这似乎不是数据问题。

我在Wooldridge(2012)计量经济学的计算机练习中做过计算机练习。具体而言,第14章CE.1(数据是租赁文件:https://www.cengage.com/cgi-wadsworth/course_products_wp.pl?fid=M20b&product_isbn_issn=9781111531041

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

==============================================================================
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
==============================================================================

OLS回归结果

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

现在,R中的PLM包为第一个差异模型提供了相同的结果:

  

library(plm)modelfd&lt; - plm(lrent~lpop + lavginc + pctstu,   data = data,model =&#34; fd&#34;)

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

  

modelfx&lt; - plm(lrent~lpop + lavginc + pctstu,data = data,model =   &#34;在&#34;,效果=&#34;时间&#34;)摘要(modelfx)

FE结果应该没有任何不同。事实上,计算机练习的问题是:

jQuery('#wpfront-notification-bar > table').replaceWith( jQuery('#wpfront-notification-bar > table').html()
   .replace(/<tbody/gi, "<div id='table'")
   .replace(/<tr/gi, "<div")
   .replace(/<\/tr>/gi, "</div>")
   .replace(/<td/gi, "<span")
   .replace(/<\/td>/gi, "</span>")
   .replace(/<\/tbody/gi, "<\/div")
);

我最好的客人是我很想理解R包装上的东西。