Using fminunc for probit estimation

6 views (last 30 days)
I am estimating a simple probit model using fminunc as an optimization tool. The reason why I don't use other optimization strategies is because I want to change code later to estimate ordered probit. I get an error "Input to ROOTS must not contain NaN or Inf." while estimating. Could you please suggest what might be wrong with my code? (see below: w- vector of independent vars, yd-dependent dummy). Many thanks, Yevgeniya
w=M.data(:,3);
yd=M.data(:,5);
k=size(w,2);
[b,r,stats]=regress(yd,w);
start0=b;
data=[w yd];
f0=find(yd==0);
f1=find(yd==1);
opts = optimset ('Display','iter','TolX',1e-15,'TolFun',1e-15,'MaxIter',2000,'MaxFunEvals',1000000);
[param,fval] = fminunc(@(start)P_Lik(data,k,indiv,f0,f1,start),start0,opts);
function L = P_Lik(X,k,indiv,f0,f1,start);
bcoef=start(1:k);
y=X(:,end);
Xb=X(:,1:k)*bcoef;
w=zeros(size(X,1),1);
w(f0)=log(1-normcdf(Xb(f0)));
w(f1)=log(normcdf(Xb(f1)));
L=-sum(w);
  1 Comment
Joshua Scott
Joshua Scott on 5 Aug 2021
Hello Yevgeniya,
I realize this post was made awhile back. I am curious, what edits did you make in order to make this ordered probit?
Thank you
Best,
Josh

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 2 Aug 2011
You should probably be using the FunValCheck option

More Answers (2)

J Ahmed
J Ahmed on 23 Jan 2012
Hi...
I am having same problem even when I turn 'FunValCheck' on. After few simulations it stops with the captioned message. Probably, Yevgeniya, you might help if you have already solved the problem.
Thanks!
  1 Comment
Yevgeniya
Yevgeniya on 24 Jan 2012
Hi Ahmed,
I ended up switching to fmimcon and setting up the constraints to make sure that I don't get numbers out of the acceptable range.
Hope this helps.
Yevgeniya

Sign in to comment.


J Ahmed
J Ahmed on 26 Jan 2012
Thanks Yvegeniya. I'll try that then.

Community Treasure Hunt

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

Start Hunting!