whiten#
- Covariance.whiten(x)[Quelle]#
Führt eine Whitening-Transformation mit Daten durch.
„Whitening“ („weiß“ wie in „weißes Rauschen“, bei dem jede Frequenz die gleiche Amplitude hat) transformiert eine Menge von Zufallsvariablen in eine neue Menge von Zufallsvariablen mit einer Einheits-Kovarianzmatrix auf der Diagonalen. Wenn eine Whitening-Transformation auf eine Stichprobe von Punkten angewendet wird, die gemäß einer multivariaten Normalverteilung mit Mittelwert Null verteilt sind, ist die Kovarianz der transformierten Stichprobe annähernd die Identitätsmatrix.
- Parameter:
- xarray_like
Ein Array von Punkten. Die letzte Dimension muss der Dimensionalität des Raumes entsprechen, 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 >>> 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]])