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