почему я получаю несогласованные аргументы в функции GMM, которую я пишу? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь оценить модель, используя обобщенный метод моментов (GMM). Идея состоит в том, чтобы найти коэффициенты (тета), которые минимизируют следующее

E (у * (\ phi - \ theta * x))

y, phi и x - матрицы данных со следующими измерениями

у - 1143 * 3

фи - 1143 * 1

x (входы) - 1143 * 3

Это мой код для GMM:

g <- function(tet, x)
{
  y <- data.matrix(main_dat6[,c(45,46,57)]) 
  phi <- as.vector(main_dat6[,55])
  m <- (t(phi) - (tet[1]%*%t(x[,1])) - (tet[2]%*%t(x[,2])) - (tet[3]%*%t(x[,3]))) %*% y
}

my_gmm <- gmm(g,x=inputs)

Я получаю сообщение об ошибке

Ошибка в тет [1]% *% t (x [, 1]): требуется числовая / сложная матрица / векторные аргументы

Если я использую * вместо% *%, ошибка заключается в том, что у него есть несоответствующие аргументы. Однако я проверил с умножением матрицы, и это кажется правильным. Я не могу исправить и запустить код.

Я новичок в R, поэтому буду очень признателен за любую помощь. Заранее спасибо!

...