【问题标题】:gmm estimation errorgmm 估计误差
【发布时间】:2018-06-04 15:03:18
【问题描述】:

在估计具有多个自变量的 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

我不知道为什么,输出中缺少第二个变量。请问有什么办法吗?

【问题讨论】:

  • 什么是 GMM?不过,我想,如果我们不知道,那么我们就无法帮助您。
  • @Mawg 好吧,我问那些已经知道的人。无论如何,它是 Hansen 开发的一种广义矩量法,对估计中的异方差和序列相关问题具有鲁棒性。
  • NP。正如我所说,那些不知道的人可能无法帮助你。我赞成您的回答,因为这将有助于将来的其他人。

标签: r regression gmm rolling-computation


【解决方案1】:

最后,我解决了如下

      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.0189772617

【讨论】:

  • 两天后,您可以接受您的回答。这将对以后阅读此问题的其他人有所帮助。
  • @Mawg System 一天后说!无论如何,我会这样做的。
  • 也许他们改变了它;过去肯定是两天。最重要的是你不怕接受自己的答案:-)
  • @Mawg 我知道了!顺便问一下。该解决方案仅提供“系数”。要获得其他估计值,例如 R2 或 std 错误,并且当我从第 7 行代码中删除 coef 时,我遇到了错误。 Error in zoo(rval, index(x)[i]) : “x” : attempt to define invalid zoo object 你有什么建议? @Parfait
  • 我建议了解这些东西的人可以帮助你,但那不是我 ;-) 我还建议你打开第二个问题,而不是把它变成一系列问题。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 2016-01-31
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 2021-02-28
相关资源
最近更新 更多