AsymptoticTestStatDistribution#
- class pyhf.infer.calculators.AsymptoticTestStatDistribution(shift, cutoff=-inf)[source]#
Bases:
object
The distribution the test statistic in the asymptotic case.
Note: These distributions are in \(-\hat{\mu}/\sigma\) space. In the ROOT implementation the same sigma is assumed for both hypotheses and \(p\)-values etc are computed in that space. This assumption is necessarily valid, but we keep this for compatibility reasons.
In the \(-\hat{\mu}/\sigma\) space, the test statistic (i.e. \(\hat{\mu}/\sigma\)) is normally distributed with unit variance and its mean at the \(-\mu'\), where \(\mu'\) is the true poi value of the hypothesis.
- __init__(shift, cutoff=-inf)[source]#
Asymptotic test statistic distribution.
- Parameters:
shift (
float
) – The displacement of the test statistic distribution.- Returns:
The asymptotic distribution of test statistic.
- Return type:
Methods
- cdf(value)[source]#
Compute the value of the cumulative distribution function for a given value of the test statistic.
Example
>>> import pyhf >>> pyhf.set_backend("numpy") >>> bkg_dist = pyhf.infer.calculators.AsymptoticTestStatDistribution(0.0) >>> bkg_dist.cdf(0.0) 0.5
- Parameters:
value (
float
) – The test statistic value.- Returns:
The integrated probability to observe a test statistic less than or equal to the observed
value
.- Return type:
Float
- expected_value(nsigma)[source]#
Return the expected value of the test statistic.
Example
>>> import pyhf >>> pyhf.set_backend("numpy") >>> bkg_dist = pyhf.infer.calculators.AsymptoticTestStatDistribution(0.0) >>> n_sigma = pyhf.tensorlib.astensor([-2, -1, 0, 1, 2]) >>> bkg_dist.expected_value(n_sigma) array([-2., -1., 0., 1., 2.])
- Parameters:
nsigma (
int
ortensor
) – The number of standard deviations.- Returns:
The expected value of the test statistic.
- Return type:
Float
- pvalue(value)[source]#
The \(p\)-value for a given value of the test statistic corresponding to signal strength \(\mu\) and Asimov strength \(\mu'\) as defined in Equations (59) and (57) of [1007.1727]
\[p_{\mu} = 1-F\left(q_{\mu}\middle|\mu'\right) = 1- \Phi\left(\sqrt{q_{\mu}} - \frac{\left(\mu-\mu'\right)}{\sigma}\right)\]with Equation (29)
\[\frac{(\mu-\mu')}{\sigma} = \sqrt{\Lambda}= \sqrt{q_{\mu,A}}\]given the observed test statistics \(q_{\mu}\) and \(q_{\mu,A}\).
Example
>>> import pyhf >>> pyhf.set_backend("numpy") >>> bkg_dist = pyhf.infer.calculators.AsymptoticTestStatDistribution(0.0) >>> bkg_dist.pvalue(0.0) array(0.5)
- Parameters:
value (
float
) – The test statistic value.- Returns:
The integrated probability to observe a value at least as large as the observed one.
- Return type:
Tensor