The help file for rstan::stan
has the following to say about the init
argument:
init="random" (default):
- Let Stan generate random initial values for all parameters. The seed of the random number generator used by Stan can be specified via the seed argument. If the seed for Stan is fixed, the same initial values are used. The default is to randomly generate initial values between -2 and 2 on the unconstrained support. The optional additional parameter init_r can be set to some value other than 2 to change the range of the randomly generated inits.
init="0", init=0:
- Initialize all parameters to zero on the unconstrained support.
inits via list:
- Set inital values by providing a list equal in length to the number of chains. The elements of this list should themselves be named lists, where each of these named lists has the name of a parameter and is used to specify the initial values for that parameter for the corresponding chain.
Unfortunately, this does not make it clear whether initial parameter values specified via a list are applied on the constrained support or the unconstrained support. For example, if I have the following parameter block,
parameters {
real<lower=3, upper=7> theta;
}
and I call stan
as follows,
rstan::stan(file, data = standata, init = list(list(theta = 5)), chains = 1)
is the initial value of theta
equal to 5 on the constrained support or the unconstrained support?
Constrained. In the documentation, it says that when init
is a list of lists that
The elements of this list should themselves be named lists, where each of these named lists has the name of a parameter and is used to specify the initial values for that parameter for the corresponding chain.
If it pertains to the parameters
block of a Stan program, then it is referring to the constrained space. The unconstrained space does not necessarily match up to the dimensions of the constrained space for things like covariance matrices, simplexes, etc.