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


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

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

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

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

Используйте следующие шаги, чтобы создать ковариационную матрицу в 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() , указав, что смещение = 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()

Ковариационная матрица в Python

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

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

Ковариационная матрица в Python

Более подробную информацию о том, как стилизовать эту тепловую карту, можно найти в документации seaborn .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *