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] |
+-------------------------------------------------------+