1
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
このコードは、ガウスdistibutionの推定に関するものです。今、私が持っている問題は、この関数が有効なfminunc
入力ではないようです...どのように問題を回避できますか?私は間違って何をしていますか?助けたい人に感謝;)
私の論文はかなり似た段階で立ち往生しています。 ;) –
なぜそれは有効な入力ではありませんか?問題を回避する方法は、matlabs inbuiltを使用するのではなく、独自の最小化関数を書くことです。 –
fminunc(@(param)two_var(param、data)、param0) 'でfminuncを呼び出しましたか? – Jommy