scipy.stats.Covariance.

from_diagonal#

статический Ковариация.from_diagonal(диагональ)[источник]#

Возвращает представление ковариационной матрицы из её диагонали.

Параметры:
диагональarray_like

Диагональные элементы диагональной матрицы.

Примечания

Пусть диагональные элементы диагональной ковариационной матрицы \(D\) хранится в векторе \(d\).

Когда все элементы \(d\) строго положительны, отбеливание точки данных \(x\) выполняется путем вычисления \(x \cdot d^{-1/2}\), где обратный квадратный корень можно взять поэлементно. \(\log\det{D}\) рассчитывается как \(-2 \sum(\log{d})\), где \(\log\) операция выполняется поэлементно.

Это Covariance класс поддерживает вырожденные ковариационные матрицы. При вычислении _log_pdet, неположительные элементы \(d\) игнорируются. Отбеливание не определено корректно, когда точка для отбеливания не лежит в пространстве столбцов ковариационной матрицы. Принятое здесь соглашение заключается в обработке обратного квадратного корня неположительных элементов \(d\) как нули.

Примеры

Подготовить симметричную положительно определённую ковариационную матрицу A и точка данных x.

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> n = 5
>>> A = np.diag(rng.random(n))
>>> x = rng.random(size=n)

Извлечь диагональ из A и создать Covariance объект.

>>> d = np.diag(A)
>>> cov = stats.Covariance.from_diagonal(d)

Сравните функциональность Covariance объект против эталонных реализаций.

>>> res = cov.whiten(x)
>>> ref = np.diag(d**-0.5) @ x
>>> np.allclose(res, ref)
True
>>> res = cov.log_pdet
>>> ref = np.linalg.slogdet(A)[-1]
>>> np.allclose(res, ref)
True