Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

gini

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 │
└─────────────────────┘
Navigation