nessai.proposal.rejection

Proposal method for initial sampling when priors are not analytical.

Module Contents

Classes

RejectionProposal

Object for rejection sampling from the priors.

class nessai.proposal.rejection.RejectionProposal(*args, **kwargs)

Bases: nessai.proposal.analytic.AnalyticProposal

Object for rejection sampling from the priors.

See parent for explanation of arguments and keyword arguments.

Will be used when nessai is called with analytic_priors=False. This is the default behaviour.

Relies on nessai.model.Model.new_point() to draw new points and nessai.model.Model.new_point_log_prob() when computing the probability of each new point.

draw_proposal(self, N=None)

Draw new point(s).

Parameters
Nint, optional

Number of samples to draw. If not specified poolsize will be used.

Returns
structured_array

Array of N new points

log_proposal(self, x)

Log proposal probability. Calls nessai.model.Model.new_point_log_prob()

Parameters
xstructured_array

Array of new points

Returns
numpy.ndarray

Array of log-probabilities.

compute_weights(self, x)

Get weights for the samples.

Computes the log weights for rejection sampling sampling such that that the maximum log probability is zero.

Parameters
xstructured_array

Array of points

Returns
log_wnumpy.ndarray

Array of log-weights rescaled such that the maximum value is zero.

populate(self, N=None)

Populate the pool by drawing from the proposal distribution and using rejection sampling.

Will also evaluate the likelihoods if the proposal contains a multiprocessing pool.

Parameters
Nint, optional

Number of samples to draw. Not all samples will be accepted to the number of samples saved will be less than N. If not specified poolsize will be used.