arviz_stats.SamplingWrapper

arviz_stats.SamplingWrapper#

class arviz_stats.SamplingWrapper(model, idata_orig=None, log_lik_fun=None, is_ufunc=True, posterior_vars=None, sample_kwargs=None, idata_kwargs=None, log_lik_kwargs=None, apply_ufunc_kwargs=None)[source]#

Class wrapping sampling routines for its usage via ArviZ.

Using a common class, all inference backends can be supported in ArviZ. Hence, statistical functions requiring refitting like Leave Future Out or Simulation Based Calibration can be performed from ArviZ.

Parameters:
model

The model object used for sampling.

idata_origoptional

Original inference data object (InferenceData or datatree).

log_lik_funcallable, optional

For simple cases where the pointwise log likelihood is a Python function, this function will be used to calculate the log likelihood. Otherwise, point_log_likelihood method must be implemented. It’s callback must be log_lik_fun(*args, **log_lik_kwargs) and will be called using wrap_xarray_ufunc or xarray.apply_ufunc depending on the value of is_ufunc.

For more details on args or log_lik_kwargs see the notes and parameters posterior_vars and log_lik_kwargs.

is_ufuncbool, default True

If True, call log_lik_fun using xarray.apply_ufunc otherwise use wrap_xarray_ufunc.

posterior_varslist of str, optional

List of variable names to unpack as args for log_lik_fun. Each string in the list will be used to retrieve a DataArray from the Dataset in the posterior group and passed to log_lik_fun.

sample_kwargsdict, optional

Sampling kwargs are stored as class attributes for their usage in the sample method.

idata_kwargsdict, optional

kwargs are stored as class attributes to be used in the get_inference_data method.

log_lik_kwargsdict, optional

Keyword arguments passed to log_lik_fun.

apply_ufunc_kwargsdict, optional

Passed to xarray.apply_ufunc or wrap_xarray_ufunc.

__init__(model, idata_orig=None, log_lik_fun=None, is_ufunc=True, posterior_vars=None, sample_kwargs=None, idata_kwargs=None, log_lik_kwargs=None, apply_ufunc_kwargs=None)[source]#

Methods

__init__(model[, idata_orig, log_lik_fun, ...])

check_implemented_methods(methods)

Check that all methods listed are implemented.

get_inference_data(fitted_model)

Convert the fitted_model to an InferenceData object.

log_likelihood__i(excluded_obs, idata__i)

Get the log likelilhood samples \(\log p_{post(-i)}(y_i)\).

sample(modified_observed_data)

Sample self.model on the modified_observed_data subset.

sel_observations(idx)

Select a subset of the observations in idata_orig.