我通过执行以下操作创建了一个面板:
nlspd <- pdata.frame(p1, index=c("P", "date"))
P date r Mkt.RF SMB HML RF MKT_RF R_excess
1-1966-01-01 1 1966-01-01 0.0098 0.72 0.0389 0.0349 0.0038 0.0072 0.0060
1-1966-02-01 1 1966-02-01 -0.0351 -1.21 0.0454 0.0027 0.0035 -0.0121 -0.0386
1-1966-03-01 1 1966-03-01 -0.0134 -2.51 0.0094 -0.0207 0.0038 -0.0251 -0.0172
2-1966-01-01 2 1966-01-01 0.0270 2.14 0.0345 -0.0054 0.0034 0.0214 0.0236
2-1966-02-01 2 1966-02-01 -0.0484 -5.66 -0.0470 -0.0155 0.0041 -0.0566 -0.0525
2-1966-03-01 2 1966-03-01 -0.0208 -1.44 0.0102 0.0050 0.0038 -0.0144 -0.0246
当我尝试在其中一列上使用以下滞后函数时:
nlspd$R2 <- plm::lead(nlspd$R_excess,1)
我收到以下错误:
Warning message:
In alagt(x, k) : NAs introduced by coercion
我的目标是使用plm运行各种滞后回归,但似乎无济于事,我尝试强制使用plm pakcage,以防dplyr将其混淆。但这也无济于事。请注意,我的数据是干净的,没有无穷大或NA值。这可能是由于我格式化日期列的方式造成的吗?我应该改变吗? 这就是我想要做的:
reg1 <- plm(lead(R_excess,1) ~ lag(RF, 1) + lag (HML, 2), data=nlspd, model="within")