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?

 Respuesta aceptada

Torsten
Torsten el 12 de Mayo de 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 comentarios

Jane Smith
Jane Smith el 12 de Mayo de 2022
This worked perfectly! Thank you.
Torsten
Torsten el 12 de Mayo de 2022
Editada: Torsten el 12 de Mayo de 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 el 13 de Mayo de 2022
Editada: Jane Smith el 13 de Mayo de 2022
Yes you are correct.

Iniciar sesión para comentar.

Más respuestas (1)

John D'Errico
John D'Errico el 12 de Mayo de 2022

0 votos

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

2 comentarios

Jane Smith
Jane Smith el 12 de Mayo de 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 el 13 de Mayo de 2022
Editada: David Randolph el 13 de Mayo de 2022
@John D'Errico wrong again!

Iniciar sesión para comentar.

Productos

Preguntada:

el 12 de Mayo de 2022

Editada:

el 13 de Mayo de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by