Ковариация – это мера того, как изменения одной переменной связаны с изменениями второй переменной. В частности, это мера степени линейной связи двух переменных.
Ковариационная матрица — это квадратная матрица, показывающая ковариацию между множеством различных переменных. Это может быть полезным способом понять, как различные переменные связаны в наборе данных.
В следующем примере показано, как создать ковариационную матрицу в 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()

Вы также можете изменить палитру, указав аргумент cmap:
sns.heatmap(cov, annot=True, fmt='g', xticklabels=labs, yticklabels=labs, cmap='YlGnBu')
plt.show()
Дополнительные сведения о стиле этой тепловой карты см. в документация Seaborn.