I am attempting to estimate a model of the following form:
W = alphaH * H + alphaM * M + alphaL * L + X * beta
H, M, L are indicators for a discrete choice variable, and
beta is something like 35-dimensional. Because we believe our data/model has endogeneity issues, we have expanded the model to
W = alphaH * H' + alphaM * M' + alphaL * L' + X * beta H = Z * betaH M = Z * betaM L = Z * betaL H' = 1( H = max(H,M,L) ) M' = 1( M = max(H,M,L) ) L' = 1( L = max(H,M,L) )
Z are instruments, and
betaH, betaM, betaL are parameters to be estimated. This "subregression" corresponds to a latent utility-based choice model.
We have been able to estimate the second-stage model (estimates of
H, M, L, implying
H', M', L') in Stata using the
mvprobit command, but can't figure out how to estimate the entire model in one fell swoop. To work around this, we wrote some code in MATLAB to estimate the model using simulated maximum likelihood, but MATLAB is choking on local minima (maxima in this problem, but MATLAB will only minimize the negative...), of which there are plenty.
We have attempted to work around this by starting from a few dozen initial conditions, none of which usually converges to the "right" answer; I say this with near certainty since we have been testing the code piecewise and have confirmation (on randomized test data) that if the optimization starts near the "correct" values (in test), it converges to reasonable values, otherwise it gets nowhere close (although the resultant outcome has a far lower overall likelihood).
Are there any tricks -- MATLAB, Stata, or otherwise -- to work around this problem? Is this an inherent issue with simulation versus closed-form analysis?
Thanks for your help.