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

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

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

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

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

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


r nlm
person pmangg    schedule 10.11.2011    source источник
comment
Конкретное решение будет зависеть от кода, который вы используете. Насколько я знаю, параметр drop=FALSE для [ нельзя применять глобально.   -  person IRTFM    schedule 10.11.2011


Ответы (1)


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

optim(
    matrix(1:4, 2, 2),
    function(par) {
        par = matrix(par, 2, 2) # Reshape
        sum((par - matrix(5:8, 2, 2))**2)
    }
)
person Owen    schedule 10.11.2011
comment
Спасибо за идею, в итоге я поставил размерность многомерного массива в качестве параметра моей функции и выполнил изменение формы внутри функции правдоподобия. - person pmangg; 11.11.2011