Wolfram Function Repository
Instantuse addon 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 offdiagonal 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