scipy.stats.Covariance.

colorize#

Covariance.colorize(x)[Quelle]#

Führt eine Farbtransformation auf Daten durch.

Die „Colorizing“ („Farbe“ im Sinne von „farbiges Rauschen“, bei dem verschiedene Frequenzen unterschiedliche Amplituden haben können) transformiert eine Menge unkorrelierter Zufallsvariablen in eine neue Menge von Zufallsvariablen mit der gewünschten Kovarianz. Wenn eine Coloring-Transformation auf eine Stichprobe von Punkten angewendet wird, die gemäß einer multivariaten Normalverteilung mit Identitätskovarianz und Nullmittelwert verteilt sind, ist die Kovarianz der transformierten Stichprobe annähernd die Kovarianzmatrix, die bei der Coloring-Transformation verwendet wird.

Parameter:
xarray_like

Ein Array von Punkten. Die letzte Dimension muss mit der Dimensionalität des Raums übereinstimmen, d. h. der Anzahl der Spalten in der Kovarianzmatrix.

Rückgabe:
x_array_like

Das transformierte Array von Punkten.

Referenzen

[1]

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

[2]

Novak, Lukas und Miroslav Vorechovsky. „Generalization of coloring linear transformation“. Transactions of VSB 18.2 (2018): 31-35. DOI:10.31490/tces-2018-0013

Beispiele

>>> 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