Функция D, возвращающая ноль - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь дифференцировать логарифмическую функцию вероятности многомерного нормального распределения,

NLLmvnorm <- function(data, mu, sigma) {
  a <- qr(sigma)
  logdet <- sum(log(abs(diag(a$qr))))
  sigma.inv <- fast.ginv(sigma)
  -0.5 * (logdet + t(data-mu) %*% sigma.inv %*% (data-mu))
}

Используя D, я различаю по mu и sigma и сохраняю каждый результат в отдельной переменной:

du <- D(expression(NLLmvnorm),"mu")
ds <- D(expression(NLLmvnorm),"sigma")

Однако оба эти результата возвращают 0. Я делаю что-то неправильно или неправильно понимаю, что делает D? Если это поможет, моя цель - найти корни du и ds, чтобы найти максимальную вероятность, используя solve.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...