Отрицательные диагональные значения в гессианской матрице в функции optim - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь оценить параметры моей функции логарифмического правдоподобия, используя optim в R. Процесс оптимизации сходится и оценки параметров довольно интуитивно понятны и соответствуют ожиданиям. Проблема возникает, когда я хочу вычислить стандартные ошибки для оценочных коэффициентов, используя sqrt(diag(solve(- optim$hessian))), что приводит к NaN s для многих коэффициентов, что связано с наличием отрицательных значений на диагонали матрицы гессиана. Эта проблема, я полагаю, является довольно распространенной, поскольку она была задана на некоторых других сообщениях SO, таких как здесь или здесь .

Что меня удивило, так это то, что, несмотря на частоту проблемы, почти никакого конкретного объяснения или решения не было предложено для решения таких ситуаций. Итак, я был бы очень признателен, если бы кто-то мог прояснить, почему матрица гессиана не является положительно определенной (я минимизирую отрицательную логарифмическую вероятность), особенно учитывая, что оптимизация сходится. Кроме того, как я могу продолжить и вычислить стандартные ошибки? Попытка различных начальных значений, кажется, не является надежным решением и ранее оказалась неэффективной. В некоторых случаях, таких как здесь и здесь , рекомендуется использовать функцию hessian из пакета numDeriv, чтобы численно вычислить гессенскую матрицу при оптимальных значениях. В моем случае это приводит к следующей ошибке, которую я не могу устранить:

  Error in Daprox[, k] <- (f1 - f2)/(2 * h[i]) :
  incorrect number of subscripts on matrix

Почти аналогичная ошибка возникает при использовании функции hessian из пакета pracma. Я не публикую функцию логарифмического правдоподобия, так как она довольно длинная и написана ad-ho c, но правильно. Поэтому я полагаю, что это не поможет ответить на мой вопрос.

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