在估计具有多个自变量的GMM时,代码为
do_gmm <- function(X)
{
DE <- X[, "DE"]
rmrf_local <- X[, "rmrf_local"]
SMB_L <- X[,"SMB_L"]
h <- cbind(as.numeric(DE,rmrf_local,SMB_L))
coef(gmm(DE ~ rmrf_local,~SMB_L, x = h))
}
r <- rollapplyr(ALLX0, 24, do_gmm, by.column = FALSE, fill = NA)代码可以工作,但在输出中,我只有第一个变量,如下所示
> r
(Intercept) rmrf_local
[1,] 0.21 -0.32
[2,] 0.32 -0.04
[3,] -0.43 -0.03
[4,] -0.42 -0.23我需要一些东西,比如
> r
(Intercept) rmrf_local SMB_L
[1,] 0.21 -0.32 0.34
[2,] 0.32 -0.04 0.01
[3,] -0.43 -0.03 0.21
[4,] -0.42 -0.23 0.12我不知道为什么,输出中遗漏了第二个变量。有什么想法吗?
发布于 2018-06-05 14:14:09
最后,我解决了它,如下所示
do_gmm <- function(X) {
DE <- DE[,1]<- X[, "DE"]
rmrf_local <- X[, "rmrf_local"]
SMB_L <- X[,"SMB_L"]
HML_L <- X [, "HML_L"]
h <- cbind(rmrf_local,SMB_L, HML_L)
coef(gmm(DE ~ rmrf_local+SMB_L+HML_L, x = h))
}
r <- rollapplyr(ALLX0, 24, do_gmm, by.column = FALSE, fill = NA)
r <- data.frame(r)
r
# X.Intercept. rmrf_local SMB_L HML_L
#1 -5.555761e-02 0.022837356 -0.937533698 -0.0424317893
#2 -4.264533e-02 0.032031878 -0.793814606 -0.0856941501
#3 -4.468413e-02 0.023003578 -0.789339020 -0.0968315078
#4 -5.088025e-02 0.028099687 -0.866812624 -0.0189772617https://stackoverflow.com/questions/50683535
复制相似问题