Maximum Likelihood Estimation function

syms a
logL=100.*log(a)+sum(log(exp(a.*c2))+sum(log((1+exp(a.*c2)).^-2)));
j = fplot(logL)
hold on
%%
m=100/a;
o=sum(c);
p=2*exp(a.*c);
q=exp(a.*c)+1;
dlog=m+o-p.*c.*(q.^-1);
k=fplot(dlog);
hline.Color = 'k';
c is a matrix of data
I am trying to find the maximum of the estimator is there another method except plotting the graphs of the log functions?

 Réponse acceptée

Torsten
Torsten le 12 Mai 2022
x = your data vector
fun = @(a) n/a + sum(x) - 2*a*sum(exp(a*x)./(exp(a*x)+1);
a = fzero(fun,1)

3 commentaires

Jane Smith
Jane Smith le 12 Mai 2022
This worked perfectly! Thank you.
Torsten
Torsten le 12 Mai 2022
Modifié(e) : Torsten le 12 Mai 2022
I think there is an error in your derivative of L with respect to a. In my opinion, the function must be
fun = @(a) n/a + sum(x) - 2*sum(x.*exp(a*x)./(exp(a*x)+1))
Jane Smith
Jane Smith le 13 Mai 2022
Modifié(e) : Jane Smith le 13 Mai 2022
Yes you are correct.

Connectez-vous pour commenter.

Plus de réponses (1)

John D'Errico
John D'Errico le 12 Mai 2022

0 votes

Is there another way? Why not negate the function, and then use a tool like fminbnd? Or fminsearch. Or fmincon or fminunc, or ...

2 commentaires

Jane Smith
Jane Smith le 12 Mai 2022
I am getting errors when trying with those functions.
Error using fcnchk
FUN must be a function, a valid character vector expression, or an inline function object.
I have been trying it on various softwares. The function f(x) is made up so i am getting confused were my mistake is in finding the estimate.
David Randolph
David Randolph le 13 Mai 2022
Modifié(e) : David Randolph le 13 Mai 2022
@John D'Errico wrong again!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Function Creation dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by