微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R中PMG分析中的不平衡面板错误

如何解决R中PMG分析中的不平衡面板错误

我正在尝试在 R 中运行 Fama Macbeth 分析,其中我使用带有以下代码的“pmg”函数

Fpmg1 <- pmg(ret ~ HML_OBS + SMB + Mktrf + HML,Analysis4_Weighted,index = c("permno"))
summary(Fpmg1)

我目前有 1,354,623 个条目和 11 个总列。我得到以下输出,其中我的系数估计值为 NA。

Mean Groups model

Call:
pmg(formula = ret ~ HML_OBS + SMB + Mktrf + HML,data = Analysis4_Weighted,index = c("date","permno"))

Unbalanced Panel: n = 295,T = 3567-6287,N = 1349058

Residuals:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
-1.065356 -0.077703 -0.008573  0.000000  0.060437 19.741368 

Coefficients:
             Estimate Std. Error z-value Pr(>|z|)   
(Intercept) 0.0110395  0.0034105   3.237 0.001208 **
HML_OBS            NA         NA      NA       NA   
SMB                NA         NA      NA       NA   
Mktrf              NA         NA      NA       NA   
HML                NA         NA      NA       NA   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Total Sum of Squares: 50764
Residual Sum of Squares: 45906
Multiple R-squared: 0.0957

在运行模型之前,我已经对以下内容进行了排序:

Analysis4_Weighted <- 
  Analysis4_Weighted %>%
  dplyr::filter(!is.na(HML_OBS))

Analysis4_Weighted <- 
  Analysis4_Weighted %>%
  dplyr::filter(!is.na(ret))

Analysis4_Weighted <- 
  Analysis4_Weighted %>%
  group_by(date) %>%
  dplyr::filter(n() > 10)

你知道为什么我没有得到任何估计吗?

我的数据由不同股票在很长一段时间内的各种回报组成,我试图测试这些系数预测不同股票在此期间的股票回报的能力。

谢谢!

解决方法

这可能是因为 pmg 要求对于每个 permno 的横截面回归,您对每个 permno 的 n 个因子有 n+1 次序列。每个 permno 可能没有 n+1 次序列。您需要为缺失的时间序列生成数据,或者消除没有足够时间序列进行估计的 permno。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。