Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Transform data such that its covariance matrix is the identity matrix
ResourceFunction["WhiteningTransform"][data] whitens data such that its covariance matrix is the identity matrix. |
Show some original data:
In[1]:= | ![]() |
Out[2]= | ![]() |
Apply the whitening transform and show the result:
In[3]:= | ![]() |
Out[4]= | ![]() |
Verify that the covariance matrix is an identity matrix (up to small numerical errors):
In[5]:= | ![]() |
Out[5]= | ![]() |
Data can also be in higher dimensions:
In[6]:= | ![]() |
Out[7]= | ![]() |
Apply the transform:
In[8]:= | ![]() |
Out[9]= | ![]() |
Verify that the covariance matrix is the identity matrix up to numerical error:
In[10]:= | ![]() |
Out[10]= | ![]() |
Use the default method and the "SVD" method and check how far the covariance matrices deviate from the identity matrix:
In[11]:= | ![]() |
Out[14]= | ![]() |
Create some 6 dimensional correlated data and visualize it:
In[15]:= | ![]() |
Out[16]= | ![]() |
Show the plots of 2D projections:
In[17]:= | ![]() |
Out[17]= | ![]() |
Whiten the data and visualize the output to verify that all off-diagonal plots are "sphered" and the diagonals are on a line:
In[18]:= | ![]() |
Out[19]= | ![]() |
Verify that the covariance matrix is the identity matrix:
In[20]:= | ![]() |
Out[20]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License