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
입력이 아닌 것 같습니다 ... 어떻게 문제를 회피 할 수 있습니까? 내가 도대체 뭘 잘못하고있는 겁니까? 도움을 청하는 사람 덕분에)
나의 논문은 꽤 비슷한 단계에 붙어있다. ;) –
왜 이것이 유효한 입력이 아닌가요? 문제를 우회하는 방법은 matlabs inbuilt를 사용하는 대신 자신의 최소화 함수를 작성하는 것입니다. –
fminunc (@ (param) two_var (param, data), param0)'와 함께 fminunc를 호출 했습니까? – Jommy