scipy.stats.mstats.

zscore#

scipy.stats.mstats.zscore(a, ось=0, ddof=0, nan_policy='propagate')[источник]#

Вычислить z-оценку.

Вычислить z-оценку каждого значения в выборке относительно среднего значения и стандартного отклонения выборки.

Параметры:
aarray_like

Объект, подобный массиву, содержащий выборочные данные.

осьint или None, опционально

Ось, вдоль которой выполняется операция. По умолчанию 0. Если None, вычисляется по всему массиву a.

ddofint, необязательный

Поправка на степени свободы при вычислении стандартного отклонения. По умолчанию 0.

nan_policy{'propagate', 'raise', 'omit'}, опционально

Определяет, как обрабатывать входные данные, содержащие nan. 'propagate' возвращает nan, 'raise' вызывает ошибку, 'omit' выполняет вычисления, игнорируя значения nan. По умолчанию используется 'propagate'. Обратите внимание, что при значении 'omit' значения nan во входных данных также передаются на выход, но они не влияют на z-оценки, вычисленные для значений, не являющихся nan.

Возвращает:
zscorearray_like

Z-оценки, стандартизированные по среднему значению и стандартному отклонению входного массива a.

Смотрите также

numpy.mean

Среднее арифметическое

numpy.std

Среднеквадратическое отклонение

scipy.stats.gzscore

Геометрический стандартный балл

Примечания

Эта функция сохраняет подклассы ndarray и также работает с матрицами и маскированными массивами (использует asanyarray вместо asarray для параметров).

zscore имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

н/д

См. Поддержка стандарта array API для получения дополнительной информации.

Ссылки

[1]

“Стандартная оценка”, Википедия, https://en.wikipedia.org/wiki/Standard_score.

[2]

Huck, S. W., Cross, T. L., Clark, S. B, "Overcoming misconceptions about Z-scores", Teaching Statistics, vol. 8, pp. 38-40, 1986

Примеры

>>> import numpy as np
>>> a = np.array([ 0.7972,  0.0767,  0.4383,  0.7866,  0.8091,
...                0.1954,  0.6307,  0.6599,  0.1065,  0.0508])
>>> from scipy import stats
>>> stats.zscore(a)
array([ 1.1273, -1.247 , -0.0552,  1.0923,  1.1664, -0.8559,  0.5786,
        0.6748, -1.1488, -1.3324])

Вычисление вдоль указанной оси, используя n-1 степеней свободы (ddof=1) для вычисления стандартного отклонения:

>>> b = np.array([[ 0.3148,  0.0478,  0.6243,  0.4608],
...               [ 0.7149,  0.0775,  0.6072,  0.9656],
...               [ 0.6341,  0.1403,  0.9759,  0.4064],
...               [ 0.5918,  0.6948,  0.904 ,  0.3721],
...               [ 0.0921,  0.2481,  0.1188,  0.1366]])
>>> stats.zscore(b, axis=1, ddof=1)
array([[-0.19264823, -1.28415119,  1.07259584,  0.40420358],
       [ 0.33048416, -1.37380874,  0.04251374,  1.00081084],
       [ 0.26796377, -1.12598418,  1.23283094, -0.37481053],
       [-0.22095197,  0.24468594,  1.19042819, -1.21416216],
       [-0.82780366,  1.4457416 , -0.43867764, -0.1792603 ]])

Пример с nan_policy='omit':

>>> x = np.array([[25.11, 30.10, np.nan, 32.02, 43.15],
...               [14.95, 16.06, 121.25, 94.35, 29.81]])
>>> stats.zscore(x, axis=1, nan_policy='omit')
array([[-1.13490897, -0.37830299,         nan, -0.08718406,  1.60039602],
       [-0.91611681, -0.89090508,  1.4983032 ,  0.88731639, -0.5785977 ]])