Статистика

Как создать ковариационную матрицу в Python

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

Ковариация – это мера того, как изменения одной переменной связаны с изменениями второй переменной. В частности, это мера степени линейной связи двух переменных.

Ковариационная матрица — это квадратная матрица, показывающая ковариацию между множеством различных переменных. Это может быть полезным способом понять, как различные переменные связаны в наборе данных.

В следующем примере показано, как создать ковариационную матрицу в Python.

Как создать ковариационную матрицу в Python


Выполните следующие шаги: o создать ковариационную матрицу в Python.

Шаг 1. Создайте набор данных.

Сначала мы создадим набор данных, содержащий результаты тестов 10 разных учащихся по трем предметам: математике, естественным наукам. и история.

import numpy as np

math = [84, 82, 81, 89, 73, 94, 92, 70, 88, 95]
science = [85, 82, 72, 77, 75, 89, 95, 84, 77, 94]
history = [97, 94, 93, 95, 88, 82, 78, 84, 69, 78]

data = np.array([math, science, history])

Шаг 2. Создайте ковариационную матрицу.

Далее мы создадим ковариационную матрицу для этого набора данных с помощью функции numpy cov(), указав, что bias = True, чтобы мы могли рассчитать ковариационную матрицу генеральной совокупности.

np.cov(data, bias=True)

array([[ 64.96,  33.2 , -24.44],
       [ 33.2 ,  56.4 , -24.1 ],
       [-24.44, -24.1 ,  75.56]])

Шаг 3. Интерпретация ковариационной матрицы.

Значения по диагоналям матрицы — это просто дисперсии каждого субъекта. Например:

  • Дисперсия оценок по математике составляет 64,96
  • Дисперсия оценок по естественным наукам составляет 56,4
  • Дисперсия оценок истории составляет 75,56

Другие значения в матрице представляют собой ковариации между различными субъектами. Например:

  • Ковариация между оценками по математике и естественным наукам составляет 33,2
  • Ковариация между оценками по математике и истории составляет -24,44
  • Ковариация между оценками по естественным наукам и истории составляет -24,1

положительное число для ковариации указывает, что две переменные имеют тенденцию увеличиваться или уменьшаться в тандеме. Например, математика и естествознание имеют положительную ковариацию (33,2), что указывает на то, что учащиеся, получившие высокие баллы по математике, также, как правило, получают высокие баллы по естественным наукам. И наоборот, учащиеся с низкими баллами по математике также имеют низкие баллы по естественным наукам.

Отрицательное число ковариации указывает на то, что по мере увеличения одной переменной вторая переменная имеет тенденцию к уменьшению. Например, математика и история имеют отрицательную ковариацию (-24,44), что указывает на то, что учащиеся с высокими баллами по математике, как правило, имеют низкие баллы по истории. И наоборот, учащиеся с низкими баллами по математике, как правило, получают высокие баллы по истории.

Шаг 4. Визуализируйте ковариационная матрица (необязательно).

Вы можете визуализировать ковариационную матрицу, используя функцию heatmap() из пакета seaborn:

import seaborn as sns
import matplotlib.pyplot as plt

cov = np.cov(data, bias=True)
labs = ['math', 'science', 'history']

sns.heatmap(cov, annot=True, fmt='g', xticklabels=labs, yticklabels=labs)
plt.show()
Covariance matrix in Python

Вы также можете изменить палитру, указав аргумент cmap:

sns.heatmap(cov, annot=True, fmt='g', xticklabels=labs, yticklabels=labs, cmap='YlGnBu')
plt.show()

Дополнительные сведения о стиле этой тепловой карты см. в документация Seaborn.

Еще от кодкамп
Статистика

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

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