Parameters estimation using maximum likelihood with fmincon
Mostra commenti meno recenti
Hi all,
I need to find the parameters by MLE. My code is as below. It seems to give me the values if without log(L) but incorrect from the original equation.
function LL = Loglikelihood(theta)
data = readtable('Test_data1.xlsx')
Gap = data.Var2
Vni = data.Var3
an = data.Var4
pn = data.Var5
hn = data.Var6
sn = data.Var7
n=length(Gap); %500 samples
b1 = theta(1); % parameter
b2 = theta(2); % parameter
b3 = theta(3); % parameter
b4 = theta(4); % parameter
b5 = theta(5); % parameter
b6 = theta(6); % parameter
sig = theta(7); % sigma
LL=0;
%%% try to find log likelihood
for ind = 1:n
L = (1./sig).*(normpdf(((Gap(ind)-(b1.*(Vni(ind).^b2).*((b3).^hn(ind)).*((b4).^pn(ind)).*((b5).^sn(ind))./((abs(an(ind)+exp(-50))).^(b6)))))./(sig)));
LL= LL+(log(L));
end
LL = -sum(LL)
end
%%% try to find optimization
A=[];
b=[];
Aeq=[];
beq=[];
lb=[-2 -2 0.5 0.5 0.5 -2 0.07];
ub=[4 4 2 2 2 2 2];
theta_0 =[ 2 1 1 1.5 1.5 1.5 4 ];
options=optimset('PlotFcns','optimplotfval','Display','off','MaxIter',10000,'TolX', 10e-6, 'MaxFunEvals', 10000, 'TolFun',10e-6);
[theta,fval,exitflag,output,grad,hessian] = fmincon(@Loglikelihood,theta_0,A,b,Aeq,beq,lb,ub,[],options)
The error shows " Error using barrier
Objective function is undefined at initial point". Fmincon cannot continue.
And there are somethings wrong with fmincon function.
Thanks in advance.
1 Commento
Bjorn Gustavsson
il 18 Ago 2021
Since you're using normal-distributed samples the maximum-likelihood estimates should be the identical to the weighted least-squares solution.
Risposte (0)
Categorie
Scopri di più su Surrogate Optimization in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!