evaluma.methods.rank_sensitivity
================================

.. py:module:: evaluma.methods.rank_sensitivity


Functions
---------

.. autoapisummary::

   evaluma.methods.rank_sensitivity._validate_aligned_axes
   evaluma.methods.rank_sensitivity._ranks_from_scores
   evaluma.methods.rank_sensitivity.compute_rank_sensitivity


Module Contents
---------------

.. py:function:: _validate_aligned_axes(scores_a: pandas.DataFrame, scores_b: pandas.DataFrame)

   Validate that model and dataset label sets match across conditions.

   :param scores_a: Condition A normalized scores (model × dataset).
   :param scores_b: Condition B normalized scores (model × dataset).

   :raises ValueError: If model label sets differ.
   :raises ValueError: If dataset label sets differ.


.. py:function:: _ranks_from_scores(scores: pandas.DataFrame, agg='trimmed_mean') -> pandas.Series

   Aggregate per-model scores and convert them to ranks.

   :param scores: Normalized score matrix (model × dataset).
   :param agg: Aggregation mode passed to
               :func:`~evaluma.methods.aggregate._aggregate_scores`; defaults to
               ``"trimmed_mean"`` to match ``aggregate_ranking``.

   :returns: Average ranks with rank 1 as best (higher score is better).
   :rtype: pd.Series


.. py:function:: compute_rank_sensitivity(scores_a: pandas.DataFrame, scores_b: pandas.DataFrame, cond_a, cond_b, n_bootstrap=1000, random_state=None, agg='trimmed_mean') -> evaluma.results.RankSensitivityResult

   Compute ranking sensitivity between two model×dataset score matrices.

   :param scores_a: Condition A normalized scores (model × dataset).
   :param scores_b: Condition B normalized scores (model × dataset).
   :param cond_a: Label for condition A (used in output table/plot labels).
   :param cond_b: Label for condition B (used in output table/plot labels).
   :param n_bootstrap: Number of dataset-bootstrap samples for the 95% CI.
   :param random_state: Seed for ``numpy.random.default_rng``.
   :param agg: Per-model aggregation defining the ranking — ``"trimmed_mean"``
               (default, matching ``aggregate_ranking``), ``"mean"``, or
               ``"median"``.

   :returns: Rank sensitivity point estimates, CI, and table.
   :rtype: RankSensitivityResult

   :raises ValueError: If ``n_bootstrap < 0``.
   :raises ValueError: If ``agg`` is not a supported mode.
   :raises ValueError: If model or dataset labels are misaligned.


