quasi maximum likelihood: parameter estimation issue

2 views (last 30 days)
Hi there. thanks for reading first. I got this problem stuck here for few days now, even it seems simple.but.... here is the problem:
I want to use mle function to estimate three parameters(u,phi,syst_sigma) in a customized PDF function. here is the code:
y=[-6.8949 -6.9075 -6.8989 -6.7401 -6.9062];
syms u phi syst_sigma
assume(phi>-1&phi<1);
mi=-1.2704;
measur_sigma=pi^2/2;
h(1)=0;
p(1)=1-phi^2/syst_sigma^2;
t=5;
for t=1:t
h=0.03+phi*h;
v=y(t)-(h+mi);
k=phi.*p/(p+measur_sigma^2);
h=h+k.*v;
p=(phi.*p/(phi-k))+syst_sigma^2;
l=((y(t)-u)^2/p)
P=sum(p)
l=sum((y(t)-u)^2/p)
end
%do the parameter estimation
pdf=@(y,u,phi,syst_sigma) -5/2*log(2*pi)-0.5.*P-0.5.*l;
phat=mle(y(1:end),'pdf',pdf,'start',[0,0.95,0.0]);
t will predefined to a number.I had run the section above '%do the parameter estimation' and it was fine. But after that, it keep come out a lot different error messages. So I come here to see if anyone can help to give some advices. Any comments would be appreciated. Thank you all .
  2 Comments
Matt J
Matt J on 2 Feb 2018
When I run your code, I get
Undefined function or variable 't'.
bing xu
bing xu on 3 Feb 2018
Thank you Matt. I re-edit my question.I added t value and few y data on it as well.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 3 Feb 2018
Edited: Matt J on 3 Feb 2018
%do the parameter estimation
nonsym=matlabFunction(-5/2*log(2*pi)-0.5.*P-0.5.*l);
logpdf=@(y,u,phi,syst_sigma) nonsym(phi,syst_sigma,u);
phat=mle(y(1:end),'logpdf',logpdf,'start',[0,0.95,1],'OptimFun','fmincon');
  1 Comment
bing xu
bing xu on 3 Feb 2018
Matt Thank you so much. This really helps me a lot and your code works very well. I thought my code should modified by varargin and varargout but yours seems smarter.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!