> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Применяет критерий Колмогорова — Смирнова к выборкам из двух совокупностей.

# kolmogorovSmirnovTest

<div id="kolmogorovSmirnovTest">
  ## kolmogorovSmirnovTest
</div>

Добавленный в: v23.4.0

Применяет критерий Колмогорова — Смирнова к выборкам из двух совокупностей.

Значения обеих выборок находятся в столбце `sample_data`. Если `sample_index` равен 0, то значение в этой строке относится к выборке из первой совокупности. В противном случае оно относится к выборке из второй совокупности.
Выборки должны быть взяты из непрерывных одномерных распределений вероятностей.

**Синтаксис**

```sql theme={null}
kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_index)
```

**Параметры**

* `alternative` — Альтернативная гипотеза. (Необязательно, по умолчанию: 'two-sided'.) Пусть `F(x) and G(x)` — функции распределения первого и второго распределений соответственно. 'two-sided': нулевая гипотеза состоит в том, что выборки происходят из одного и того же распределения, например `F(x) = G(x)` для всех x. Альтернативная гипотеза состоит в том, что распределения не совпадают. 'greater': нулевая гипотеза состоит в том, что значения в первой выборке стохастически меньше, чем во второй, например функция распределения первого распределения лежит выше и, следовательно, левее, чем у второго. Это фактически означает, что `F(x) >= G(x)` для всех x. Альтернативная гипотеза в этом случае состоит в том, что `F(x) < G(x)` хотя бы для одного x. 'less': нулевая гипотеза состоит в том, что значения в первой выборке стохастически больше, чем во второй, например функция распределения первого распределения лежит ниже и, следовательно, правее, чем у второго. Это фактически означает, что `F(x) <= G(x)` для всех x. Альтернативная гипотеза в этом случае состоит в том, что `F(x) > G(x)` хотя бы для одного x. [`String`](/ru/reference/data-types/string)
* `computation_method` — Метод, используемый для вычисления p-value. (Необязательно, по умолчанию: 'auto'.) 'exact': вычисление выполняется с использованием точного распределения вероятностей статистики критерия. Требует больших вычислительных ресурсов и нецелесообразно, кроме случаев с небольшими выборками. 'asymp' ('asymptotic'): вычисление выполняется с использованием приближения. Для выборок большого размера точные и асимптотические p-value очень близки. 'auto': метод 'exact' используется, когда максимальный размер выборки меньше 10'000. [`String`](/ru/reference/data-types/string)

**Аргументы**

* `sample_data` — Данные выборки. [`(U)Int*`](/ru/reference/data-types/int-uint) или [`Float*`](/ru/reference/data-types/float) или [`Decimal`](/ru/reference/data-types/decimal)
* `sample_index` — Индекс выборки. [`(U)Int*`](/ru/reference/data-types/int-uint)

**Возвращаемое значение**

Возвращает кортеж из двух элементов: вычисленной статистики и вычисленного p-value. [`Tuple(Float64, Float64)`](/ru/reference/data-types/tuple)

**Примеры**

**Проверка одинаковости распределений**

```sql title=Query theme={null}
SELECT kolmogorovSmirnovTest('less', 'exact')(value, num)
FROM
(
    SELECT
        randNormal(0, 10) AS value,
        0 AS num
    FROM numbers(10000)
    UNION ALL
    SELECT
        randNormal(0, 10) AS value,
        1 AS num
    FROM numbers(10000)
)
```

```response title=Response theme={null}
┌─kolmogorovSmirnovTest('less', 'exact')(value, num)─┐
│ (0.009899999999999996,0.37528595205132287)         │
└────────────────────────────────────────────────────┘
```

**Тест на различие распределений**

```sql title=Query theme={null}
SELECT kolmogorovSmirnovTest('two-sided', 'exact')(value, num)
FROM
(
    SELECT
        randStudentT(10) AS value,
        0 AS num
    FROM numbers(100)
    UNION ALL
    SELECT
        randNormal(0, 10) AS value,
        1 AS num
    FROM numbers(100)
)
```

```response title=Response theme={null}
┌─kolmogorovSmirnovTest('two-sided', 'exact')(value, num)─┐
│ (0.4100000000000002,6.61735760482795e-8)                │
└─────────────────────────────────────────────────────────┘
```

**См. также**

* [Критерий Колмогорова — Смирнова](https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test)
