Does the User Manual explain initial values well enough?
Specifically, does it explain that parameters lacking entries in inits will be drawn from their prior?
Ok, here's what I've done. I welcome input, @perrydv @danielturek , particularly item #3 below.
- I added more info to the
converting_to_nimbleexample. - In the censoring and constraints sections, I specifically call out the need for initialization.
- I added a new short section 7.4 on initialization for MCMC. I've put some of our debugging tips in there, but I think both of you have made useful comments in response to users that may provide other tips, and if you are able to dig those up and point me to them, I could incorporate additional thoughts.
items 2 and 3 are in branch 'update_init_manual'. I haven't rebuilt the html -- you'll have to look at the Rmd source.
An alternative would be to have a new example that talks about this in detail. Or we could copy/move some of this to help(modelInitialize). I think I like having the bulk of it in the manual with pointers to that from help(modelInitialize) and the converting_to_nimble but I could be convinced o.w.
We might also consider whether to say anything about initialization for other algorithms. We might just refer to the (new) MCMC section in the SMC chapter perhaps.
@paciorek The new information seems helpful to have. Only two comments:
- As you mentioned, I feel some of this new content might be better moved to
help(modelInitialize), with a reference to that in the new section on Initializing MCMC. - Maybe removing the sentence "NIMBLE can be more sensitive to missing or bad starting values than some MCMC packages." ?
I'm going to leave the material in the manual as it's extensive enough and involves sufficient formatting that putting in the roxygen feels awkward.
I'll leave this issue open for further discussions of how to better help users with initialization.
Closing this as we haven't had any further discussion of additional doc'n.