uravu.relationship¶
The Relationship class is a foundational component of the uravu package, and acts as the main API for use of the package.
This class enables the storage of the relationship between the model and the data.
Objects of this class offer easy methods to perform maximum likelihood evaluation, Markiv chain Monte Carlo (MCMC) for posterior probabiltiy determination and Bayesian evidence estimation by nested sampling.
See the tutorials online for more guidence of how to use this package.
-
class
uravu.relationship.Relationship(function: Callable, abscissa: Union[List[float], numpy.ndarray], ordinate: Union[List[Union[uravu.distribution.Distribution, scipy.stats._distn_infrastructure.rv_frozen, float]], numpy.ndarray], bounds: Tuple[Tuple[float, float]] = None, ordinate_error: Union[List[float], numpy.ndarray] = None)[source]¶ Bases:
objectThe
Relationshipclass is the base of theuravupackage, enabling the use of Bayesian inference for the assessment of a model’s ability to describe some data.Attributes: :param function (
callable): The function that is modelled. :param abscissa (array_like): The abscissa data that the modelling should be performed on. :param ordinate (listoruravu.distribution.Distributionorarray_like): The ordinate data against with the model should be compared. This should be anlistoruravu.distribution.Distributionunless aordinate_erroris given. :param variables (listofuravu.distribution.Distribution): Variables in thefunction.bounds (tuple): The minimum and maximum values for each parameters. ln_evidence (uncertainties.core.Variable): The natural-log of the Bayesian evidence for the model to the given data. mcmc_results (dict): The results fromemcee.EnsembleSampler.run_mcmc()sampling. nested_sampling_results (dict): The results fromdynesty.NestedSampler.run_nested()nested sampling.Parameters: - function – The functional relationship to be modelled.
- abscissa – The abscissa data. If multi-dimensional, the array is expected to have the shape
(N, d), whereNis the number of data points anddis the dimensionality. - ordinate – The ordinate data. This should have a shape
(N,). - bounds – The minimum and maximum values for each parameters. Defaults to
None. - ordinate_error – The uncertainty in the ordinate, this should be the standard error in the measurement. Only used if
ordinateis not alistoruravu.distribution.Distribution. Defaults toNone.
-
bayesian_information_criteria()[source]¶ Calculate the Bayesian information criteria for the relationship.
Returns: Bayesian information criteria. Return type: float
-
flatchain¶ Sampling flatchain.
Type: return
-
get_sample(i)[source]¶ Return the variable values for a given sample.
Parameters: i ( int) – The sample index.Returns: Variable values at given index. Return type: listoffloat
-
len_parameters¶ Determine the number of variables in the assessment function.
Returns: py:attr`int`: Number of variables.
-
max_likelihood(method, x0=None, **kwargs)[source]¶ Determine values for the variables which maximise the likelihood for the
Relationship. For keyword arguments see thescipy.optimize.minimize()documentation.Parameters: x0 ( array_like) – Initial guess values for the parameters.
-
mcmc(prior_function=None, walkers=50, n_samples=500, n_burn=500, progress=True)[source]¶ Perform MCMC to get the posterior probability distributions for the variables of the relationship. Note, running this method will populate the
variablesattribute withDistributionobjects. Once run, a result dictionary containing thedistributions,chain, andsamplesfromemceeis piped into the class variablemcmc_results.Parameters: - prior_function (
callable, optional) – The function to populated some prior distributions. Default is the broad uniform priors inprior(). - walkers (
int, optional) – Number of MCMC walkers. Default is50. - n_samples (
int, optional) – Number of sample points. Default is :py:attr:500`. - n_burn (
int, optional) – Number of burn in samples. Default is500. - progress (
bool, optional) – Showtqdmprogress for sampling. Default isTrue.
- prior_function (
-
mcmc_done¶ Has MCMC been performed? Determined based on the type of the variables.
Returns: Has MCMC been performed? Return type: bool
-
nested_sampling(prior_function=None, progress=True, dynamic=False, **kwargs)[source]¶ Perform nested sampling, or dynamic nested sampling, to determine the Bayesian natural-log evidence. For keyword arguments see the
dynesty.NestedSampler.run_nested()documentation. Once run, the result dictionary produced bydynesty.NestedSampler.run_nested()is piped into the class variablenested_sampling_results.Parameters: - prior_function (
callable, optional) – The function to populate some prior distributions. Default is the broad uniform priors inprior(). - progress (
bool, optional) – Showtqdmprogress for sampling. Default isTrue.
- prior_function (
-
nested_sampling_done¶ Has nested sampling been performed? Determined based on if the ln_evidence has a value.
Returns: Has nested sampling been performed? Return type: bool
-
prior()[source]¶ Standard priors for the relationship. These priors are broad, uninformative, for normal variables running the range
[x - x * 10, x + x * 10)(wherexis the variable value).Returns: scipy.statsfunctions describing the priors.Return type: listofscipy.stats.rv_continuous
-
variable_medians¶ The median values for each of the variables.
Returns: Variable medians. Return type: array_like
-
variable_modes¶ The mode values for each of the variables.
Returns: Variable modes. Return type: array_like
-
x¶ Abscissa values.
Returns: Abscissa values. Return type: array_like
-
y¶ Ordinate values.
Returns: Ordinate values. Return type: array_like