Почему numpy cov диагональные элементы и функции var имеют разные значения?
In [127]: x = np.arange(2) In [128]: np.cov(x,x) Out[128]: array([[ 0.5, 0.5], [ 0.5, 0.5]]) In [129]: x.var() Out[129]: 0.25
Почему это поведение? Я считаю, что диагональные элементы ковариационной матрицы должны быть дисперсией ряда.
- как получить значение нескольких максим в массиве в python
- bincount в Numpypy
- scipy – генерировать случайные величины с корреляциями
- Группировка массива 2D numpy в среднем
- Фильтровать и суммировать разные столбцы в массиве numpy
В numpy cov
по умолчанию задает «степень дельта свободы» 1, а var
умолчанию – ddof 0. Из заметок в numpy.var
Notes ----- The variance is the average of the squared deviations from the mean, ie, ``var = mean(abs(x - x.mean())**2)``. The mean is normally calculated as ``x.sum() / N``, where ``N = len(x)``. If, however, `ddof` is specified, the divisor ``N - ddof`` is used instead. In standard statistical practice, ``ddof=1`` provides an unbiased estimator of the variance of a hypothetical infinite population. ``ddof=0`` provides a maximum likelihood estimate of the variance for normally distributed variables.
Поэтому вы можете заставить их согласиться, взяв:
In [69]: cov(x,x)#defaulting to ddof=1 Out[69]: array([[ 0.5, 0.5], [ 0.5, 0.5]]) In [70]: x.var(ddof=1) Out[70]: 0.5 In [71]: cov(x,x,ddof=0) Out[71]: array([[ 0.25, 0.25], [ 0.25, 0.25]]) In [72]: x.var()#defaulting to ddof=0 Out[72]: 0.25
- Структура данных для базы данных текстовых материалов
- Как постоянно контролировать ритм-бокс для изменения трека с помощью python revisited
- NumPy: Ошибочный результат при изменении массива, используя себя
- Локальная интерполяция более низкого порядка неявных кривых в Python
- преобразовать список / кортеж int строк в int
- Вставка строки в базу данных pandas на основе значения строки?
- Быстрый предохранитель близких точек в numpy-2d (без петли)
- Работа с очень большими массивами – Numpy
- Установка значения массива numpy на основе нескольких критериев
- Решение линейной системы над целыми числами с numpy
- numpy: использование оператора – с массивами, содержащими None