Spectral averages in PCA

From Dynamo
Jump to: navigation, search


Spectral averages are a sort of idealized averages computed by direct addition of eigenvolumes.

When you are using the PCA method, it is frequently frustrating not to detect a clear trend in the histograms of particle eigencomponents. Nevertheless, you might still manage to identify salient features in the eigenvectors. This might suggest you to give it a try to create a classification based on that particular eigenvolume, adding for instance all the particles above and below a given threshold (creating thus two subaverages). Then you might move to evaluate the results, move to a different eigenvolume and repeat the analysis, and so on. This process is tiresome, specially because each time that you run a subaverage, you are adding possibly thousands of particles, which takes time and prevents you from evaluating the results of your analysis on the fly.

There is a workaround that allows you to quickly visualize how the impact of one eigenvolume would work on the data: you accelerate the averages by just adding the eigenvolumes weighted by averaged sets of eigencomponents.

The rational for this, is that the very basis of the PCA theory is that each -aligned- particle can be represented by its linear expansion on the basis of the eigenvolumes. Thus, averaging particles is nothing else than visiting each eigenvolume separately, computing a weight as the average of all particle eigencomponents for that eigenvolume together. Then all the so weighted eigenvolumes get averaged.

Experiment indexing

Whenever you use the dynamo_ccmatrix_analysis GUI to run a subaverage, the results are assigned to a particular experiment ID. This is just an integer number. This allows you to store all your attempts to classify the data with different parameters.

Technical information The database item subaverage needs an additional locator for the experiment number.

Command line use

Frequently, you might want to experiment with spectral averages outside the GUI, so that you can organize as you please the results of your different analysis. For this, the best approach is the command dpkpca.ideal.createSubaverages.

o = dpkpca.ideal.createSubaverages(table,membershipMatrix,basis);