Var (x) и cov (x, x) не дают одинакового результата в numpy

Свойство ковариации состоит в том, что cov (x, x) = var (x)

Однако в numpy я не получаю тот же результат.

from numpy import var, cov

x = range(10)
y = var(x)
z = cov(x, x)[0][1]
print y, z

Я делаю что-то неправильно здесь? Как я могу получить правильный результат?

Ответы

Ответ 1

Вы должны использовать z = cov (x, bias = 1) для нормализации по N, так как var также является нормой по N (согласно this

Ответ 2

Значение ddof по умолчанию cov (None) и var (0) различно. Попробуйте указать ddof (или смещение):

>>> cov(x, x, ddof=0)
array([[ 8.25,  8.25],
       [ 8.25,  8.25]])
>>> var(x)
8.25