I am doing Bayesian estimation of some model. The structure of the code is standard:
…

alpha = 0.5; // * for example, all parameters are assigned some values

model (linear);
…
end;

alpha, 0.7, 0.,1., beta_pdf, 0.5, 0.1;//** defining the prior distribution and initial draw
…
estimate …

I have noticed that if I change values of alpha in line *, but do not change anything in line **, the results for modes are different (slightly different, but different. In particular the log data density can be noticeably different). Is it OK? I have thought that line * only applies to the the model: the model is solved with these coefficients and we check that there is a steady state and it is stable. I thought that definition * has nothing to do with estimations. Am I wrong?

You are right and this is very puzzling. It may be something else, because the optimizer has a random restart in some circumstances and it isn’t surprising that two successive computations give different results, but it shouldn’t have anything to do which changing or not the first definition of alpah (line *).

To control the random restart, you can put the following line before estimation

in order to use the same seed for the uniform random generator before optimization. The exact number that you use doesn’t matter.

If, doing that, you still obtain different results when changing the initial definition of alpha (line *), please send the *.mod file and the data.

Many thanks, I will try. I only wanted to add that if I do NOT chanhe alpha in lines * AND in **, then two consequent estimations produce identical results, so ** is not randomizing by default. Since the model is linearised so the steady state is zero (and it is of course confirmed) then * should have absolutely no impact…