bayesvalidrox.bayes_inference.rejection_sampler.RejectionSampler

class bayesvalidrox.bayes_inference.rejection_sampler.RejectionSampler(engine=None, discrepancy=None, observation=None, out_names=None, selected_indices=None, use_emulator=True, out_dir='', prior_samples=None)

Bases: PostSampler

A class for generating posterior samples via rejection sampling.

Attributes

engineobject, optional

Trained bvr.Engine object. The default is None.

discrepancyobject, optional

Object of class bvr.Discrepancy. The default is None.

observationdict, optional

Measurement/observation to use as reference. The default is None.

out_nameslist, optional

The list of requested output keys to be used for the analysis. The default is None. If None, all the defined outputs from the engine are used.

selected_indicesdict, optional

A dictionary with the selected indices of each model output. The default is None. If None, all measurement points are used in the analysis.

use_emulatorbool

Set to True if the emulator/metamodel should be used in the analysis. If False, the model is run.

out_dirstring, optional

The output directory. The default is ‘’.

prior_samplesnp.nddarray, optional

Prior samples to be used in the rejection sampling.

__init__(engine=None, discrepancy=None, observation=None, out_names=None, selected_indices=None, use_emulator=True, out_dir='', prior_samples=None)

Methods

__init__([engine, discrepancy, observation, ...])

calculate_loglik_logbme(model_evals[, ...])

Calculate log-likelihoods and logbme on the perturbed data.

calculate_valid_metrics([exp_design, parallel])

Calculate metrics including logBME, infEntropy, KLD.

normpdf(outputs[, std_outputs, rmse])

Calculates the likelihood of simulation outputs compared with observation data.

run_sampler([outputs, std_outputs, ...])

Performs rejection sampling to update the prior distribution on the input parameters.

calculate_loglik_logbme(model_evals, surr_error=None, std_outputs=None) tuple[ndarray, ndarray]

Calculate log-likelihoods and logbme on the perturbed data. This function assumes everything as Gaussian.

Parameters

model_evalsdict

Model or metamodel outputs as a dictionary.

surr_errordict, optional

A dictionary containing the root mean squared error as array of shape (n_samples, n_measurement) for each model output. The default is None.

std_outputsdict of 2d np arrays, optional

Standard deviation (uncertainty) associated to the output. The default is None.

Returns

log_likelihoodnp.ndarray

The calculated loglikelihoods. Size: (n_samples, n_bootstrap_itr).

log_bmenp.ndarray

The log bme. This also accounts for metamodel error, if self.use_emulator is True. Size: (1,n_bootstrap_itr).

calculate_valid_metrics(exp_design=None, parallel=False) tuple[ndarray, ndarray]

Calculate metrics including logBME, infEntropy, KLD. Code is taken from previous Engine and SeqDesign.

Parameters

exp_designobj, optional

Object of class bvr.ExpDesigns. The default is None.

parallelbool, optional

Use multiprocessing in calculation if set to True. The default is False.

Returns

kldnp.ndarray

KLD

inf_entropynp.ndarray

Information entropy

normpdf(outputs, std_outputs=None, rmse=None) ndarray

Calculates the likelihood of simulation outputs compared with observation data.

Parameters

outputsdict

The metamodel outputs as an array of shape (n_samples, n_measurement) for each model output.

std_outputsdict of 2d np arrays, optional

Standard deviation (uncertainty) associated to the output. The default is None.

rmsedict, optional

A dictionary containing the root mean squared error as array of shape (n_samples, n_measurement) for each model output. The default is None.

Returns

logLiknp.ndarray

Log-likelihoods. Shape: (n_samples)

run_sampler(outputs=None, std_outputs=None, surr_error=None, consider_samplesize=False, recalculate_loglik=False) DataFrame

Performs rejection sampling to update the prior distribution on the input parameters. If the likelihood is not given to the object, it will be calculated using the additional inputs in this function.

Parameters

outputsdict, optional

The metamodel outputs as an array of shape (n_samples, n_measurement) for each model output. The default is None.

std_outputsdict of 2d np arrays, optional

Standard deviation (uncertainty) associated to the output. The default is None.

surr_errordict, optional

A dictionary containing the root mean squared error as array of shape (n_samples, n_measurement) for each model output. The default is None.

consider_samplesizebool, optional

If set to True will stop the sampler if the effective sample size is to small and return None. The default is False

recalculate_loglikbool, optional

If set to True will recalculate the log_likelihood, even if it is already given. The default is False.

Raises

AttributeError

Returns

posteriorpd.DataFrame

Posterior samples of the input parameters.