first, the data
Code: Select all
setmaxerrs 1000
wfuse rs.wf1
equation eqb.switchreg(type=markov,heterr,s,coef=b) ds c df
freeze(tb00) eqb.output
the error msg
Near singular matrix in computing the steady state probabilities in "EQUATION EQB.SWITCHREG(TYPE=MARKOV,HETERR,S,COEF=B) DS C DF".
EQB is not defined in "FREEZE(TB00) EQB.OUTPUT".
the estimation fail, however, the equation object EQB is not created. I think that EQB is first created, and then do the SWITCHREG
If I change the codes slightly
Code: Select all
setmaxerrs 1000
wfuse rs.wf1
equation eqb
eqb.switchreg(type=markov,heterr,s,coef=b) ds c df
freeze(tb00) eqb.output
this time, I define the equation object first. the error msg:
Near singular matrix in computing the steady state probabilities in "DO_ EQB.SWITCHREG(TYPE=MARKOV,HETERR,S,COEF=B) DS C DF".
Equation estimates are not valid in "FREEZE(TB00) EQB.OUTPUT".
the freeze output is the eqb.spec
other suggestion: as viewtopic.php?f=8&t=12373
I hope that add one data member, such as eqb.@conv:
-1 if there is an error
0 if no convergence
1 if done
2 if "Failure to improve objective (non-zero gradients) after xxx iteration"
and add one data member for warnings, such as eqb.@warn:
0 no warning
1 "WARNING: Singular covariance - coefficients are not unique"
then the problem in viewtopic.php?f=4&t=12577 will handle more efficiently in prg mode.