MetropolisHastings Sampler¶

class
sampyl.
Metropolis
(logp, start, tune_interval=100, **kwargs)¶ MetropolisHastings sampler for drawing from a distribution defined by a logp function.
Has automatic scaling such that acceptance rate stays around 50%
Parameters:  logp – function log P(X) function for sampling distribution.
 start – Dictionary of starting state for the sampler. Should have one element for each argument of logp.
 scale – scalar or 1D arraylike. initial scaling factor for proposal distribution.
 tune_interval – int.
 scale – scalar or 1D arraylike. initial scaling factor for proposal distribution.
 tune_interval – int. number of samples between tunings of scale factor.
Example:
def logp(x, y): ... start = {'x': x_start, 'y': y_start} metro = sampyl.Metropolis(logp, start) chain = metro.sample(20000, burn=5000, thin=4)

sample
(num, burn=0, thin=1, n_chains=1, progress_bar=True)¶ Sample from \(P(X)\)
Parameters:  num – int. Number of samples to draw from \(P(X)\).
 burn – (optional) int. Number of samples to discard from the beginning of the chain.
 thin – (optional) float. Thin the samples by this factor.
 n_chains – (optional) int. Number of chains to return. Each chain is given its own process and the OS decides how to distribute the processes.
 progress_bar – (optional) boolean. Show the progress bar, default = True.
Returns: Record array with fields taken from arguments of logp function.

step
()¶ Perform a MetropolisHastings step.