scipy.stats.Covariance.

colorize#

Covariance.colorize(x)[源代码]#

对数据执行着色变换。

“着色”(“着色”指的是“有色噪声”,其中不同的频率可能具有不同的幅度)将一组不相关的随机变量转换为一组新的具有所需协方差的随机变量。当将着色变换应用于根据具有单位协方差和零均值的多元正态分布分布的点样本时,变换后的样本的协方差近似于着色变换中使用的协方差矩阵。

参数:
xarray_like

一个点数组。最后一个维度必须与空间的维度相对应,即协方差矩阵中的列数。

返回:
x_array_like

变换后的点数组。

参考文献

[1]

“白化变换”。维基百科。https://en.wikipedia.org/wiki/Whitening_transformation

[2]

Novak, Lukas, 和 Miroslav Vorechovsky。“着色线性变换的推广”。 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
>>> cholesky = np.linalg.cholesky(cov_array)
>>> cov_object = stats.Covariance.from_cholesky(cholesky)
>>> x = rng.multivariate_normal(np.zeros(n), np.eye(n), size=(10000))
>>> x_ = cov_object.colorize(x)
>>> cov_data = np.cov(x_, rowvar=False)
>>> np.allclose(cov_data, cov_array, rtol=3e-2)
True