kendalltau#
- scipy.stats.kendalltau(x, y, *, nan_policy='propagate', метод='auto', вариант='b', альтернатива='two-sided', ось=None, keepdims=False)[источник]#
Вычислите тау Кендалла, меру корреляции для порядковых данных.
Тау Кендалла — это мера соответствия между двумя ранжировками. Значения, близкие к 1, указывают на сильное согласие, а значения, близкие к -1, указывают на сильное расхождение. Реализованы два варианта тау Кендалла: tau-b (по умолчанию) и tau-c (также известный как тау-c Стюарта). Они отличаются только тем, как они нормализованы для попадания в диапазон от -1 до 1; проверки гипотез (их p-значения) идентичны. Исходный тау-a Кендалла не реализован отдельно, потому что и tau-b, и tau-c сводятся к tau-a при отсутствии связей.
- Параметры:
- x, yarray_like
Arrays of rankings, of the same shape. If arrays are not 1-D, they will be flattened to 1-D.
- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- метод{‘auto’, ‘asymptotic’, ‘exact’}, опционально
Определяет, какой метод используется для вычисления p-значения [5]. Доступны следующие опции (по умолчанию 'auto'):
‘auto’: выбирает подходящий метод на основе компромисса между скоростью и точностью
‘asymptotic’: использует нормальную аппроксимацию, подходящую для больших выборок
'exact': вычисляет точное p-значение, но может использоваться только при отсутствии связей. С увеличением размера выборки время вычисления 'exact' может расти, а результат может терять точность.
- вариант{‘b’, ‘c’}, optional
Определяет, какой вариант тау Кендалла возвращается. По умолчанию 'b'.
- альтернатива{‘two-sided’, ‘less’, ‘greater’}, необязательный
Определяет альтернативную гипотезу. По умолчанию 'two-sided'. Доступны следующие опции:
'two-sided': ранговая корреляция ненулевая
‘less’: ранговая корреляция отрицательна (меньше нуля)
‘greater’: ранговая корреляция положительна (больше нуля)
- осьint или None, по умолчанию: None
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- resSignificanceResult
Объект, содержащий атрибуты:
- статистикаfloat
Статистика тау.
- p-значениеfloat
p-значение для проверки гипотезы, нулевая гипотеза которой — отсутствие связи, tau = 0.
- Вызывает:
- ValueError
Если nan_policy это 'omit' и вариант не является 'b' или если метод равно 'exact' и есть связи между x и y.
Смотрите также
spearmanrВычисляет коэффициент корреляции Спирмена.
theilslopesВычисляет оценку Тейла-Сена для набора точек (x, y).
weightedtauВычисляет взвешенную версию тау Кендалла.
- Тест тау Кендалла
Расширенный пример
Примечания
Используемое определение тау Кендалла [2]:
tau_b = (P - Q) / sqrt((P + Q + T) * (P + Q + U)) tau_c = 2 (P - Q) / (n**2 * (m - 1) / m)
где P - количество согласованных пар, Q - количество несогласованных пар, T - количество связанных пар только в x, и U — количество связанных пар только в y. Если ничья возникает для одной и той же пары в обоих x и y, он не добавляется ни в T, ни в U. n - общее количество выборок, а m - количество уникальных значений в любом из x или y, в зависимости от того, что меньше.
Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.Ссылки
[1]Морис Г. Кендалл, «Новая мера ранговой корреляции», Biometrika, том 30, № 1/2, стр. 81-93, 1938.
[2]Морис Г. Кендалл, «Обработка связей в задачах ранжирования», Biometrika Vol. 33, No. 3, pp. 239-251. 1945.
[3]Готтфрид Э. Ноэтер, “Элементы непараметрической статистики”, John Wiley & Sons, 1967.
[4]Peter M. Fenwick, “A new data structure for cumulative frequency tables”, Software: Practice and Experience, Vol. 24, No. 3, pp. 327-336, 1994.
[5]Maurice G. Kendall, «Rank Correlation Methods» (4-е издание), Charles Griffin & Co., 1970.
Примеры
>>> from scipy import stats >>> x1 = [12, 2, 1, 12, 2] >>> x2 = [1, 4, 7, 1, 0] >>> res = stats.kendalltau(x1, x2) >>> res.statistic -0.47140452079103173 >>> res.pvalue 0.2827454599327748
Для более подробного примера см. Тест тау Кендалла.