Перейти к основному содержимому
Перейти к основному содержимому

kolmogorovSmirnovTest

kolmogorovSmirnovTest

Появилось в версии v23.4

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

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

Синтаксис

kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_index)

Параметры

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

Аргументы

  • sample_data — Данные выборки. (U)Int* или Float* или Decimal
  • sample_index — Индекс выборки. (U)Int*

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

Возвращает кортеж из двух элементов: вычисленную статистику и вычисленное p-value. Tuple(Float64, Float64)

Примеры

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

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)
)
┌─kolmogorovSmirnovTest('less', 'exact')(value, num)─┐
│ (0.009899999999999996,0.37528595205132287)         │
└────────────────────────────────────────────────────┘

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

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)
)
┌─kolmogorovSmirnovTest('two-sided', 'exact')(value, num)─┐
│ (0.4100000000000002,6.61735760482795e-8)                │
└─────────────────────────────────────────────────────────┘

См. также