Функция cov
Функция cov вычисляет ковариационную матрицу для переданных массивов данных. Ковариация показывает направление и силу линейной связи между переменными: положительные значения указывают на прямую зависимость, отрицательные - на обратную, а близкие к нулю говорят об отсутствии линейной связи. Первым параметром функция принимает массив или список массивов, вторым параметром можно задать смещение степеней свободы ddof для коррекции выборочной ковариации.
Синтаксис
np.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None, *, dtype=None)
Пример
Вычислим ковариационную матрицу для двух наборов данных, где значения изменяются согласованно:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [2, 4, 6, 8, 10]])
res = np.cov(arr)
print(res)
Результат выполнения кода:
[[ 2.5 5. ]
[ 5. 10. ]]
Пример
Рассмотрим случай с отрицательной ковариацией, когда одна переменная растёт, а другая убывает:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [10, 8, 6, 4, 2]])
res = np.cov(arr)
print(res)
Результат выполнения кода:
[[ 2.5 -5. ]
[-5. 10. ]]
Пример
Используем параметр ddof для вычисления несмещённой оценки ковариации (деление на n-1 вместо n):
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.cov(arr, ddof=1)
print(res)
Результат выполнения кода:
[[2.5]]
Пример
Вычислим ковариационную матрицу между двумя отдельными массивами, передав их через параметр y:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([5, 4, 3, 2, 1])
res = np.cov(arr1, y=arr2)
print(res)
Результат выполнения кода:
[[ 2.5 -2.5]
[-2.5 2.5]]