Библиотека предоставляет инструменты для:
- Расчета доверительных интервалов для оценок и среднего значения.
- Сравнения интервалов, в том числе составных, с использованием различных метрик сходства.
Примеры работы приведены в examples/
.
Модуль предоставляет функции для расчета доверительных интервалов для пропорций и среднего значения на основе списка оценок или количества каждой оценки.
Предполагается, что проводится модель испытаний Бернулли с вероятностью успеха
Вероятность считается с помощью нормировки каждой оценки на max_rating
.
Основные функции:
calculate_ci_from_ratings
: Рассчитывает доверительные интервалы для среднего на основе списка оценок.calculate_ci_from_counts
: Рассчитывает доверительные интервалы для среднего на основе гистограммы оценок.
Метод Вальда — это классический доверительный интервал, основанный на нормальном распределении.
Здесь:
-
$\hat{p}$ — выборочная вероятность успеха. -
$Z$ — квантиль стандартного нормального распределения, соответствующий заданному уровню доверия (например, 1.96 для 95% доверительной вероятности). -
$n$ — размер выборки.
Недостаток метода Вальда в том, что он может дать ненадежные результаты, особенно на малых выборках или когда
Метод Вильсона корректирует оценку по методу Вальда, улучшая точность на краях, близких к 0 или 1. Он более устойчив к крайним значениям и обеспечивает более точное покрытие.
Обозначения те же:
-
$\hat{p}$ — выборочная вероятность успеха. -
$Z$ — квантиль стандартного нормального распределения, соответствующий заданному уровню доверия (например, 1.96 для 95% доверительной вероятности). -
$n$ — размер выборки.
Оценки по методу Вильсона не выходят за пределы
Модуль для работы с интервалами и вычисления метрик между ними.
Основные классы:
Interval
: Простой интервал с началом и концом.CompositeInterval
: Составной интервал, состоящий из объединения нескольких простых.IntervalSimilarityMethod
: Базовый класс для сравнения интервалов.SimilarityRegistry
: Реестр алгоритмов сравнения интервалов.
Основные функции:
calculate_similarity
: Вычисляет сходство между двумя интервалами, используя заданный метод.calculate_similarity_matrix
: Вычисляет матрицу сходства для каждой пары интервалов из списка.
jaccard
: Коэффициент Жаккара.overlap
: Коэффициент перекрытия.hausdorff
: Расстояние Хаусдорфа.
Формула:
где:
-
$I_1$ и$I_2$ — два интервала, -
$|I_1 \cap I_2|$ — длина пересечения интервалов$I_1$ и$I_2$ , -
$|I_1 \cup I_2|$ — длина объединения интервалов$I_1$ и$I_2$ .
Логика:
Показывает долю пересечения двух интервалов относительно их объединения. Если пересечение пустое – равна 0. Равна 1 только если интервалы полностью совпадают.
Формула:
где:
-
$|I_1 \cap I_2|$ — длина пересечения интервалов$I_1$ и$I_2$ , -
$|I_1|$ и$|I_2|$ — длины интервалов$I_1$ и$I_2$ , соответственно.
Логика:
Показывает долю пересечения двух интервалов относительно длины меньшего интервала. Равна 1, если один из интервалов подмножество другого или они совпадают. Равна 0, если интервалы не пересекаются.
Формула:
где:
-
$d_{\min}(I_1, I_2)$ — минимальное расстояние между точками интервала$I_1$ и точками интервала$I_2$ , -
$d_{\max}(I_1, I_2)$ — максимальное расстояние между точками интервала$I_1$ и точками интервала$I_2$ .
Логика:
Измеряет максимальное расстояние между точками двух интервалов. Нормализация позволяет сравнивать интервалы разной длины.
Если интервалы пересекаются хотя бы в одной точке – равна 1. Если не пересекаются, меняется от того как далеко разошлись границы.
Формула:
где:
-
$n$ - количество методов, которые мы комбинируем -
$\text{Method}_i(I_1, I_2)$ - значение$i$ -й метрики для интервалов$I_1$ и$I_2$ (например, Жаккара, Перекрытия или Хаусдорфа) -
$w_i$ - вес$i$ -й метрики (должны быть неотрицательными и в сумме давать 1)
Логика:
Позволяет комбинировать несколько метрик с разными весами, чтобы получить более гибкую и точную оценку сходства. Сумма весов нормируется на единицу.
- Поддержка составных интервалов, состоящих из нескольких непересекающихся или перекрывающихся интервалов.
- Можно добавлять новые метрики (какие взбредут в голову, но вообще лучше сначала думать).