scipy.stats.Covariance.

colorize#

Covariance.colorize(x)[source]#

對資料執行色彩化轉換。

「色彩化」(「色彩」如「有色雜訊」中的「色彩」,其中不同頻率可能有不同幅度)將一組不相關的隨機變數轉換為一組新的隨機變數,使其具有所需的共變異數。當將色彩化轉換應用於根據具有單位共變異數和零均值的多變量常態分佈分佈的點樣本時,轉換後樣本的共變異數近似於色彩化轉換中使用的共變異數矩陣。

參數:
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