pyhf.infer.test_statistics.qmu

pyhf.infer.test_statistics.qmu(mu, data, pdf, init_pars, par_bounds, fixed_params, return_fitted_pars=False)[source]

The test statistic, $$q_{\mu}$$, for establishing an upper limit on the strength parameter, $$\mu$$, as defined in Equation (14) in [1007.1727]

$$q_{\mu} = \left\{\begin{array}{ll} -2\ln\lambda\left(\mu\right), &\hat{\mu} \leq \mu,\\ 0, & \hat{\mu} > \mu \end{array}\right.$$

where $$\lambda\left(\mu\right)$$ is the profile likelihood ratio as defined in Equation (7)

$\lambda\left(\mu\right) = \frac{L\left(\mu, \hat{\hat{\boldsymbol{\theta}}}\right)}{L\left(\hat{\mu}, \hat{\boldsymbol{\theta}}\right)}\,.$

Example

>>> import pyhf
>>> pyhf.set_backend("numpy")
>>> model = pyhf.simplemodels.uncorrelated_background(
...     signal=[12.0, 11.0], bkg=[50.0, 52.0], bkg_uncertainty=[3.0, 7.0]
... )
>>> observations = [51, 48]
>>> data = pyhf.tensorlib.astensor(observations + model.config.auxdata)
>>> test_mu = 1.0
>>> init_pars = model.config.suggested_init()
>>> par_bounds = model.config.suggested_bounds()
>>> par_bounds[model.config.poi_index] = [-10.0, 10.0]
>>> fixed_params = model.config.suggested_fixed()
>>> pyhf.infer.test_statistics.qmu(
...     test_mu, data, model, init_pars, par_bounds, fixed_params
... )
array(3.9549891)
>>> pyhf.infer.test_statistics.qmu(
...     test_mu, data, model, init_pars, par_bounds, fixed_params, return_fitted_pars=True
... )
(array(3.9549891), (array([1.        , 0.97224597, 0.87553894]), array([-0.06679525,  1.00555369,  0.96930896])))

Parameters:
• mu (Number or Tensor) – The signal strength parameter

• data (Tensor) – The data to be considered

• pdf (Model) – The HistFactory statistical model used in the likelihood ratio calculation

• init_pars (list of float) – The starting values of the model parameters for minimization.

• par_bounds (list of list/tuple) – The extrema of values the model parameters are allowed to reach in the fit. The shape should be (n, 2) for n model parameters.

• fixed_params (tuple or list of bool) – The flag to set a parameter constant to its starting value during minimization.

• return_fitted_pars (bool) – Return the best-fit parameter tensors the fixed-POI and unconstrained fits have converged on (i.e. $$\mu, \hat{\hat{\theta}}$$ and $$\hat{\mu}, \hat{\theta}$$)

Returns:

• The calculated test statistic, $$q_{\mu}$$

• The parameter tensors corresponding to the constrained and unconstrained best fit, $$\mu, \hat{\hat{\theta}}$$ and $$\hat{\mu}, \hat{\theta}$$. Only returned if return_fitted_pars is True.

Return type:

Tuple of a Float and a Tuple of Tensors