using mle in matlab
Mostrar comentarios más antiguos
for a given dataset i need to calculate parameters value using mle where cdf = a*(1-exp(-b*A)) and pdf = a*b*exp(-b*A),if i use following code
A=[6 10 17 20 29 34 38 41 50 55 ];
[phat,pci] = mle(A,'pdf',@(A,x,y) x*y*exp(-y*A),'start',[1,1])
i get
Error using mlecustom>llf_pdfcdf
(line 440)
The PDF function returned negative
or zero values.
Error in fminsearch (line 330)
x(:) = xe; fxe =
funfcn(x,varargin{:});
Error in mlecustom (line 184)
fminsearch(llf,start,opts,uncensData,censData,uncensFreq,censFreq,fun1Args,fun2Args,checkFunVals,lb,ub);
Error in mle (line 247)
[phat, pci] =
mlecustom(data,varargin{:});
I am not able to understand what is wrong and how to rectify it as i am new to matlab.Please help how sholud i evaluate parameters a and b using mle function in matlab.
Respuesta aceptada
Más respuestas (1)
Jeff Miller
el 13 de En. de 2021
0 votos
One problem is that mle's search function (fminsearch) may try negative parameter values, in which case your pdf function returns a negative value. You could avoid that problem by squaring the parameter values, like this:
[phat,pci] = mle(A,'pdf',@(A,x,y) x^2*y^2*exp(-y^2*A),'start',[1,1])
If you do that, just keep in mind that the "real" x and y values you want are the squares of the phat values returned by mle.
Another problem, though, is that these are not legitimate pdf and cdf functions except when a=1. So, I think you really only have one parameter to estimate here--namely, your y parameter. It looks to me, anyway, like you are fitting an exponential distribution to these A values and looking for the best-fitting rate parameter. That value is 0.03333 = 1/mean(A)
4 comentarios
shalini sharma
el 17 de En. de 2021
shalini sharma
el 17 de En. de 2021
Elifnur Öztürk
el 22 de Mayo de 2021
Did you find the answer to your question? @shalini sharma
shalini sharma
el 26 de Mayo de 2021
Categorías
Más información sobre Gaussian Mixture Models en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!