Я знаю, что у MATLAB есть пакет для оценки максимального правдоподобия, но для образовательных целей я пишу сам алгоритм, который возвращает мне оценки. Теперь я написал функцию, которую я пытаюсь свести к минимуму (поскольку я использую отрицательный логарифмический правдоподобие). Вот он:Написание алгоритма оценки максимального правдоподобия в MATLAB
function ml = two_var(param, data)
mu = param(1);
sigma = param(2);
n=numel(data);
sumto = 0;
for i=1:n
c = data(i)- mu;
sumto = sumto + c;
ml = n/2*log(2*pi)+n/2*log(sigma^2)+1/(2*sigma^2)*sumto^2;
end
Этот код относится к оценке гауссовой разности. Теперь проблема в том, что эта функция не является допустимым входом fminunc
... Как я могу обойти проблему? Что я делаю не так? Спасибо всем, кто хочет помочь;)
Мой тезис застрял на довольно похожей стадии. ;) –
Почему это недействительный ввод? Способ обхода проблемы заключается в написании вашей собственной функции минимизации вместо использования встроенных встроенных макросов .... –
Вы вызвали fminunc с помощью 'fminunc (@ (param) two_var (param, data), param0)'? – Jommy