按照下面的代码,我可以估计一个滚动的 gmm 函数。
gmm_list_IM <- lapply(1:(length(ALLX$IM)-24), function(i) {
tmp <- ALLX[i:(i+23),]
IM <- as.matrix(as.numeric(tmp$IM))
p <- nrow(IM)
rmrf_local <- as.matrix(as.numeric(tmp$rmrf_local))
SMB_L <- as.matrix(as.numeric(tmp$SMB_L))
HML_L <- as.matrix(as.numeric(tmp$HML_L))
MOM_L <- as.matrix(as.numeric(tmp$MOM_L))
bond_L <- as.matrix(as.numeric(tmp$bond_L))
h <- cbind(rmrf_local,SMB_L,HML_L,MOM_L,bond_L)
gmm(IM ~ rmrf_local+SMB_L+HML_L+MOM_L+bond_L, x=h)
})
需要计算 VIF 以检测具有以下误差的多重共线性。
vif(gmm_list_IM) Error in vcov.default(mod) : there is no vcov() method for models of class list In addition: Warning message: In is.na(coef(mod)) : is.na() applied to non-(list or vector) of type 'NULL' Any idea, please?