Перейти к основному содержимому
Версия: 2.0.x

mann_whitney_u_test

mann_whitney_u_test выполняет ранговый критерий Манна-Уитни для выборок, полученных из двух генеральных совокупностей. Критерий Манна-Уитни U является непараметрическим критерием, который можно использовать для определения того, были ли две генеральные совокупности выбраны из одного и того же распределения.

Синтаксис

MANN_WHITNEY_U_TEST (sample_data, sample_treatment[, alternative[, continuity_correction]])

Параметры

  • sample_data: значение данных выборки. Должно быть числового типа данных.

  • sample_treatment: индекс данных выборки, где каждый элемент указывает на группу обработки, к которой принадлежит соответствующая выборка. Значения должны быть типа boolean, где false представляет первую группу, а true представляет вторую группу.

  • alternative (опционально): строковая константа, указывающая альтернативную гипотезу. Может принимать одно из следующих значений:

    • 'two-sided': значение по умолчанию. Проверяет, различаются ли средние значения двух генеральных совокупностей.
    • 'less': проверяет, меньше ли среднее значение первой генеральной совокупности, чем среднее значение второй генеральной совокупности.
    • 'greater': проверяет, больше ли среднее значение первой генеральной совокупности, чем среднее значение второй генеральной совокупности.
  • continuity_correction (опционально): булева константа, указывающая, следует ли применять поправку на непрерывность. Поправка на непрерывность корректирует статистику U на 0.5 в направлении среднего значения распределения U, что может повысить точность теста для малых размеров выборки. Значение по умолчанию — true.

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

Функция возвращает json-массив, содержащий следующие два элемента:

Статистику U Манна-Уитни и p-значение, связанное с тестом.

Примечания по использованию

Эта функция игнорирует NULL.

Примеры

Предположим, существует таблица с именем testing_data со следующими данными.

create table testing_data (
id int,
score int,
treatment boolean
)
properties(
"replication_num" = "1"
);

insert into testing_data values
(1, 80, false),
(2, 100, false),
(3, NULL, false),
(4, 60, true),
(5, 70, true),
(6, 85, true);
select * from testing_data;
+------+-------+-----------+
| id | score | treatment |
+------+-------+-----------+
| 1 | 80 | 0 |
| 2 | 100 | 0 |
| 3 | NULL | 0 |
| 4 | 60 | 1 |
| 5 | 70 | 1 |
| 6 | 85 | 1 |
+------+-------+-----------+

Запрос:

SELECT MANN_WHITNEY_U_TEST(score, treatment) FROM testing_data;

Результат:

+---------------------------------------+
| mann_whitney_u_test(score, treatment) |
+---------------------------------------+
| [5, 0.38647623077123283] |
+---------------------------------------+

Запрос:

SELECT MANN_WHITNEY_U_TEST(score, treatment, 'less') FROM testing_data;

Результат:

+-----------------------------------------------+
| mann_whitney_u_test(score, treatment, 'less') |
+-----------------------------------------------+
| [5, 0.9255426634106172] |
+-----------------------------------------------+

Запрос:

SELECT MANN_WHITNEY_U_TEST(score, treatment, 'two-sided', 0) FROM testing_data;

Результат:

+-------------------------------------------------------+
| mann_whitney_u_test(score, treatment, 'two-sided', 0) |
+-------------------------------------------------------+
| [5, 0.2482130789899235] |
+-------------------------------------------------------+