scipy.stats.

pointbiserialr#

scipy.stats.pointbiserialr(x, y, *, ось=0, nan_policy='propagate', keepdims=False)[источник]#

Вычислить коэффициент точечно-бисериальной корреляции и его p-значение.

Точечно-бисериальная корреляция используется для измерения связи между бинарной переменной x и непрерывной переменной y. Как и другие коэффициенты корреляции, этот варьируется от -1 до +1, где 0 означает отсутствие корреляции. Корреляции -1 или +1 подразумевают детерминированную связь.

Эта функция может быть вычислена с использованием сокращенной формулы, но дает тот же результат, что и pearsonr.

Параметры:
xarray_like булевых значений

Входной массив.

yarray_like

Входной массив.

осьint или None, по умолчанию: 0

Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если None, вход будет сведён в одномерный массив перед вычислением статистики.

nan_policy{‘propagate’, ‘omit’, ‘raise’}

Определяет, как обрабатывать входные значения NaN.

  • propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.

  • omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.

  • raise: если присутствует NaN, то ValueError будет вызвано исключение.

keepdimsbool, по умолчанию: False

Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.

Возвращает:
res: SignificanceResult

Объект, содержащий атрибуты:

статистикаfloat

Значение R.

p-значениеfloat

Двустороннее p-значение.

Примечания

pointbiserialr использует t-тест с n-1 степеней свободы. Эквивалентно pearsonr.

Значение точечно-бисериальной корреляции может быть вычислено из:

\[r_{pb} = \frac{\overline{Y_1} - \overline{Y_0}} {s_y} \sqrt{\frac{N_0 N_1} {N (N - 1)}}\]

Где \(\overline{Y_{0}}\) и \(\overline{Y_{1}}\) являются средними значениями метрических наблюдений, закодированных как 0 и 1 соответственно; \(N_{0}\) и \(N_{1}\) являются количеством наблюдений, закодированных как 0 и 1 соответственно; \(N\) это общее количество наблюдений и \(s_{y}\) является стандартным отклонением всех метрических наблюдений.

Значение \(r_{pb}\) что значительно отличается от нуля, полностью эквивалентно значимой разнице в средних между двумя группами. Таким образом, t-критерий для независимых выборок с \(N-2\) степени свободы могут использоваться для проверки, является ли \(r_{pb}\) не равно нулю. Связь между t-статистикой для сравнения двух независимых групп и \(r_{pb}\) задается формулой:

\[t = \sqrt{N - 2}\frac{r_{pb}}{\sqrt{1 - r^{2}_{pb}}}\]

Начиная с SciPy 1.9, np.matrix входные данные (не рекомендуется для нового кода) преобразуются в np.ndarray перед выполнением вычисления. В этом случае результатом будет скаляр или np.ndarray подходящей формы вместо 2D np.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр или np.ndarray вместо маскированного массива с mask=False.

Ссылки

[1]

J. Lev, "The Point Biserial Coefficient of Correlation", Ann. Math. Statist., Vol. 20, no.1, pp. 125-126, 1949.

[2]

Р.Ф. Тейт, «Корреляция между дискретной и непрерывной переменной. Точечно-бисериальная корреляция.», Ann. Math. Statist., Vol. 25, № 3, стр. 603-607, 1954.

[3]

Д. Корнброт “Точечная бисериальная корреляция”, В Wiley StatsRef: Справочник по статистике (ред. Н. Балакришнан и др.), 2014. DOI:10.1002/9781118445112.stat06227

Примеры

>>> import numpy as np
>>> from scipy import stats
>>> a = np.array([0, 0, 0, 1, 1, 1, 1])
>>> b = np.arange(7)
>>> stats.pointbiserialr(a, b)
(0.8660254037844386, 0.011724811003954652)
>>> stats.pearsonr(a, b)
(0.86602540378443871, 0.011724811003954626)
>>> np.corrcoef(a, b)
array([[ 1.       ,  0.8660254],
       [ 0.8660254,  1.       ]])