Mode compute returns loglikelihood of 1300, but mode_check states that fval is -inf


I ran an estimation in Occbin using mode_compute = 2 (simulated annealing), with the following output:

SA achieved termination criteria.exitflag=0

Final value of minus the log posterior (or likelihood):-1351.046256 

 (minus) the hessian matrix at the "mode" is not positive definite!
=> posterior variance of the estimated parameters are not positive.
You should try to change the initial values of the parameters using
the estimated_params_init block, or use another optimization routine.


Fval obtained by the minimization routine (minus the posterior/likelihood)): Inf

        prior mean     mode    s.d.  prior pstdev

rhoz        0.8000   0.5064     NaN   beta 0.1500 
rhor        0.8000   0.6714     NaN   beta 0.1500 
vr_pie      1.5000   1.5471     NaN   gamm 0.2000 
vr_y        0.2500   2.6443     NaN   gamm 0.2500 
ome1      800.0000   0.6728     NaN   gamm 750.0000 
ome2      800.0000 12911.3524     NaN   gamm 750.0000 
vr_s1       0.0200   0.1430     NaN   gamm 0.0150 
vphi       75.0000  79.2815     NaN   norm 20.0000 
vphiW      75.0000  75.7401     NaN   norm 20.0000 
xi          1.5000   1.6821     NaN   gamm 1.1350 
del2        0.0100   0.0227     NaN   gamm 0.0075 
aleph2      0.0000   1.5506     NaN   norm 1.0000 
sd_BLR      1.0000   2.8757     NaN   gamm 0.7500 

standard deviation of shocks
        prior mean     mode    s.d.  prior pstdev

e_a         0.0056   0.0088     NaN   gamm 0.0042 
e_z         0.0003   0.0004     NaN   gamm 0.0002 
e_R         0.0010   0.0058     NaN   gamm 0.0008 
e_BLR       0.0100   0.0184     NaN   gamm 0.0075 

standard deviation of measurement errors
        prior mean     mode    s.d.  prior pstdev

y_obs       0.0052   0.0094     NaN   gamm 0.0039 
pie_obs     0.0004   0.0021     NaN   gamm 0.0003 
I_obs       0.0150   0.0537     NaN   gamm 0.0112 
n_obs       0.0040   0.0020     NaN   gamm 0.0030 

I am not suprised that the estimation failed, i.e. the posterior kernel problem was expected. However, I was hoping to use the mode_check plots to identify issues and improve my priors/settings for a second run. Instead, the mode_check plots are all utterly useless with the function failing to evaluate in the vicinity of the located mode (see attached file).
PH_CheckPlots1.pdf (8.3 KB)

Is there any reason why mode_check should have failed like this? My next step is probably to use mode_compute = 6, but since even mode_compute = 2 took seven days to reach this point I was hoping to diagnose issues before running mode_compute = 6 (which I imagine will take much longer).

You have

Something went wrong here internally. Can you provide me with the mode-file and the files to run your model?

I can provide a model file later if necessary (I am now out of the office), but I think this was actually my fault and an extension of the query here: Occbin: "increase maxit or check_ahead_periods" with very high maxit and check_ahead_periods - #13 by Jrs28

Since I set this code running, I replaced my own patched version of update_kalman_algo_1 with your revised version. The difference is the handling of when rank(F) fails; my code simply set rank_F equal to size(F) and continued running, whereas your version throws an error flag. What appears to have happened here is that at the mode found by SA, rank(F) failed. Since I started it running a week ago, it was still using my version where this was acceptable and returned a finite likelihood, whereas mode_compute switches to yours where this throws an error. So I think there’s no need for you to investigate further, sorry for bothering you.