问题描述
我正在尝试在 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。