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.