initpop - Population initialization routines


Latin Hypercube Sampling


Initialize N sets of random variables from a gaussian model.

Population initialization routines.

To start the analysis an initial population is required. This will be an array of size M x N, where M is the number of dimensions in the fitting problem and N is the number of Markov chains.

Two functions are provided:

1. lhs_init(N, bounds) returns a latin hypercube sampling, which tests every parameter at each of N levels.

2. cov_init(N, x, cov) returns a Gaussian sample along the ellipse defined by the covariance matrix, cov. Covariance defaults to diag(dx) if dx is provided as a parameter, or to I if it is not.

Additional options are random box: rand(M, N) or random scatter: randn(M, N).

bumps.dream.initpop.cov_init(N, x, cov=None, dx=None)[source]

Initialize N sets of random variables from a gaussian model.

The center is at x with an uncertainty ellipse specified by the 1-sigma independent uncertainty values dx or the full covariance matrix uncertainty cov.

For example, create an initial population for 20 sequences for a model with local minimum x with covariance matrix C:

pop = cov_init(cov=C, x=x, N=20)
bumps.dream.initpop.lhs_init(N, bounds)[source]

Latin Hypercube Sampling

Returns an array whose columns each have N samples from equally spaced bins between bounds=(xmin, xmax) for the column. DREAM bounds objects, with bounds.low and bounds.high can be used as well.

Note: Indefinite ranges are not supported.