scipy.stats.Covariance.

whiten#

Ковариация.whiten(x)[источник]#

Выполнить преобразование отбеливания данных.

«Отбеливание» («белый» как в «белом шуме», где каждая частота имеет одинаковую величину) преобразует набор случайных величин в новый набор случайных величин с ковариацией с единичной диагональю. Когда преобразование отбеливания применяется к выборке точек, распределённых согласно многомерному нормальному распределению с нулевым средним, ковариация преобразованной выборки приблизительно равна единичной матрице.

Параметры:
xarray_like

Массив точек. Последнее измерение должно соответствовать размерности пространства, т.е. количеству столбцов в ковариационной матрице.

Возвращает:
x_array_like

Преобразованный массив точек.

Ссылки

[1]

“Whitening Transformation”. Wikipedia. https://en.wikipedia.org/wiki/Whitening_transformation

[2]

Новак, Лукаш и Мирослав Вореховский. «Обобщение линейного преобразования раскраски». Transactions of VSB 18.2 (2018): 31-35. DOI:10.31490/tces-2018-0013

Примеры

>>> import numpy as np
>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> n = 3
>>> A = rng.random(size=(n, n))
>>> cov_array = A @ A.T  # make matrix symmetric positive definite
>>> precision = np.linalg.inv(cov_array)
>>> cov_object = stats.Covariance.from_precision(precision)
>>> x = rng.multivariate_normal(np.zeros(n), cov_array, size=(10000))
>>> x_ = cov_object.whiten(x)
>>> np.cov(x_, rowvar=False)  # near-identity covariance
array([[0.97862122, 0.00893147, 0.02430451],
       [0.00893147, 0.96719062, 0.02201312],
       [0.02430451, 0.02201312, 0.99206881]])