numpy.cov()

Функция numpy.cov() вычисляет ковариационную матрицу набора переменных. Ковариация показывает совместную изменчивость двух случайных величин: положительная — переменные растут вместе, отрицательная — одна растёт, другая убывает.

Сигнатура

numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None,
          fweights=None, aweights=None, dtype=None)

Параметры

  • m — массив или набор данных. По умолчанию каждая строка — отдельная переменная, столбцы — наблюдения.

  • y — дополнительный набор переменных (опционально).

  • rowvar — если True (по умолчанию), строки = переменные; если False, переменные в столбцах.

  • bias — нормировка: False — деление на N-1 (несмещённая), True — на N.

  • ddof — поправка степеней свободы (перекрывает bias).

  • fweights, aweights — частотные и аналитические веса.

Возвращаемое значение

ndarray — квадратная ковариационная матрица. Размерность (N, N), где N — число переменных. Диагональ содержит дисперсии переменных.

Примеры

Пример 1. Ковариация двух переменных.

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
print(np.cov(x, y))
[[ 2.5  5. ]
 [ 5.  10. ]]

Пример 2. Дисперсия одной переменной.

data = np.array([10, 12, 14, 16, 18])
print(np.cov(data))
10.0

Пример 3. Несколько датчиков температуры.

# Три датчика, по 4 измерения каждый
sensors = np.array([[20.1, 20.5, 21.0, 20.8],
                    [20.0, 20.4, 20.9, 20.7],
                    [19.5, 19.9, 20.4, 20.2]])
cov_matrix = np.cov(sensors)
print(cov_matrix)
[[0.14916667 0.14916667 0.14916667]
 [0.14916667 0.14916667 0.14916667]
 [0.14916667 0.14916667 0.14916667]]

Пример 4. Смещённая оценка (bias=True).

a = np.array([1, 2, 3, 4])
print("Несмещённая:", np.cov(a))
print("Смещённая:  ", np.cov(a, bias=True))
Несмещённая: 1.6666666666666667
Смещённая:   1.25

Пример 5. Корреляция тока и напряжения.

voltage = np.array([3.3, 3.4, 3.5, 3.6, 3.7])
current = np.array([0.10, 0.11, 0.12, 0.13, 0.14])
c = np.cov(voltage, current)
print(f"Cov(V,I) = {c[0,1]:.5f}")
Cov(V,I) = 0.00500

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.