PManalyzer - A software tool to analyze human movement

!!! NEW !!!  Visit our Youtube-Channel

Download Area

Stable version     
Quick start guide: PManalyzer_stable

Beta version     
Quick start guide: PManalyzer_beta
Please report any problems, bugs or new ideas to:

The PManalyzer is a MatlabTM-based software tool facilitating the application of a principal component analysis on motion tracking data. Further available downloads are:

  • a comprehensive User's manual (pdf file) for the PManalyzer software.         
  • Sample data (zip file) - Data of a balance exercise (tandem stance) suitable as input data for the PManalyzer. 

The PManalyzer was published as part of an open access paper in the journal Frontiers in Neuroinformatics. Please consider citing this paper, should you apply the PManalyzer in your research. The paper includes several video files (zip file) that might be useful when assessing the applicability of the PManalyzer.

We also provide a collection of peer-reviewed scientific papers (pdf file) that apply the PManalyzer (will be updated in irregular intervals - feel free to send us your paper if you want it included in this list).

Background Information

What does PCA do when applied in human movement analysis?

There are actually several ways, how this question can be answered:

  • PCA decomposes a complex multi-segment movement into movement components ("Principal Movements", PMs).
  • PCA reveals patterns of how the segment movements are correlated. 
  • PCA can be used to reduce the dimensionality of the data: since the first few PMs usually represent a large fraction of the postural variance, one may decide to approximate the movement by only considering a selected number of PMs.

The most accurate description of what PCA does is probably this one:

  • PCA provides a coordinate system for the multifaceted changes in posture that occur during human movement. This coordinate system is adapted to the specific movement that is analyzed (the coordinate system is determined from the variance in posture vectors). If the data is appropriately normalized, then the PCA provides a coordinate system in which movements from different trials or from different participants can be directly compared with each other.

Here an example of the movement components: PMs, obtained from applying a PCA on the data from a bipedal standing trial. For better clarity, the movement amplitudes of the PMs have been amplified with a factor Amp.

What output does a PCA provide?

Every PCA provides three types of output:

  • eigenvectors PCk - each eigenvector is a specific pattern of how the variables in the input data are coorelated.
  • eigenvalues evk - each eigenvalue quantifies the variance that is represented by its associated eigenvektor.
  • scores - sk(t) the scores are obtained by projecting the normalized input data onto each eigenvector.

where k is an index for the order of the eigenvector and (t) symbolizes the time dependence of the scores.

In our specific application of the PCA, the eigenvectors represent patterns of correlated deviations from the mean posture, in other words, each PCk defines a movement component PMk. Each score sk(t) tells us, how much the current posture (e.g. the posture at time (t)) is a deviation from the mean posture according to the PCk - pattern.


The two top rows of this figure show the mean posture plus the deviation from the mean according to the first 4 PCk. Thus, these are visualizations of the first 4 PMs:

PMk = mean posture + sk(t) * PCk     for k=1..4.

The third row is a bar diagram showing sk(t) for k=1..4. 

Eigenvalues in terms of human movement analysis

In our specific application of the PCA, the eigenvalues evk are not particularly meaningful.

More information is provided if they are expressed as percentages of the overall variance in the dataset, i.e. as relative eigenvalues. However, if the PCA was calculated from data obtained from several trials or from several participants, the evk only represent overall variances, not trial- or subject-specific variances. Therefore, we usually use trial/subject specific variances that are calculated directly from the scores. This variable is usually called rVARk in our papers. Alternatively, rSTDk can be used, representing the standard deviation of the sk(t). In other words, rSTDk is proportional to the relative movement amplitude - "relative" compared to the overall (all k) movement amplitude of the trial; rVARk is proportional to the relative variance (amplitude squared) but directly corresponds to the relative eigenvalue evk, which is typically used in other PCA applications.        

Further, the PManalyzer allows to calculate several secondary variables to characterize the analysed motion. All of these variables are calculated from the three main output variables PCk, evk, sk(t). One such example is the "number of Zero crossings" Nk, which we use in several papers on postural control. In these papers, Nk refers to how often the PAk change direction. We interprete this number as a measure for how "tightly" controlled a movement component is.


PCA accessible for everyone

Learn how to use the PManalyzer software 

Using MatlabTM, the PManalyzer can be a powerful and easy way to analyze human movements. Possible research fields are technique analysis, injury mechanism detection or movement science.

© 2020 Peter Federolf

Nach oben scrollen