Пакет gmm в R: Использование условий момента

У меня есть проблема при реализации пакета GMM в R: при включении менее определенного количества условий моментов (т.е. 27) код работает отлично. При включении более определенного количества условий моментов (например, 27) код возвращает следующее сообщение об ошибке:

Error in AA %*% t(X) : requires numeric/complex matrix/vector arguments
In addition: Warning message:
In ar.ols(x, aic = aic, order.max = order.max, na.action = na.action,  :
  model order:  1 singularities in the computation of the projection matrix results are only valid up to model order 0

Ниже приведен код, который не работает, однако при установке t0 = rep(0,27) и без учета g_B(3) - g_B(7) код работает отлично.

gl <- function(ttt, x) { 

  g_B <- function(a)  {
    B <- ((as.vector(z %*% matrix(ttt[(a*3-2):(a*3)],3,1)) * z) - 
            (as.vector(z %*% matrix(ttt[(19+a*3):(21+a*3)],3,1)) * as.vector(z %*% matrix(ttt[19:21],3,1)) * z))
    return(B)
  }

  g_PF <- function(a) {
    A <- (as.vector(x[,a]) * z) - (as.vector(z %*% matrix(ttt[(a*3-2):(a*3)],3,1)) * z)
    return(A)
  }

  gmat <- cbind(g_PF(1),g_PF(2),g_PF(3),g_PF(4),g_PF(5),g_PF(6),g_PF(7),g_B(1),g_B(2),g_B(3),g_B(4),g_B(5),g_B(6))
  return(gmat)
}

ress <- gmm(g = gl,x = x, t0 = rep(0,39))
summary(ress)

Это данные, используемые для x (возврат портфеля) и z (переменные состояния): https://1drv.ms/f/s!AuPlGq9-jRlpgzVR12selaXgL8s8

Основной экономической моделью является явная бета-модель Gyhsels:

0 ответов

Другие вопросы по тегам