Я пытаюсь оценить параметры моей функции логарифма правдоподобия, используя 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
. Я не публикую функцию логарифма правдоподобия, поскольку она довольно длинная и написана произвольно, но правильно. Так что, полагаю, это не поможет ответить на мой вопрос.