From a4ff1fafbe1db860a0addd8858b54c947a384d11 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Wed, 2 Oct 2024 07:49:41 -0400 Subject: [PATCH 01/27] pvalues are fixed for chi2 calculator --- src/spey/base/hypotest_base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 6e19bee..5bf6a64 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -725,8 +725,7 @@ def maximize_likelihood( ) pvalues = [ - 1.0 - - chi2.cdf( + chi2.cdf( chi_square, 1 if isinstance(poi_test, (float, int)) else len(poi_test), ) From 9d465c3b658e77ef4021601ddcf1303a912c6c53 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Wed, 2 Oct 2024 07:53:55 -0400 Subject: [PATCH 02/27] specify python versions --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fdfec03..9af9ea1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12.4"] os: [ubuntu-latest, macos-latest] steps: From 4a0931aac378c7d096f93a46bcfcb75d7e732f2d Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Wed, 2 Oct 2024 07:54:46 -0400 Subject: [PATCH 03/27] update changelog --- docs/releases/changelog-v0.1.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/releases/changelog-v0.1.md b/docs/releases/changelog-v0.1.md index 7770551..da57bb8 100644 --- a/docs/releases/changelog-v0.1.md +++ b/docs/releases/changelog-v0.1.md @@ -79,6 +79,9 @@ Specific upgrades for the latest release can be found [here](https://github.com/ * Compatibility issues have been fixed in Python 3.12 ([#39](https://github.com/SpeysideHEP/spey/pull/39)) +* p-value computation in $\chi^2$ calculator has been fixed. + ([#42](https://github.com/SpeysideHEP/spey/pull/42)) + ## Contributors This release contains contributions from (in alphabetical order): From b13b2be9c36740dc0145c947d3233f5ff9d5f9d7 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Wed, 2 Oct 2024 10:03:52 -0400 Subject: [PATCH 04/27] simplify codeflow --- src/spey/base/hypotest_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 5bf6a64..8325c9e 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -420,7 +420,7 @@ def _prepare_for_hypotest( (:math:`\hat\mu`, :math:`\arg\min(-\log\mathcal{L})`), :math:`\log\mathcal{L(\mu, \theta_\mu)}`, (:math:`\hat\mu_A`, :math:`\arg\min(-\log\mathcal{L}_A)`), :math:`\log\mathcal{L_A(\mu, \theta_\mu)}` """ - allow_negative_signal = True if test_statistics in ["q" or "qmu"] else False + allow_negative_signal = test_statistics in ["q" or "qmu"] muhat, nll = self.maximize_likelihood( expected=expected, From 52e262cd2f02d1e7f964883426a542b3142a2a5c Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 11:35:47 -0400 Subject: [PATCH 05/27] add security --- src/spey/hypothesis_testing/test_statistics.py | 16 ++++++++++++++-- src/spey/system/exceptions.py | 12 ++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/spey/hypothesis_testing/test_statistics.py b/src/spey/hypothesis_testing/test_statistics.py index a728a24..32baca3 100644 --- a/src/spey/hypothesis_testing/test_statistics.py +++ b/src/spey/hypothesis_testing/test_statistics.py @@ -1,14 +1,19 @@ """Functions for computation of test statistic""" +import logging import warnings from typing import Callable, Text, Tuple import numpy as np -from spey.system.exceptions import UnknownTestStatistics +from spey.system.exceptions import UnknownTestStatistics, AsimovTestStatZero __all__ = ["qmu", "qmu_tilde", "q0", "get_test_statistic", "compute_teststatistics"] +log = logging.getLogger("Spey") + +# pylint: disable=W1203 + def qmu_tilde( mu: float, muhat: float, max_logpdf: float, logpdf: Callable[[float], float] @@ -194,6 +199,9 @@ def compute_teststatistics( * ``'q0'``: performs the calculation using the discovery test statistic, see eq. (47) of :xref:`1007.1727` :math:`q_{0}` (:func:`~spey.hypothesis_testing.test_statistics.q0`). + Raises: + :obj:`~spey.system.exceptions.AsimovTestStatZero`: Raised if Asimov test statistic is zero. + Returns: ``Tuple[float, float, float]``: :math:`\sqrt{q_\mu}`, :math:`\sqrt{q_{\mu,A}}` and :math:`\Delta(\sqrt{q_\mu}, \sqrt{q_{\mu,A}})` @@ -217,5 +225,9 @@ def compute_teststatistics( else: with warnings.catch_warnings(record=True): delta_teststat = np.true_divide(qmu_ - qmuA, 2.0 * sqrt_qmuA) - + if sqrt_qmuA == 0: + raise AsimovTestStatZero() + log.debug( + f"sqrt_qmu = {sqrt_qmu}, sqrt_qmuA = {sqrt_qmuA}, delta_teststat = {delta_teststat}" + ) return sqrt_qmu, sqrt_qmuA, delta_teststat diff --git a/src/spey/system/exceptions.py b/src/spey/system/exceptions.py index e0f85e4..de3d518 100644 --- a/src/spey/system/exceptions.py +++ b/src/spey/system/exceptions.py @@ -80,3 +80,15 @@ class CombinerNotAvailable(Exception): class DistributionError(Exception): """Unknown Distribution""" + + +class AsimovTestStatZero(Exception): + """Asimov Test Statistic is zero""" + + def __init__( + self, + message="Asimov test statistic is zero. " + "Note: Asimov test statistic of zero indicates a " + "lack of evidence for a signal or deviation from a null hypothesis.", + ): + super().__init__(message) From 0d3d17d68aee9cb06bac1359d37e0bdd0c1ab58b Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 11:36:29 -0400 Subject: [PATCH 06/27] update chi2 calculator --- src/spey/base/hypotest_base.py | 77 ++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 8325c9e..376f7aa 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -4,13 +4,13 @@ """ import logging +import warnings from abc import ABC, abstractmethod from functools import partial from typing import Any, Callable, Dict, List, Literal, Optional, Text, Tuple, Union import numpy as np import tqdm -from scipy.stats import chi2 from spey.hypothesis_testing.asymptotic_calculator import ( compute_asymptotic_confidence_level, @@ -21,7 +21,11 @@ ) from spey.hypothesis_testing.toy_calculator import compute_toy_confidence_level from spey.hypothesis_testing.upper_limits import find_poi_upper_limit -from spey.system.exceptions import CalculatorNotAvailable, MethodNotAvailable +from spey.system.exceptions import ( + AsimovTestStatZero, + CalculatorNotAvailable, + MethodNotAvailable, +) from spey.utils import ExpectationType __all__ = ["HypothesisTestingBase"] @@ -548,7 +552,6 @@ def exclusion_confidence_level( expected: ExpectationType = ExpectationType.observed, allow_negative_signal: bool = False, calculator: Literal["asymptotic", "toy", "chi_square"] = "asymptotic", - poi_test_denominator: Optional[float] = None, **kwargs, ) -> List[float]: r""" @@ -603,15 +606,12 @@ def exclusion_confidence_level( * ``"chi_square"``: Computes p-values via chi-square; :math:`\chi^2=-2\log\frac{\mathcal{L}(1,\theta_1)}{\mathcal{L}(0,\theta_0)}`. - poi_test_denominator (``float``, default ``None``): Set the POI value for the null hypothesis. - if ``None``, signal hypothesis will be compared against maximum likelihood otherwise - with respect to the hypothesis determined with the POI value provided with this input. - Only used when ``calculator="chi-square"``. kwargs: keyword arguments for the optimiser. * **init_pars** (``List[float]``, default ``None``): initial parameters for the optimiser * **par_bounds** (``List[Tuple[float, float]]``, default ``None``): parameter bounds for the optimiser. + * **dof** (``int``, defaults to number of POI): Degrees of freedom for ``chi_square`` calculator. Raises: :obj:`~spey.system.exceptions.CalculatorNotAvailable`: If calculator is not available. @@ -637,18 +637,24 @@ def exclusion_confidence_level( **kwargs, ) - _, sqrt_qmuA, delta_teststat = compute_teststatistics( - poi_test, - maximum_likelihood, - logpdf, - maximum_asimov_likelihood, - logpdf_asimov, - test_stat, - ) + try: + _, sqrt_qmuA, delta_teststat = compute_teststatistics( + poi_test, + maximum_likelihood, + logpdf, + maximum_asimov_likelihood, + logpdf_asimov, + test_stat, + ) + log.debug(f"sqrt_qmuA = {sqrt_qmuA}, test statistic = {delta_teststat}") - pvalues, expected_pvalues = compute_asymptotic_confidence_level( - sqrt_qmuA, delta_teststat, test_stat - ) + pvalues, expected_pvalues = compute_asymptotic_confidence_level( + sqrt_qmuA, delta_teststat, test_stat + ) + log.debug(f"pval = {pvalues}, expected pval = {expected_pvalues}") + except AsimovTestStatZero as err: + log.error(str(err)) + pvalues, expected_pvalues = [1.0], [1.0] * 5 elif calculator == "toy": signal_samples = self.fixed_poi_sampler( @@ -716,28 +722,29 @@ def maximize_likelihood( ) elif calculator == "chi_square": - chi_square = self.chi2( - poi_test=1.0, - poi_test_denominator=poi_test_denominator, + ts_s_b = self.chi2( + poi_test=poi_test, expected=expected, allow_negative_signal=allow_negative_signal, **kwargs, ) + ts_b_only = self.chi2( + poi_test=0.0, + expected=expected, + allow_negative_signal=allow_negative_signal, + **kwargs, + ) + sqrt_ts_s_b = np.sqrt(np.clip(ts_s_b, 0.0, None)) + sqrt_ts_b_only = np.sqrt(np.clip(ts_b_only, 0.0, None)) + if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: + delta_ts = sqrt_ts_b_only - sqrt_ts_s_b + else: + with warnings.catch_warnings(record=True): + delta_ts = np.true_divide(ts_b_only - ts_s_b, 2.0 * sqrt_ts_s_b) - pvalues = [ - chi2.cdf( - chi_square, - 1 if isinstance(poi_test, (float, int)) else len(poi_test), - ) - ] - expected_pvalues = pvalues - - if expected in [ExpectationType.aposteriori, ExpectationType.apriori]: - fit = "post" if expected == ExpectationType.aposteriori else "pre" - log.warning( - "chi-square calculator does not support expected p-values." - f" Only one p-value for {fit}fit will be returned." - ) + pvalues, expected_pvalues = compute_asymptotic_confidence_level( + sqrt_ts_s_b, delta_ts, test_stat=test_stat + ) if expected == "all": return list(map(lambda x: 1.0 - x, pvalues)), list( From adbbb09899845237c70aa559f80c85679e7382dd Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 13:46:28 -0400 Subject: [PATCH 07/27] bugfix --- src/spey/interface/statistical_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/spey/interface/statistical_model.py b/src/spey/interface/statistical_model.py index ea414d0..a3305be 100644 --- a/src/spey/interface/statistical_model.py +++ b/src/spey/interface/statistical_model.py @@ -633,7 +633,9 @@ def fixed_poi_sampler( fit_opts["model_configuration"].npar == 1 and fit_opts["model_configuration"].poi_index is not None ): - fit_param = np.array(list(poi_test)) + fit_param = np.array( + poi_test if isinstance(poi_test, (list, np.ndarray)) else [poi_test] + ) else: _, fit_param = fit( **fit_opts, From 5e8c7be8bf0d404010276cfd0b723679567a1009 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 15:05:35 -0400 Subject: [PATCH 08/27] bug fixes * toy calculator have been fixed * minor fixes in chi2 --- src/spey/base/hypotest_base.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 376f7aa..0214076 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -611,7 +611,6 @@ def exclusion_confidence_level( * **init_pars** (``List[float]``, default ``None``): initial parameters for the optimiser * **par_bounds** (``List[Tuple[float, float]]``, default ``None``): parameter bounds for the optimiser. - * **dof** (``int``, defaults to number of POI): Degrees of freedom for ``chi_square`` calculator. Raises: :obj:`~spey.system.exceptions.CalculatorNotAvailable`: If calculator is not available. @@ -624,6 +623,7 @@ def exclusion_confidence_level( raise CalculatorNotAvailable(f"{calculator} calculator is not available.") test_stat = "q" if allow_negative_signal else "qtilde" + verbose = kwargs.pop("verbose", True) if calculator == "asymptotic": ( @@ -666,6 +666,19 @@ def exclusion_confidence_level( ) test_stat_func = get_test_statistic(test_stat) + ts = test_stat_func( + poi_test, + *self.maximize_likelihood( + expected=expected, + allow_negative_signal=allow_negative_signal, + **kwargs, + ), + lambda mu: -self.likelihood( + poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], + expected=expected, + **kwargs, + ), + ) def logpdf( mu: Union[float, np.ndarray], data: Union[float, np.ndarray] @@ -694,6 +707,7 @@ def maximize_likelihood( total=self.ntoys, unit="toy sample", bar_format="{l_bar}{bar:20}{r_bar}{bar:-20b}", + disable=not verbose, ) as pbar: for sig_smp, bkg_smp in zip(signal_samples, bkg_samples): signal_like_test_stat.append( @@ -717,31 +731,31 @@ def maximize_likelihood( pvalues, expected_pvalues = compute_toy_confidence_level( signal_like_test_stat, bkg_like_test_stat, - test_statistic=poi_test, + test_statistic=ts, test_stat=test_stat, ) elif calculator == "chi_square": - ts_s_b = self.chi2( + signal_like = self.chi2( poi_test=poi_test, expected=expected, allow_negative_signal=allow_negative_signal, **kwargs, ) - ts_b_only = self.chi2( + bkg_like = self.chi2( poi_test=0.0, expected=expected, allow_negative_signal=allow_negative_signal, **kwargs, ) - sqrt_ts_s_b = np.sqrt(np.clip(ts_s_b, 0.0, None)) - sqrt_ts_b_only = np.sqrt(np.clip(ts_b_only, 0.0, None)) + + sqrt_ts_s_b = np.sqrt(np.clip(signal_like, 0.0, None)) + sqrt_ts_b_only = np.sqrt(np.clip(bkg_like, 0.0, None)) if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: delta_ts = sqrt_ts_b_only - sqrt_ts_s_b else: with warnings.catch_warnings(record=True): - delta_ts = np.true_divide(ts_b_only - ts_s_b, 2.0 * sqrt_ts_s_b) - + delta_ts = np.true_divide(bkg_like - signal_like, 2.0 * sqrt_ts_s_b) pvalues, expected_pvalues = compute_asymptotic_confidence_level( sqrt_ts_s_b, delta_ts, test_stat=test_stat ) From 0d12b785e1d9c59ac8fef8d30a01bea4a4154fa7 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 16:26:54 -0400 Subject: [PATCH 09/27] update docs --- docs/exclusion.md | 65 ++++++++++++++++++++++++++++++++++++++ docs/exclusion.rst | 57 --------------------------------- docs/figs/comparisson.png | Bin 0 -> 60390 bytes 3 files changed, 65 insertions(+), 57 deletions(-) create mode 100644 docs/exclusion.md delete mode 100644 docs/exclusion.rst create mode 100644 docs/figs/comparisson.png diff --git a/docs/exclusion.md b/docs/exclusion.md new file mode 100644 index 0000000..396b92d --- /dev/null +++ b/docs/exclusion.md @@ -0,0 +1,65 @@ +--- +myst: + html_meta: + "property=og:title": "Exclusion limits" + "property=og:description": "How does the exclusion limits work in spey" + "property=og:image": "https://spey.readthedocs.io/en/main/_static/spey-logo.png" + "property=og:url": "https://spey.readthedocs.io/en/main/exclusion.html" +jupytext: + formats: ipynb,md:myst + text_representation: + extension: .md + format_name: myst + format_version: 0.12 + jupytext_version: 1.8.2 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# Exclusion limits + +Any Spey statistical model can compute the exclusion confidence level +using three options. Depending on the available functions in likelihood construction +(see {ref}`this section ` for details), one or more of these options will be +available for the user. One can use +{func}`~spey.StatisticalModel.available_calculators` function to see which calculators are available. + +{func}`~spey.StatisticalModel.exclusion_confidence_level` function uses ``calculator`` keyword +to choose in between ``"asymptotic"``, ``"toy"`` and ``"chi_square"`` calculators. + +* ``"asymptotic"``: uses asymptotic formulae to compute p-values, see ref. {cite}`Cowan:2010js` + for details. This method is only available if the likelihood construction has access to + the expected values of the distribution, which allows one to construct Asimov data. Hence the test statistic is constructed with the Asimov likelihood. +* ``"toy"``: This method uses the sampling functionality of the likelihood, hence expects the + construction to have sampling abilities. It computes p-values by sampling from signal+background + and background-only distributions. +* ``"chi_square"``: This method compares $\chi^2(\mu)$ distributions, + + $$ + + \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu},\hat{\theta}_{\mu})}, + $$ + + for signal-like $\chi^2(\mu=1)$ and background like $\chi^2(\mu=0)$ to compute the p-values for the model. + +The `expected` keyword allows users to select between computing observed or expected exclusion limits. It also supports the calculation of prefit expected exclusion limits, which can be enabled by setting `expected=spey.ExpectationType.apriori`. This option ignores experimental data and computes the expected exclusion limit based solely on the simulated Standard Model (SM) background yields. On the other hand, {attr}`~spey.ExpectationType.observed` (for observed limits) and {attr}`~spey.ExpectationType.aposteriori` (for post-fit expected limits) compute the exclusion confidence limits after fitting the model. + +In both expected cases, the exclusion limits are returned with $\pm1\sigma$ and $\pm2\sigma$ variations around the background model, resulting in five values: $[-2\sigma, -1\sigma, 0, 1\sigma, 2\sigma]$. However, the observed exclusion limit returns a single value. The ``"chi_square"`` calculator is an exception—it only provides one value for both observed and expected limits. + +The `allow_negative_signal` keyword controls which test statistic is used and restricts the values that $\mu$ (the signal strength) can take when computing the maximum likelihood. When `allow_negative_signal=True`, the $q_\mu$ test statistic is applied; otherwise, the $\tilde{q}_\mu$ statistic is used (for further details, see {cite}`Cowan:2010js, Araz:2023bwx`). + +For complex statistical models, optimizing the likelihood can be challenging and depends on the choice of optimizer. Spey uses SciPy for optimization and fitting tasks. Any additional keyword arguments not explicitly covered in the `exclusion_confidence_level` function description are passed directly to the optimizer, allowing users to customize its behavior through the interface. + +Below we compare the exclusion limits computed with each approach. This comparisson uses normal distribution for the likelihood (`default_pdf.normal`) background yields are set to $n_b$, uncertainties are shown with $\sigma$ and observations are given with $n$. + +```{figure} ./figs/comparisson.png +--- +width: 100% +figclass: caption +alt: exclusion limit calculator comparisson +name: fig2 +--- +exclusion limit calculator comparisson +``` diff --git a/docs/exclusion.rst b/docs/exclusion.rst deleted file mode 100644 index db2d18f..0000000 --- a/docs/exclusion.rst +++ /dev/null @@ -1,57 +0,0 @@ -Exclusion limits -================ - -.. meta:: - :property=og:title: Exclusion limits - :property=og:image: https://spey.readthedocs.io/en/main/_static/spey-logo.png - :property=og:url: https://spey.readthedocs.io/en/main/exclusion.html - -Any Spey statistical model can compute the exclusion confidence level -using three options. Depending on the available functions in likelihood construction -(see :ref:`this section ` for details), one or more of these options will be -available for the user. One can use -:func:`~spey.StatisticalModel.available_calculators` function to see which calculators are available. - -:func:`~spey.StatisticalModel.exclusion_confidence_level` function uses ``calculator`` keyword -to choose in between ``"asymptotic"``, ``"toy"`` and ``"chi_square"`` calculators. - -* ``"asymptotic"``: uses asymptotic formulae to compute p-values, see ref. :cite:`Cowan:2010js` - for details. This method is only available if the likelihood construction has access to - the expected values of the distribution, which allows one to construct Asimov data. -* ``"toy"``: This method uses the sampling functionality of the likelihood, hence expects the - construction to have sampling abilities. It computes p-values by sampling from signal+background - and background-only distributions. -* ``"chi_square"``: This method simply computes - - .. math:: - - \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\mu_h,\theta_{\mu_h})} - - - and uses :math:`\chi^2`-p-value look-up tables to determine the exclusion limits. Here, :math:`\mu` - is determined by ``poi_test`` keyword, which is by default ``1.0`` and :math:`\mu_h` is the relative - POI value to determine the null hypothesis, which is set by the ``poi_test_denominator`` keyword, - default ``None``. If ``poi_test_denominator=None`` the null hypothesis will be determined by the - maximum likelihood, if anything else, it will be computed according to that POI value. - -The ``expected`` keyword lets users choose between observed and expected exclusion limit -computations. Additionally, it allows one to choose prefit expected exclusion limit as well; -this can be enabled by choosing ``expected=spey.ExpectationType.apriori``. This option will -disregard the experimental observations and compute the expected exclusion limit with respect to -the expected background yields, i.e. simulated SM. :attr:`~spey.ExpectationType.observed` -(:attr:`~spey.ExpectationType.aposteriori`) performs post-fit and computes observed (expected) -exclusion confidence limits. Expected exclusion limits, for both cases, are returned with -:math:`\pm1\sigma` and :math:`\pm2\sigma` fluctuations around the background model. Hence, while -the observed expectation limit returns one value, the expected exclusion limit returns five values; -:math:`[-2\sigma, -1\sigma, 0, 1\sigma, 2\sigma]`, respectively. However, since this is not possible -for the ``"chi_square"`` calculator, that option only returns one value for both. - -``allow_negative_signal`` determines which test statistics to be used and limits the values that :math:`\mu` -can take during the computation of maximum likelihood. If ``allow_negative_signal=True`` algorithm -will use :math:`q_\mu` test statistic, otherwise :math:`\tilde{q}_\mu` test statistics will be used -(see :cite:`Cowan:2010js, Araz:2023bwx` for details). - -For highly complex statistical models, maximising the likelihood can be tricky and might depend on the optimiser. -Spey uses Scipy to handle the optimisation and fitting tasks, all other keyword arguments that have not been mentioned -in the function description of :func:`~spey.StatisticalModel.exclusion_confidence_level` passed to the optimiser which -enables the user to control the properties of the optimiser through the interface. \ No newline at end of file diff --git a/docs/figs/comparisson.png b/docs/figs/comparisson.png new file mode 100644 index 0000000000000000000000000000000000000000..3025a54df237d77fdee947a2d7f39d2259c39b55 GIT binary patch literal 60390 zcmce-Wn5I@+bs+X-2#G2Bhrm@DWXUVNH<7#Hv@vCh)NBOq;z-8&`L^om(+m73^2f) z&Hp*iInVj>etbVDznQ(~-gjKF*1E18^G;ongzyO=1_lO+(pv>B3=HgX3=GUHd|cog zY0~Xc;E#mYYke{% z_}fqpZNarzu@F5q{1pJjMnPr zC_Cgtyu~JnaN=HhB?*-q)d|}4Gnx#M8_OS<$a1AZy+wBHwkz6KJdnp{jv)W9|ISDB z{$l+12jFWCpYIBk|M$8j#{ZumSrU@8>XNkdI16_;3#mB@ceo2}9!gfqYbuZEDtEm9 zD^6(Nd>p2=|EzGzAZ?Yga0(NCJO#N8rpVJ*T6Fz|`lGfG!rYH*k0iElYgIy-U1NPB zeGy&L?Yzb}VK{cd(?)ptjay`l3A+Yh$heLZQHEc zLglwaWcAy(YR{QZcl+e=fO}Yu3y#FLg30ASi%h@?1PPTio@;s}Y2lgoM=<_ukTv8K zp%sUj1Tz%{9`@i6Rg)PWfKd7(w7(Yg5n91ukG_hRZj?JRKM$-E^BZP-cZG|1O0<=; zw*5PZcF?-}EYX@J?-xbwQSm_?WRE8hM1lcSfv6c8d-QB#Q=`fP_?shOBZYR2GuIA< zQ^vkdmsx3*70M-_U_s{HZ`Idk1m?V>+eRi0SH*kJ%29u4H(IU}lacIZ$1nL>%vg4; zV%r#zym9Q-qh zs}w66o|PAcx0p*d@pUyv^N?#8HGUS?D_?tJUG|o@pbgbYo*(mn)&zRH$lq)C^ayxn z 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%0Ar(~ZQ2Y!qkfOAauk!PEniGG!(ZPj{e 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�`|E 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 A{{R30 literal 0 HcmV?d00001 From 75808801afde69eee8e334f2cba49b0d699814fa Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 21:51:14 -0400 Subject: [PATCH 10/27] further fixes --- docs/exclusion.md | 4 +- docs/figs/comparisson.png | Bin 60390 -> 0 bytes docs/figs/comparisson_observed.png | Bin 0 -> 59624 bytes src/spey/base/hypotest_base.py | 86 +++++++++++++---------------- tests/test_default_pdf.py | 6 +- 5 files changed, 42 insertions(+), 54 deletions(-) delete mode 100644 docs/figs/comparisson.png create mode 100644 docs/figs/comparisson_observed.png diff --git a/docs/exclusion.md b/docs/exclusion.md index 396b92d..4794176 100644 --- a/docs/exclusion.md +++ b/docs/exclusion.md @@ -54,12 +54,12 @@ For complex statistical models, optimizing the likelihood can be challenging and Below we compare the exclusion limits computed with each approach. This comparisson uses normal distribution for the likelihood (`default_pdf.normal`) background yields are set to $n_b$, uncertainties are shown with $\sigma$ and observations are given with $n$. -```{figure} ./figs/comparisson.png +```{figure} ./figs/comparisson_observed.png --- width: 100% figclass: caption alt: exclusion limit calculator comparisson name: fig2 --- -exclusion limit calculator comparisson +exclusion limit calculator comparisson for observed p-values ``` diff --git a/docs/figs/comparisson.png b/docs/figs/comparisson.png deleted file mode 100644 index 3025a54df237d77fdee947a2d7f39d2259c39b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60390 zcmce-Wn5I@+bs+X-2#G2Bhrm@DWXUVNH<7#Hv@vCh)NBOq;z-8&`L^om(+m73^2f) z&Hp*iInVj>etbVDznQ(~-gjKF*1E18^G;ongzyO=1_lO+(pv>B3=HgX3=GUHd|cog zY0~Xc;E#mYYke{% z_}fqpZNarzu@F5q{1pJjMnPr zC_Cgtyu~JnaN=HhB?*-q)d|}4Gnx#M8_OS<$a1AZy+wBHwkz6KJdnp{jv)W9|ISDB z{$l+12jFWCpYIBk|M$8j#{ZumSrU@8>XNkdI16_;3#mB@ceo2}9!gfqYbuZEDtEm9 zD^6(Nd>p2=|EzGzAZ?Yga0(NCJO#N8rpVJ*T6Fz|`lGfG!rYH*k0iElYgIy-U1NPB zeGy&L?Yzb}VK{cd(?)ptjay`l3A+Yh$heLZQHEc zLglwaWcAy(YR{QZcl+e=fO}Yu3y#FLg30ASi%h@?1PPTio@;s}Y2lgoM=<_ukTv8K zp%sUj1Tz%{9`@i6Rg)PWfKd7(w7(Yg5n91ukG_hRZj?JRKM$-E^BZP-cZG|1O0<=; zw*5PZcF?-}EYX@J?-xbwQSm_?WRE8hM1lcSfv6c8d-QB#Q=`fP_?shOBZYR2GuIA< zQ^vkdmsx3*70M-_U_s{HZ`Idk1m?V>+eRi0SH*kJ%29u4H(IU}lacIZ$1nL>%vg4; zV%r#zym9Q-qh zs}w66o|PAcx0p*d@pUyv^N?#8HGUS?D_?tJUG|o@pbgbYo*(mn)&zRH$lq)C^ayxn z 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%0Ar(~ZQ2Y!qkfOAauk!PEniGG!(ZPj{e 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�`|E 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 A{{R30 diff --git a/docs/figs/comparisson_observed.png b/docs/figs/comparisson_observed.png new file mode 100644 index 0000000000000000000000000000000000000000..d5aa2239b342d5a2cefdee45a442c86d4d063d11 GIT binary patch literal 59624 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 ^FRg8J$Wpa{?+>_wy`a6G@ZQ5 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 literal 0 HcmV?d00001 diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 0214076..cbe6fa9 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -625,6 +625,26 @@ def exclusion_confidence_level( test_stat = "q" if allow_negative_signal else "qtilde" verbose = kwargs.pop("verbose", True) + test_stat_func = get_test_statistic(test_stat) + + def logpdf(mu: Union[float, np.ndarray], data: Union[float, np.ndarray]) -> float: + """Compute logpdf with respect to poi and given data""" + return -self.likelihood( + poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], + expected=expected, + data=data, + **kwargs, + ) + + def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: + """Compute maximum likelihood with respect to given data""" + return self.maximize_likelihood( + expected=expected, + allow_negative_signal=allow_negative_signal, + data=data, + **kwargs, + ) + if calculator == "asymptotic": ( maximum_likelihood, @@ -665,43 +685,11 @@ def exclusion_confidence_level( poi_test=0.0, size=self.ntoys, expected=expected, **kwargs ) - test_stat_func = get_test_statistic(test_stat) + muhat, min_negloglike = maximize_likelihood(None) ts = test_stat_func( - poi_test, - *self.maximize_likelihood( - expected=expected, - allow_negative_signal=allow_negative_signal, - **kwargs, - ), - lambda mu: -self.likelihood( - poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], - expected=expected, - **kwargs, - ), + poi_test, muhat, -min_negloglike, partial(logpdf, data=None) ) - def logpdf( - mu: Union[float, np.ndarray], data: Union[float, np.ndarray] - ) -> float: - """Compute logpdf with respect to poi and given data""" - return -self.likelihood( - poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], - expected=expected, - data=data, - **kwargs, - ) - - def maximize_likelihood( - data: Union[float, np.ndarray] - ) -> Tuple[float, float]: - """Compute maximum likelihood with respect to given data""" - return self.maximize_likelihood( - expected=expected, - allow_negative_signal=allow_negative_signal, - data=data, - **kwargs, - ) - signal_like_test_stat, bkg_like_test_stat = [], [] with tqdm.tqdm( total=self.ntoys, @@ -710,18 +698,22 @@ def maximize_likelihood( disable=not verbose, ) as pbar: for sig_smp, bkg_smp in zip(signal_samples, bkg_samples): + muhat_s_b, min_negloglike_s_b = maximize_likelihood(data=sig_smp) signal_like_test_stat.append( test_stat_func( poi_test, - *maximize_likelihood(data=sig_smp), + muhat_s_b, + -min_negloglike_s_b, partial(logpdf, data=sig_smp), ) ) + muhat_b, min_negloglike_b = maximize_likelihood(data=bkg_smp) bkg_like_test_stat.append( test_stat_func( poi_test, - *maximize_likelihood(data=bkg_smp), + muhat_b, + -min_negloglike_b, partial(logpdf, data=bkg_smp), ) ) @@ -736,26 +728,22 @@ def maximize_likelihood( ) elif calculator == "chi_square": - signal_like = self.chi2( - poi_test=poi_test, - expected=expected, - allow_negative_signal=allow_negative_signal, - **kwargs, + muhat, min_negloglike = maximize_likelihood(data=None) + + ts_s_b = test_stat_func( + poi_test, muhat, -min_negloglike, partial(logpdf, data=None) ) - bkg_like = self.chi2( - poi_test=0.0, - expected=expected, - allow_negative_signal=allow_negative_signal, - **kwargs, + ts_b_only = test_stat_func( + 0.0, muhat, -min_negloglike, partial(logpdf, data=None) ) - sqrt_ts_s_b = np.sqrt(np.clip(signal_like, 0.0, None)) - sqrt_ts_b_only = np.sqrt(np.clip(bkg_like, 0.0, None)) + sqrt_ts_s_b = np.sqrt(ts_s_b) + sqrt_ts_b_only = np.sqrt(ts_b_only) if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: delta_ts = sqrt_ts_b_only - sqrt_ts_s_b else: with warnings.catch_warnings(record=True): - delta_ts = np.true_divide(bkg_like - signal_like, 2.0 * sqrt_ts_s_b) + delta_ts = np.true_divide(ts_b_only - ts_s_b, 2.0 * sqrt_ts_s_b) pvalues, expected_pvalues = compute_asymptotic_confidence_level( sqrt_ts_s_b, delta_ts, test_stat=test_stat ) diff --git a/tests/test_default_pdf.py b/tests/test_default_pdf.py index 9fdc05a..4bffa28 100644 --- a/tests/test_default_pdf.py +++ b/tests/test_default_pdf.py @@ -136,7 +136,7 @@ def test_normal(): ) assert np.isclose( - statistical_model.chi2(), + statistical_model.chi2(poi_test_denominator=0), 2.0 * ( 0.5 * ((12.0 + 50.0 - 36.0) ** 2 / 20.0**2) @@ -161,10 +161,10 @@ def test_multivariate_gauss(): ) assert np.isclose( - statistical_model.chi2(), + statistical_model.chi2(poi_test_denominator=0), 2.0 * ( (0.5 * (signal + bkg - data) @ np.linalg.inv(cov) @ (signal + bkg - data)) - (0.5 * (bkg - data) @ np.linalg.inv(cov) @ (bkg - data)) ), - ) + ), "Multivariate gauss wrong" From 70bf0ca18e98c7c7813aaacc57c4baa9582bf560 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 22:12:22 -0400 Subject: [PATCH 11/27] update changelog --- docs/releases/changelog-v0.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/releases/changelog-v0.1.md b/docs/releases/changelog-v0.1.md index da57bb8..9e0a563 100644 --- a/docs/releases/changelog-v0.1.md +++ b/docs/releases/changelog-v0.1.md @@ -79,7 +79,7 @@ Specific upgrades for the latest release can be found [here](https://github.com/ * Compatibility issues have been fixed in Python 3.12 ([#39](https://github.com/SpeysideHEP/spey/pull/39)) -* p-value computation in $\chi^2$ calculator has been fixed. +* p-value computation in $\chi^2$ and toy calculators have been fixed. ([#42](https://github.com/SpeysideHEP/spey/pull/42)) ## Contributors From 17a6db8ed3775cb0c2adfa6e7f21c9cd29f5603c Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 22:24:51 -0400 Subject: [PATCH 12/27] clean the code --- src/spey/base/hypotest_base.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index cbe6fa9..4649cad 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -645,6 +645,8 @@ def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: **kwargs, ) + muhat, min_negloglike = maximize_likelihood(None) + if calculator == "asymptotic": ( maximum_likelihood, @@ -685,11 +687,6 @@ def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: poi_test=0.0, size=self.ntoys, expected=expected, **kwargs ) - muhat, min_negloglike = maximize_likelihood(None) - ts = test_stat_func( - poi_test, muhat, -min_negloglike, partial(logpdf, data=None) - ) - signal_like_test_stat, bkg_like_test_stat = [], [] with tqdm.tqdm( total=self.ntoys, @@ -723,13 +720,13 @@ def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: pvalues, expected_pvalues = compute_toy_confidence_level( signal_like_test_stat, bkg_like_test_stat, - test_statistic=ts, + test_statistic=test_stat_func( + poi_test, muhat, -min_negloglike, partial(logpdf, data=None) + ), test_stat=test_stat, ) elif calculator == "chi_square": - muhat, min_negloglike = maximize_likelihood(data=None) - ts_s_b = test_stat_func( poi_test, muhat, -min_negloglike, partial(logpdf, data=None) ) @@ -737,8 +734,7 @@ def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: 0.0, muhat, -min_negloglike, partial(logpdf, data=None) ) - sqrt_ts_s_b = np.sqrt(ts_s_b) - sqrt_ts_b_only = np.sqrt(ts_b_only) + sqrt_ts_s_b, sqrt_ts_b_only = np.sqrt(ts_s_b), np.sqrt(ts_b_only) if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: delta_ts = sqrt_ts_b_only - sqrt_ts_s_b else: From 1678b67cce994d6735d8b0b58c378a70b705122d Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 22:31:04 -0400 Subject: [PATCH 13/27] raise python release --- .github/workflows/tests.yml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9af9ea1..057cfab 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12.4"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12.6"] os: [ubuntu-latest, macos-latest] steps: diff --git a/setup.py b/setup.py index 3f5a25f..f857503 100644 --- a/setup.py +++ b/setup.py @@ -48,7 +48,7 @@ packages=find_packages(where="src"), entry_points={"spey.backend.plugins": backend_plugins}, install_requires=requirements, - python_requires=">=3.8, <=3.12.4", + python_requires=">=3.8, <=3.12.6", classifiers=[ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", From 83442692f7db344b99769c8082f6f31858077f38 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 22:40:17 -0400 Subject: [PATCH 14/27] update metadata --- .zenodo.json | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index fceb98b..e0508e9 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -6,7 +6,7 @@ "upload_type": "software", "creators": [ { - "affiliation": "Thomas Jefferson National Accelerator Facility", + "affiliation": "Stony Brook University", "name": "Araz, Jack Y.", "orcid": "0000-0001-8721-8042" } diff --git a/setup.py b/setup.py index f857503..3ad5dfa 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ }, download_url=f"https://github.com/SpeysideHEP/spey/archive/refs/tags/v{version}.tar.gz", author="Jack Y. Araz", - author_email=("jackaraz@jlab.org"), + author_email=("jack.araz@stonybrook.edu"), license="MIT", package_dir={"": "src"}, packages=find_packages(where="src"), From ce15577713f5a2a812c0f21c9e531a2a40de45d0 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Thu, 3 Oct 2024 22:40:42 -0400 Subject: [PATCH 15/27] update version --- src/spey/_version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spey/_version.py b/src/spey/_version.py index d0e837f..7c416db 100644 --- a/src/spey/_version.py +++ b/src/spey/_version.py @@ -1,3 +1,3 @@ """Version number (major.minor.patch[-label])""" -__version__ = "0.1.10-beta" +__version__ = "0.1.10" From 9451bf73fb0cacc25e3645fd1c8c1d4f49fab2ab Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 07:42:39 -0400 Subject: [PATCH 16/27] extend --- docs/exclusion.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/exclusion.md b/docs/exclusion.md index 4794176..d06461d 100644 --- a/docs/exclusion.md +++ b/docs/exclusion.md @@ -31,7 +31,7 @@ to choose in between ``"asymptotic"``, ``"toy"`` and ``"chi_square"`` calculator * ``"asymptotic"``: uses asymptotic formulae to compute p-values, see ref. {cite}`Cowan:2010js` for details. This method is only available if the likelihood construction has access to - the expected values of the distribution, which allows one to construct Asimov data. Hence the test statistic is constructed with the Asimov likelihood. + the expected values of the distribution, which allows one to construct Asimov data. Hence the test statistic is constructed with the Asimov likelihood. LHC analyses mostly use this method. * ``"toy"``: This method uses the sampling functionality of the likelihood, hence expects the construction to have sampling abilities. It computes p-values by sampling from signal+background and background-only distributions. @@ -42,7 +42,7 @@ to choose in between ``"asymptotic"``, ``"toy"`` and ``"chi_square"`` calculator \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu},\hat{\theta}_{\mu})}, $$ - for signal-like $\chi^2(\mu=1)$ and background like $\chi^2(\mu=0)$ to compute the p-values for the model. + for signal-like $\chi^2(\mu=1)$ and background like $\chi^2(\mu=0)$ to compute the p-values for the model. This method usually used during Tevatron era. The `expected` keyword allows users to select between computing observed or expected exclusion limits. It also supports the calculation of prefit expected exclusion limits, which can be enabled by setting `expected=spey.ExpectationType.apriori`. This option ignores experimental data and computes the expected exclusion limit based solely on the simulated Standard Model (SM) background yields. On the other hand, {attr}`~spey.ExpectationType.observed` (for observed limits) and {attr}`~spey.ExpectationType.aposteriori` (for post-fit expected limits) compute the exclusion confidence limits after fitting the model. From aab1c1bfdf222294ed716a6d421327232a889e46 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 07:44:52 -0400 Subject: [PATCH 17/27] update docs --- docs/exclusion.md | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/docs/exclusion.md b/docs/exclusion.md index d06461d..2ec0727 100644 --- a/docs/exclusion.md +++ b/docs/exclusion.md @@ -20,29 +20,19 @@ kernelspec: # Exclusion limits -Any Spey statistical model can compute the exclusion confidence level -using three options. Depending on the available functions in likelihood construction -(see {ref}`this section ` for details), one or more of these options will be -available for the user. One can use -{func}`~spey.StatisticalModel.available_calculators` function to see which calculators are available. +Any Spey statistical model can compute the exclusion confidence level using three different calculators. The availability of these options depends on the functions used in the likelihood construction (see {ref}`this section ` for details). To check which calculators are available for a given model, users can call the {func}`~spey.StatisticalModel.available_calculators` function. -{func}`~spey.StatisticalModel.exclusion_confidence_level` function uses ``calculator`` keyword -to choose in between ``"asymptotic"``, ``"toy"`` and ``"chi_square"`` calculators. +The {func}`~spey.StatisticalModel.exclusion_confidence_level` function allows users to select a calculator through the ``calculator`` keyword, with three options: -* ``"asymptotic"``: uses asymptotic formulae to compute p-values, see ref. {cite}`Cowan:2010js` - for details. This method is only available if the likelihood construction has access to - the expected values of the distribution, which allows one to construct Asimov data. Hence the test statistic is constructed with the Asimov likelihood. LHC analyses mostly use this method. -* ``"toy"``: This method uses the sampling functionality of the likelihood, hence expects the - construction to have sampling abilities. It computes p-values by sampling from signal+background - and background-only distributions. -* ``"chi_square"``: This method compares $\chi^2(\mu)$ distributions, +- **"asymptotic"**: Uses asymptotic formulae to calculate p-values (see ref. {cite}`Cowan:2010js` for details). This method requires access to the expected values of the distribution to construct Asimov data, forming the test statistic based on the Asimov likelihood. This is the most common method used in LHC analyses. +- **"toy"**: Relies on the sampling functionality of the likelihood, requiring the construction to support sampling. It computes p-values by drawing samples from both the signal-plus-background and background-only distributions. +- **"chi_square"**: Compares $\chi^2(\mu)$ distributions, $$ - - \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu},\hat{\theta}_{\mu})}, + \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu},\hat{\theta}_{\mu})}, $$ - for signal-like $\chi^2(\mu=1)$ and background like $\chi^2(\mu=0)$ to compute the p-values for the model. This method usually used during Tevatron era. + where $\chi^2(\mu=1)$ represents signal-like behavior and $\chi^2(\mu=0)$ represents background-like behavior, to compute the p-values. This method was widely used during the Tevatron era. The `expected` keyword allows users to select between computing observed or expected exclusion limits. It also supports the calculation of prefit expected exclusion limits, which can be enabled by setting `expected=spey.ExpectationType.apriori`. This option ignores experimental data and computes the expected exclusion limit based solely on the simulated Standard Model (SM) background yields. On the other hand, {attr}`~spey.ExpectationType.observed` (for observed limits) and {attr}`~spey.ExpectationType.aposteriori` (for post-fit expected limits) compute the exclusion confidence limits after fitting the model. From 46a10f0fb51aebc23d5d269c3443d381870e031f Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 08:52:51 -0400 Subject: [PATCH 18/27] update for code efficiency --- src/spey/base/hypotest_base.py | 44 +++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 4649cad..f432863 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -625,27 +625,33 @@ def exclusion_confidence_level( test_stat = "q" if allow_negative_signal else "qtilde" verbose = kwargs.pop("verbose", True) - test_stat_func = get_test_statistic(test_stat) - - def logpdf(mu: Union[float, np.ndarray], data: Union[float, np.ndarray]) -> float: - """Compute logpdf with respect to poi and given data""" - return -self.likelihood( - poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], - expected=expected, - data=data, - **kwargs, - ) + # NOTE Improve code efficiency, these are not necessary for asymptotic calculator + if calculator in ["toy", "chi_square"]: + test_stat_func = get_test_statistic(test_stat) + + def logpdf( + mu: Union[float, np.ndarray], data: Union[float, np.ndarray] + ) -> float: + """Compute logpdf with respect to poi and given data""" + return -self.likelihood( + poi_test=float(mu) if isinstance(mu, (float, int)) else mu[0], + expected=expected, + data=data, + **kwargs, + ) - def maximize_likelihood(data: Union[float, np.ndarray]) -> Tuple[float, float]: - """Compute maximum likelihood with respect to given data""" - return self.maximize_likelihood( - expected=expected, - allow_negative_signal=allow_negative_signal, - data=data, - **kwargs, - ) + def maximize_likelihood( + data: Union[float, np.ndarray] + ) -> Tuple[float, float]: + """Compute maximum likelihood with respect to given data""" + return self.maximize_likelihood( + expected=expected, + allow_negative_signal=allow_negative_signal, + data=data, + **kwargs, + ) - muhat, min_negloglike = maximize_likelihood(None) + muhat, min_negloglike = maximize_likelihood(None) if calculator == "asymptotic": ( From 8bca744288aa8e5afedd4758236312158ac52b37 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 09:11:24 -0400 Subject: [PATCH 19/27] add protection --- src/spey/base/hypotest_base.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index f432863..d65d82e 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -731,6 +731,9 @@ def maximize_likelihood( ), test_stat=test_stat, ) + pvalues, expected_pvalues = np.clip(pvalues, 0.0, 1.0), np.clip( + expected_pvalues, 0.0, 1.0 + ) elif calculator == "chi_square": ts_s_b = test_stat_func( From cce3149be3278df81b749ef57ade948b5ba0ac73 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 09:27:58 -0400 Subject: [PATCH 20/27] bugfix --- src/spey/base/hypotest_base.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index d65d82e..f640f8b 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -739,9 +739,7 @@ def maximize_likelihood( ts_s_b = test_stat_func( poi_test, muhat, -min_negloglike, partial(logpdf, data=None) ) - ts_b_only = test_stat_func( - 0.0, muhat, -min_negloglike, partial(logpdf, data=None) - ) + ts_b_only = np.clip(-2.0 * (logpdf(0.0, None) + min_negloglike), 0.0, None) sqrt_ts_s_b, sqrt_ts_b_only = np.sqrt(ts_s_b), np.sqrt(ts_b_only) if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: From 14467d086fcd29b8582e4440b7b48446b7251e89 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 09:43:58 -0400 Subject: [PATCH 21/27] update fig --- docs/figs/comparisson_observed.png | Bin 59624 -> 48343 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/figs/comparisson_observed.png b/docs/figs/comparisson_observed.png index d5aa2239b342d5a2cefdee45a442c86d4d063d11..5bcbbf1e03424a0aa531f1a55f0c537c089431ad 100644 GIT binary patch literal 48343 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

)m7oe4y%O@w=}q}>L^3U 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 literal 59624 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 ^FRg8J$Wpa{?+>_wy`a6G@ZQ5 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 From 1d9d94cfeb07b99edb114dbcde3e104cc634b653 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 11:31:44 -0400 Subject: [PATCH 22/27] bugfix in case of muhat < 0 --- src/spey/base/hypotest_base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index f640f8b..79e3fd8 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -739,10 +739,14 @@ def maximize_likelihood( ts_s_b = test_stat_func( poi_test, muhat, -min_negloglike, partial(logpdf, data=None) ) - ts_b_only = np.clip(-2.0 * (logpdf(0.0, None) + min_negloglike), 0.0, None) + null_logpdf = logpdf(0.0, None) + max_logpdf = ( + -min_negloglike if muhat >= 0.0 or test_stat == "q" else null_logpdf + ) + ts_b_only = np.clip(-2.0 * (null_logpdf - max_logpdf), 0.0, None) sqrt_ts_s_b, sqrt_ts_b_only = np.sqrt(ts_s_b), np.sqrt(ts_b_only) - if test_stat in ["q", "q0", "qmu"] or sqrt_ts_s_b <= sqrt_ts_b_only: + if test_stat == "q" or sqrt_ts_s_b <= sqrt_ts_b_only: delta_ts = sqrt_ts_b_only - sqrt_ts_s_b else: with warnings.catch_warnings(record=True): From 47d336fa3e43c7458106e5cfeae54c0113d36a19 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 11:38:59 -0400 Subject: [PATCH 23/27] extend doc --- src/spey/hypothesis_testing/test_statistics.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/spey/hypothesis_testing/test_statistics.py b/src/spey/hypothesis_testing/test_statistics.py index 32baca3..93b94eb 100644 --- a/src/spey/hypothesis_testing/test_statistics.py +++ b/src/spey/hypothesis_testing/test_statistics.py @@ -46,6 +46,8 @@ def qmu_tilde( ``float``: the value of :math:`\tilde{q}_{\mu}`. """ + # NOTE Comparing muhat to mu is important in the cases where obs >> bkg. + # it can lead sig << bkg scenario to be excluded which should not happen return ( 0.0 if muhat > mu From eb9826aa496da766a76a7b5ebabb196a58124713 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 13:15:49 -0400 Subject: [PATCH 24/27] update loglevel --- src/spey/__init__.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/spey/__init__.py b/src/spey/__init__.py index 84d36a6..ab5de3f 100644 --- a/src/spey/__init__.py +++ b/src/spey/__init__.py @@ -53,6 +53,14 @@ def set_log_level(level: Literal[0, 1, 2, 3]) -> None: """ Set log level for spey + Log level can also be set through terminal by the following command + + .. code:: + + export SPEY_LOGLEVEL=3 + + value corresponds to the levels shown below. + Args: level (``int``): log level @@ -332,5 +340,8 @@ def cite() -> List[Text]: return "" +if int(os.environ.get("SPEY_LOGLEVEL", -1)) >= 0: + set_log_level(int(os.environ.get("SPEY_LOGLEVEL"))) + if os.environ.get("SPEY_CHECKUPDATE", "ON").upper() != "OFF": check_updates() From 5884f9740ab546fd8206e343e555b5f010cc9ebc Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 20:35:42 -0400 Subject: [PATCH 25/27] add debug msg --- src/spey/base/hypotest_base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 79e3fd8..41a9662 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -674,7 +674,9 @@ def maximize_likelihood( logpdf_asimov, test_stat, ) - log.debug(f"sqrt_qmuA = {sqrt_qmuA}, test statistic = {delta_teststat}") + log.debug( + f" sqrt_qmuA = {sqrt_qmuA}, test statistic = {delta_teststat}" + ) pvalues, expected_pvalues = compute_asymptotic_confidence_level( sqrt_qmuA, delta_teststat, test_stat @@ -744,6 +746,9 @@ def maximize_likelihood( -min_negloglike if muhat >= 0.0 or test_stat == "q" else null_logpdf ) ts_b_only = np.clip(-2.0 * (null_logpdf - max_logpdf), 0.0, None) + log.debug( + f" test statistic: null hypothesis={ts_b_only}, s+b={ts_s_b}" + ) sqrt_ts_s_b, sqrt_ts_b_only = np.sqrt(ts_s_b), np.sqrt(ts_b_only) if test_stat == "q" or sqrt_ts_s_b <= sqrt_ts_b_only: From fd80d647cb98f694b2aeaa928cff35e4c8862ef9 Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Fri, 4 Oct 2024 21:29:35 -0400 Subject: [PATCH 26/27] update docs --- docs/exclusion.md | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/docs/exclusion.md b/docs/exclusion.md index 2ec0727..f92d978 100644 --- a/docs/exclusion.md +++ b/docs/exclusion.md @@ -20,29 +20,50 @@ kernelspec: # Exclusion limits -Any Spey statistical model can compute the exclusion confidence level using three different calculators. The availability of these options depends on the functions used in the likelihood construction (see {ref}`this section ` for details). To check which calculators are available for a given model, users can call the {func}`~spey.StatisticalModel.available_calculators` function. +Any Spey statistical model can compute the exclusion confidence level using three different calculators. The availability of these options depends on the functions used in the likelihood construction (see {ref}`this section ` for details). -The {func}`~spey.StatisticalModel.exclusion_confidence_level` function allows users to select a calculator through the ``calculator`` keyword, with three options: +The exclusion limits can be calculated for two different test statistic measure i.e. test statistic -- **"asymptotic"**: Uses asymptotic formulae to calculate p-values (see ref. {cite}`Cowan:2010js` for details). This method requires access to the expected values of the distribution to construct Asimov data, forming the test statistic based on the Asimov likelihood. This is the most common method used in LHC analyses. -- **"toy"**: Relies on the sampling functionality of the likelihood, requiring the construction to support sampling. It computes p-values by drawing samples from both the signal-plus-background and background-only distributions. -- **"chi_square"**: Compares $\chi^2(\mu)$ distributions, +$$ +q_\mu = \begin{cases} + 0 & {\rm if\ } \hat{\mu}>\mu\ , \\ + -2\log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu}, \hat{\theta})} & {\rm otherwise} + \end{cases} \quad , +$$ - $$ - \chi^2(\mu) = -2 \log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu},\hat{\theta}_{\mu})}, - $$ +or alternate test statistic - where $\chi^2(\mu=1)$ represents signal-like behavior and $\chi^2(\mu=0)$ represents background-like behavior, to compute the p-values. This method was widely used during the Tevatron era. +$$ +\tilde{q}_\mu = \begin{cases} + 0 & {\rm if\ } \hat{\mu}>\mu\ , \\ + -2\log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(\hat{\mu}, \hat{\theta})} & {\rm if\ } 0\leq\hat{\mu}\leq\mu\ ,\\ + -2\log\frac{\mathcal{L}(\mu, \theta_\mu)}{\mathcal{L}(0, \theta_0)} & {\rm otherwise} + \end{cases}\quad . +$$ -The `expected` keyword allows users to select between computing observed or expected exclusion limits. It also supports the calculation of prefit expected exclusion limits, which can be enabled by setting `expected=spey.ExpectationType.apriori`. This option ignores experimental data and computes the expected exclusion limit based solely on the simulated Standard Model (SM) background yields. On the other hand, {attr}`~spey.ExpectationType.observed` (for observed limits) and {attr}`~spey.ExpectationType.aposteriori` (for post-fit expected limits) compute the exclusion confidence limits after fitting the model. +The main distinction being, alternate test statistic assumes that the signal can not be negative, for instance in case of negative interference effects in EFT one should use test statistic. By default {func}`~spey.StatisticalModel.exclusion_confidence_level` function assumes alternate test statistic being use and this can be changed with ``allow_negative_signal`` boolean argument. + +````{margin} +```{note} +To check which calculators are available for a given model, users can call the {obj}`~spey.StatisticalModel.available_calculators` function. +``` +```` + +The {func}`~spey.StatisticalModel.exclusion_confidence_level` function allows users to specify the calculator through the ``calculator`` keyword, offering three options: + +- **"asymptotic"**: Uses asymptotic formulae to compute p-values (see ref. {cite}`Cowan:2010js` for details). This method requires the likelihood to support sampling capabilities, as it compares the signal-like test statistic to the Asimov test statistic using the formula $t_\mu = \sqrt{\tilde{q}_\mu} - \sqrt{\tilde{q}_{\mu,A}}$. This is the most commonly used method in LHC analyses. +- **"toy"**: Relies on the likelihood's sampling functionality. It calculates p-values by generating samples from both the signal-plus-background and background-only distributions. +- **"chi_square"**: Compares the signal hypothesis ($\tilde{q}_{\mu=1}$) to the null hypothesis, with the test statistic $t_\mu = \sqrt{\chi^2(\mu=0)} - \sqrt{\tilde{q}_{\mu=1}}$. This approach was widely used during the Tevatron era. + +The `expected` keyword allows users to select between computing observed or expected exclusion limits. It also supports the calculation of prefit expected exclusion limits, which can be enabled by setting `expected=spey.ExpectationType.apriori`. This option ignores experimental data and computes the expected exclusion limit based solely on the simulated Standard Model (SM) background yields. On the other hand, {obj}`~spey.ExpectationType.observed` (for observed limits) and {obj}`~spey.ExpectationType.aposteriori` (for post-fit expected limits) compute the exclusion confidence limits after fitting the model. In both expected cases, the exclusion limits are returned with $\pm1\sigma$ and $\pm2\sigma$ variations around the background model, resulting in five values: $[-2\sigma, -1\sigma, 0, 1\sigma, 2\sigma]$. However, the observed exclusion limit returns a single value. The ``"chi_square"`` calculator is an exception—it only provides one value for both observed and expected limits. The `allow_negative_signal` keyword controls which test statistic is used and restricts the values that $\mu$ (the signal strength) can take when computing the maximum likelihood. When `allow_negative_signal=True`, the $q_\mu$ test statistic is applied; otherwise, the $\tilde{q}_\mu$ statistic is used (for further details, see {cite}`Cowan:2010js, Araz:2023bwx`). -For complex statistical models, optimizing the likelihood can be challenging and depends on the choice of optimizer. Spey uses SciPy for optimization and fitting tasks. Any additional keyword arguments not explicitly covered in the `exclusion_confidence_level` function description are passed directly to the optimizer, allowing users to customize its behavior through the interface. +For complex statistical models, optimizing the likelihood can be challenging and depends on the choice of optimizer. Spey uses SciPy for optimization and fitting tasks. Any additional keyword arguments not explicitly covered in the {func}`~spey.StatisticalModel.exclusion_confidence_level` function description are passed directly to the optimizer, allowing users to customize its behavior through the interface. -Below we compare the exclusion limits computed with each approach. This comparisson uses normal distribution for the likelihood (`default_pdf.normal`) background yields are set to $n_b$, uncertainties are shown with $\sigma$ and observations are given with $n$. +Below we compare the exclusion limits computed with each approach. This comparisson uses normal distribution for the likelihood ([`default_pdf.normal`](#normal)) background yields are set to $n_b$, uncertainties are shown with $\sigma$ and observations are given with $n$. ```{figure} ./figs/comparisson_observed.png --- From e2941555ac9ed2d4d2061b269c44c6782f8c1d2e Mon Sep 17 00:00:00 2001 From: "Jack Y. Araz" Date: Mon, 7 Oct 2024 14:54:43 -0400 Subject: [PATCH 27/27] add protection --- src/spey/base/hypotest_base.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/spey/base/hypotest_base.py b/src/spey/base/hypotest_base.py index 41a9662..d4a53bd 100644 --- a/src/spey/base/hypotest_base.py +++ b/src/spey/base/hypotest_base.py @@ -4,7 +4,6 @@ """ import logging -import warnings from abc import ABC, abstractmethod from functools import partial from typing import Any, Callable, Dict, List, Literal, Optional, Text, Tuple, Union @@ -750,15 +749,23 @@ def maximize_likelihood( f" test statistic: null hypothesis={ts_b_only}, s+b={ts_s_b}" ) + delta_ts = None sqrt_ts_s_b, sqrt_ts_b_only = np.sqrt(ts_s_b), np.sqrt(ts_b_only) if test_stat == "q" or sqrt_ts_s_b <= sqrt_ts_b_only: delta_ts = sqrt_ts_b_only - sqrt_ts_s_b else: - with warnings.catch_warnings(record=True): - delta_ts = np.true_divide(ts_b_only - ts_s_b, 2.0 * sqrt_ts_s_b) - pvalues, expected_pvalues = compute_asymptotic_confidence_level( - sqrt_ts_s_b, delta_ts, test_stat=test_stat - ) + try: + delta_ts = (ts_b_only - ts_s_b) / (2.0 * sqrt_ts_s_b) + except ZeroDivisionError: + log.error( + "Lack of evidence for a signal or deviation from a null hypothesis." + ) + if delta_ts is not None: + pvalues, expected_pvalues = compute_asymptotic_confidence_level( + sqrt_ts_s_b, delta_ts, test_stat=test_stat + ) + else: + pvalues, expected_pvalues = [1.0], [1.0] * 5 if expected == "all": return list(map(lambda x: 1.0 - x, pvalues)), list(