gini
Добавлено в: v26.8.0
Вычисляет коэффициент Джини для столбца конечных неотрицательных числовых значений — меру неравенства распределения.
Результат находится в диапазоне от 0 (полное равенство: все значения одинаковы) до максимума, приближающегося к 1 по мере роста n (полное неравенство: одно значение содержит всё, а остальные равны нулю). Для конечной выборки из n значений максимум составляет (n - 1) / n.
Все переданные значения собираются в исходном типе, затем сортируются, после чего выполняется численно устойчивое окончательное вычисление. Коэффициент вычисляется по нормализованным попарным разностям соседних значений и возвращается в виде Float64, поэтому округляется с точностью Float64. Следовательно, функция потребляет O(n) памяти, где n — количество переданных значений. Значения NaN пропускаются, а бесконечные и отрицательные значения отклоняются.
Синтаксис
gini(expr)Аргументы
expr— выражение, возвращающее конечные неотрицательные числовые значения.(U)Int*,Float*илиDecimal
Возвращаемое значение
Коэффициент Джини или NaN, если значений менее 2 либо их сумма равна 0. Float64
Примеры
Равные значения
SELECT gini(x) FROM (SELECT 100 AS x FROM numbers(10));┌─gini(x)─┐
│ 0 │
└─────────┘Скошенное распределение
SELECT gini(x) FROM (SELECT number AS x FROM numbers(10));┌─────────────gini(x)─┐
│ 0.36666666666666664 │
└─────────────────────┘