【问题标题】:Fama MacBeth standard errors in RR中的Fama MacBeth标准错误
【发布时间】:2012-04-19 12:30:29
【问题描述】:

有谁知道是否有一个包可以在 R 中运行 Fama-MacBeth 回归并计算标准误差?我知道sandwich 包及其估计 Newey-West 标准误差以及提供聚类功能的能力。但是,我没有看到任何关于 Fama-MacBeth 的信息。

【问题讨论】:

  • library("sos"); findFn("macbeth") 什么也没找到,但 findFn("fama") 在与金融相关的软件包中获得了一些点击。

标签: r regression standard-error panel-data


【解决方案1】:

plm 包可以估计 Fama-MacBeth 回归和 SE。

require(foreign)
require(plm)
require(lmtest)
test <- read.dta("http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.dta")
fpmg <- pmg(y~x, test, index=c("year","firmid")) ##Fama-MacBeth

> ##Fama-MacBeth
> coeftest(fpmg)

t test of coefficients:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.031278   0.023356  1.3392   0.1806    
x           1.035586   0.033342 31.0599   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

但请注意,此方法仅在您的数据可以强制转换为 pdata.frame 时才有效。 (如果你有"duplicate couples (time-id)",它将失败。)

更多详情见:

【讨论】:

  • 在示例中 coeftest(fpmg) 不处理双聚类标准错误。请展示如何为 fpmg 执行此操作。 stackoverflow.com/questions/37441230/…
  • 一个人写道,我们需要交换 N 和 T,每个人都在这样做。我看到其他人对此提出质疑,但他们一直保持沉默;)
  • 两个订单都在 df.petersen 上工作。 pmg 应该是平均时间序列。有时平均横截面在理论上是有意义的。在 FM 回归中:RHS 变量是一个索引:所有 id 都相同。试试:df.petersen2&lt;-data.table(df.petersen); df.petersen2[,:=(x=df.petersen2[firmid==1,x]),by="firmid"]。然后尝试summary(pmg(y ~ x, data=df.petersen2, index=c("year","firmid")))。您将获得 NA,因为您正在运行没有 RHS 变化的横断面。 pmg 没有很好的记录,所以我不确定它是否进行了适当的 FM 回归,但 index=c("firmid","year")) 产生了一个估计值。
  • 进一步研究:pmg 只运行一组回归,然后取平均值。 (不是两组回归)所以应该用第一个 FM 回归的 beta 估计值填充 x,然后在横截面上使用 pmg。对于横截面的平均,应该使用index=c("year","firmid"),注意:这种方法会丢失估计 beta 的错误。
猜你喜欢
  • 2016-01-24
  • 2014-07-27
  • 2020-08-10
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 2012-09-23
  • 2021-01-10
  • 1970-01-01
相关资源
最近更新 更多