Статистика

Как рассчитать Z-показатели в Python

В: Статистика

В статистике z-score говорит нам, на сколько стандартных отклонений значение отличается от среднее значение. Мы используем следующую формулу для расчета z -score:

z = (X – μ) / σ

где:

  • X – это одно необработанное значение данных
  • μ – среднее значение генеральной совокупности
  • σ – стандартное отклонение генеральной совокупности

В этом руководстве объясняется, как рассчитать z-значения для необработанных значений данных. в Python.

Как рассчитать Z-значения в Python

Мы можем рассчитать z-показатели в Python, используя scipy.stats.zscore, который использует следующий синтаксис:

scipy.stats.zscore(a, axis=0, ddof=0, nan_policy=’propagate’)

где:

  • a: массив, подобный объекту, содержащему данные\n
  • axis: ось, по которой рассчитываются z-показатели. По умолчанию 0.
  • ddof: коррекция степеней свободы при расчете стандарта отклонение. По умолчанию 0.
  • nan_policy: что делать, если ввод содержит nan. По умолчанию используется распространение, которое возвращает nan. raise выдает ошибку, а omit выполняет вычисления, игнорируя значения nan.

В следующих примерах показано, как использовать эту функцию для вычисления z-показателей для одномерных массивов numpy, многомерных массивов numpy и фреймов данных Pandas.

Одномерные массивы Numpy

Шаг 1. Импортируйте модули.

import pandas as pd
import numpy as np
import scipy.stats as stats

Шаг 2. Создайте массив значений.

data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])

Шаг 3. Рассчитайте z-значения для каждого значения в массиве.

stats.zscore(data)
# [-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]

Каждый z-показатель говорит нам, на сколько стандартных отклонений отдельное значение отличается от среднего. Например:

  • Первое значение 6 в массиве равно 1,394 стандартный отклонений ниже среднего значения.
  • Пятое значение в массиве 13 составляет 0 стандартных отклонений от среднего, т. е. равно среднему.
  • Последнее значение 22 в массиве: 1,793 стандартный отклонений над средним.

Многомерный Numpy Массивы

Если у нас есть многомерный массив, мы можем использовать axis, чтобы указать, что мы хотим вычислить каждую z-оценку относительно своего собственного массива. Например, предположим, что у нас есть следующий многомерный массив:

data = np.array([[5, 6, 7, 7, 8],
                 [8, 8, 8, 9, 9],
                 [2, 2, 4, 4, 5]])

Мы можем использовать следующий синтаксис для вычисления z-показателей для каждого массива:

stats.zscore(data, axis=1)

# [[-1.569 -0.588 0.392 0.392 1.373]
# [-0.816 -0.816 -0.816 1.225 1.225]
# [-1.167 -1.167 0.5 0.5 1.333]]

Z-значения для каждого отдельного значения отображаются относительно массива, в котором они находятся. Например:

  • Первое значение 5 в первом массиве равно 1,159 стандартным отклонениям ниже среднего значения его массива.
  • Первое значение 8во втором массиве равно стандартным отклонениям ниже среднее значение его массива.
  • Первое значение 2 в третьем массиве равно 1,167 стандартные отклонения ниже среднего значения его массива.

Pandas DataFrames

Предположим, что у нас Pandas DataFrame:

data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

#  A B C
#0 8 0 9
#1 4 0 7
#2 9 6 8
#3 1 8 1
#4 8 0 8

Мы можем использовать функцию apply чтобы рассчитать z-показатель отдельных значений по столбцу:

data.apply(stats.zscore)

#          A         B         C
#0  0.659380 -0.802955  0.836080
#1 -0.659380 -0.802955  0.139347
#2  0.989071  0.917663  0.487713
#3 -1.648451  1.491202 -1.950852
#4  0.659380 -0.802955  0.487713

Z-значения для каждого отдельного значения отображаются относительно столбца, в котором они находятся. Например:

  • Первое значение 8 в первом столбце на 0,659 стандартного отклонения выше среднего значения этого столбца.
    Первое значение 0 во втором столбце на 0,803 стандартного отклонения ниже среднего значения этого столбца.
    Первое значение 9 в третьем столбце на 0,836 стандартных отклонения выше среднего значения этого столбца.
Еще от кодкамп
Статистика

Как рассчитать коэффициент внутриклассовой корреляции в Python

Коэффициент внутриклассовой корреляции (ICC или intraclass correlation coefficient) используется, чтобы определить, могут ли предметы или предметы быть надежно оценены разными
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.