spey.backends.default_pdf.UncorrelatedBackground#
- class spey.backends.default_pdf.UncorrelatedBackground(signal_yields: List[float], background_yields: List[float], data: List[int], absolute_uncertainties: List[float], signal_uncertainty_configuration: Dict[str, Any] | None = None)[source]#
Interface for uncorrelated background uncertainties. This simple backend is designed to handle single or multi-bin statistical models with uncorrelated uncertainties. Inputs has to be given as list of
NumPyarray where each input should include same number of regions. It assumes absolute uncertainties on the background sample e.g. for a background sample yield reported as \(3.1\pm0.5\) the background yield is3.1and the absolute uncertainty is0.5. It forms a combination of normal and poisson distributions to from the input data where the log-probability is computed as sum of all normal and poisson distributions.- Parameters:
signal_yields (
List[float]) – signal yieldsbackground_yields (
List[float]) – background yieldsdata (
List[int]) – observationsabsolute_uncertainties (
List[float]) – absolute uncertainties on the backgroundsignal_uncertainty_configuration (
Dict[Text, Any]], defaultNone) –Configuration input for signal uncertainties
absolute_uncertainties (
List[float]): Absolute uncertainties for the signal- absolute_uncertainty_envelops (
List[Tuple[float, float]]): upper and lower uncertainty envelops
- absolute_uncertainty_envelops (
correlation_matrix (
List[List[float]]): Correlation matrixthird_moments (
List[float]): diagonal elemetns of the third moment
Note
Each input should have the same dimensionality, i.e. if
datahas three regions,signal_yields,background_yieldsandabsolute_uncertaintiesinputs should have three regions as well.Example:
>>> import spey >>> stat_wrapper = spey.get_backend('default_pdf.uncorrelated_background') >>> data = [1, 3] >>> signal = [0.5, 2.0] >>> background = [2.0, 2.8] >>> background_unc = [1.1, 0.8] >>> stat_model = stat_wrapper( ... signal, background, data, background_unc, analysis="multi-bin", xsection=0.123 ... ) >>> print("1-CLs : %.3f" % tuple(stat_model.exclusion_confidence_level()))
- __init__(signal_yields: List[float], background_yields: List[float], data: List[int], absolute_uncertainties: List[float], signal_uncertainty_configuration: Dict[str, Any] | None = None)[source]#
Methods
__init__(signal_yields, background_yields, ...)asimov_negative_loglikelihood([poi_test, ...])Compute negative log-likelihood at fixed \(\mu\) for Asimov data.
combine(other, **kwargs)A routine to combine to statistical models.
config([allow_negative_signal, poi_upper_bound])Model configuration.
expected_data(pars[, include_auxiliary])Compute the expected value of the statistical model
get_hessian_logpdf_func([expected, data])Currently Hessian of \(\log\mathcal{L}(\mu, \theta)\) is only used to compute variance on \(\mu\).
get_logpdf_func([expected, data])Generate function to compute \(\log\mathcal{L}(\mu, \theta)\) where \(\mu\) is the parameter of interest and \(\theta\) are nuisance parameters.
get_objective_function([expected, data, do_grad])Objective function i.e. twice negative log-likelihood, \(-2\log\mathcal{L}(\mu, \theta)\).
get_sampler(pars)Retreives the function to sample from.
minimize_asimov_negative_loglikelihood([...])A backend specific method to minimize negative log-likelihood for Asimov data.
minimize_negative_loglikelihood([expected, ...])A backend specific method to minimize negative log-likelihood.
negative_loglikelihood([poi_test, expected])Backend specific method to compute negative log-likelihood for a parameter of interest \(\mu\).
Attributes
constraintsConstraints to be used during optimisation process
signal_uncertainty_configurationauthorAuthor of the backend
constraint_modelretreive constraint model distribution
is_aliveReturns True if at least one bin has non-zero signal yield.
main_modelretreive the main model distribution
nameName of the backend
spey_requiresSpey version required for the backend
versionVersion of the backend