R optim/nlm с многомерным массивом параметров

Я использую optim/nlm, чтобы сделать оценку максимального правдоподобия, и мои параметры находятся в многомерном массиве.

Вероятность оценивается нормально, т.е. с учетом данных х, а многомерный массив параметров тета, вероятность (тета, х) дает действительное число.

Тем не менее, используя optim/nlm, с начальным значением, которое имеет то же измерение, что и тета, которое было оценено нормально, я получаю следующую ошибку:

Error in theta[1, 1, 1] : incorrect number of dimensions

при оценке вероятности. Оказывается, optim/nlm сглаживает мой многомерный массив в одномерный массив. Есть ли в любом случае я могу использовать optim/nlm с многомерным массивом параметров?

1 ответ

Решение

Я не верю, что это возможно с optim сам. Мой совет - восстановить форму самостоятельно, например

optim(
    matrix(1:4, 2, 2),
    function(par) {
        par = matrix(par, 2, 2) # Reshape
        sum((par - matrix(5:8, 2, 2))**2)
    }
)
Другие вопросы по тегам