You are on page 1of 11

Procrustes analysis

From Wikipedia, the free encyclopedia

In statistics, Procrustes analysis is a form of statistical shape analysis used to analyse the distribution of a set of shapes. The name Procrustes (Greek: ) refers to a bandit from Greek mythology who made his victims fit his bed either by stretching their limbs or cutting them off. To compare the shape of two or more objects, the objects must be first optimally "superimposed". Procrustes superimposition (PS) is performed by optimally translating, rotating and uniformly scaling the objects. In other words, both the placement in space and the size of the objects are freely adjusted. The aim is to obtain a similar placement and size, by minimizing a measure of shape difference called the Procrustes distance between the objects. This is sometimes called full, as opposed to partial PS, in which scaling is not performed (i.e. the size of the objects is preserved). Notice that, after full PS, the objects will exactly coincide if their shape is identical. For instance, with full PS two spheres with different radius will always coincide, because they have exactly the same shape. Conversely, with partial PS they will never coincide. This implies that, by the strict definition of the term shape in geometry, shape analysis should be performed using full PS. A statistical analysis based on partial PS is not a pure shape analysis as it is not only sensitive to shape differences, but also to size differences. Both full and partial PS will never manage to perfectly match two objects with different shape, such as a cube and a sphere, or a right hand and a left hand. In some cases, both full and partial PS may also include reflection. Reflection allows, for instance, a successful (possibly perfect) superimposition of a right hand to a left hand. Thus, partial PS with reflection enabled preserves size but allows translation, rotation and reflection, while full PS with reflection enabled allows translation, rotation, scaling and reflection. In mathematics:

an orthogonal Procrustes problem is a method which can be used to find out the optimal rotation and/or reflection (i.e., the optimal orthogonal linear transformation) for the PS of an object with respect to another.

a constrained orthogonal Procrustes problem, subject to det(R) = 1 (where R is a rotation matrix), is a method which can be used to determine the optimal rotation for the PS of an object with respect to another (reflection is not allowed). In some contexts, this method is called the Kabsch algorithm.

Optimal translation and scaling are determined with much simpler operations (see below). When a shape is compared to another, or a set of shapes is compared to an arbitrarily selected reference shape, Procrustes analysis is sometimes further qualified as classical or ordinary, as opposed to Generalized Procrustes analysis (GPA), which compares three or more shapes to an optimally determined "mean shape".


1 Ordinary Procrustes analysis

o o o o o

1.1 Translation 1.2 Uniform scaling 1.3 Rotation 1.4 Shape comparison 1.5 Superimposing a set of shapes

2 Generalized Procrustes analysis (GPA) 3 Variations 4 Examples 5 See also 6 External links 7 References

Ordinary Procrustes analysis[edit]

Here we just consider objects made up from a finite number k of points in n dimensions. Often, these points are selected on the continuous surface of complex objects, such as a human bone, and in this case they are called landmark points. The shape of an object can be considered as a member of an equivalence class formed by removing the translational, rotational and uniform scaling components.

For example, translational components can be removed from an object by translating the object so that the mean of all the object's points (i.e. its centroid) lies at the origin. Mathematically: take points in two dimensions, say . The mean of these points is where

Now translate these points so that their mean is translated to the origin , giving the point .

Uniform scaling[edit]

Likewise, the scale component can be removed by scaling the object so that the root mean square distance (RMSD) from the points to the translated origin is 1. This RMSD is a statistical measure of the object's scale or size:

The scale becomes 1 when the point coordinates are divided by the object's initial scale: . Notice that other methods for defining and removing the scale are sometimes used in the literature.

Removing the rotational component is more complex, as a standard reference orientation is not always available. Consider two objects composed of the same number of points with scale and translation removed. Let the points of these be , . One of these objects can be used to provide a reference orientation.

Fix the reference object and rotate the other around the origin, until you find an optimum angle of rotation such that the sum of the squared distances (SSD) between the

corresponding points is minimised (an example of least squares technique). A rotation by angle gives . where (u,v) are the coordinates of a rotated point. Taking the derivative of the derivative is zero gives with respect to and solving for when

When the object is three-dimensional, the optimum rotation is represented by a 3by-3 rotation matrix R, rather than a simple angle, and in this case singular value decomposition can be used to find the optimum value for R (see the solution for the constrained orthogonal Procrustes problem, subject to det(R) = 1).

Shape comparison[edit]
The difference between the shape of two objects can be evaluated only after "superimposing" the two objects by translating, scaling and optimally rotating them

as explained above. The square root of the above mentioned SSD between corresponding points can be used as a statistical measure of this difference in shape:

This measure is often called Procrustes distance. Notice that other more complex definitions of Procrustes distance, and other measures of "shape difference" are sometimes used in the literature.

Superimposing a set of shapes[edit]

We showed how to superimpose two shapes. The same method can be applied to superimpose a set of three or more shapes, as far as the above mentioned reference orientation is used for all of them. However, Generalized Procrustes analysis provides a better method to achieve this goal.

Generalized Procrustes analysis (GPA)[edit]

Main article: Generalized Procrustes analysis GPA applies the Procrustes analysis method to optimally superimpose a set of objects, instead of superimposing them to an arbitrarily selected shape. Generalized and ordinary Procrustes analysis differ only in their determination of a reference orientation for the objects, which in the former technique is optimally determined, and in the latter one is arbitrarily selected. Scaling and translation are performed the same way by both techniques. When only two shapes are compared, GPA is equivalent to ordinary Procrustes analysis. The algorithm outline is the following: 1. arbitrarily choose a reference shape (typically by selecting it among the available instances) 2. 3. 4. superimpose all instances to current reference shape compute the mean shape of the current set of superimposed shapes if the Procrustes distance between mean and reference shape is above a threshold, set reference to mean shape and continue to step 2.


There are many ways of representing the shape of an object. The shape of an object can be considered as a member of an equivalence class formed by taking the set of all sets of k points in ndimensions, that is Rkn and factoring out the set of all translations, rotations and scalings. A particular representation of shape is found by choosing a particular representation of the equivalence class. This will give a manifold of dimension kn-4. Procrustes is one method of doing this with particular statistical justification. Bookstein obtains a representation of shape by fixing the position of two points called the bases line. One point will be fixed at the origin and the other at (1,0) the remaining points form theBookstein coordinates. It is also common to consider shape and scale that is with translational and rotational components removed.


Alex Townsend, August 2011


Shape analysis on a beach holiday A little warning A shape and its reflection Reference

(Chebfun Example geom/Procrustes.m) [Tags: #shapeanaylsis, #affinetransformations, #geometry]

function procrustes close all


Procrustes shape analysis is a statistical method for analysing the distribution of sets of shapes (see [1]). Let's suppose we pick up a pebble from the beach and want to know how close its shape matches the outline of an frisbee. Here is a plot of the frisbee and the beach pebble.
figure(1); t=chebfun('x',[0,2*pi]); f=3*(1.5*cos(t) + 1i*sin(t)); %frisbee

g=exp(1i*pi/3)*(1+cos(t)+1.5i*sin(t)+ .125*(1+1.5i)*sin(3*t).^2); %pebble plot(f,'r','LineWidth',2), hold on, axis equal, plot(g,'k','LineWidth',2); title('Frisbee and pebble','FontSize',16); hold off;

Two shapes are equivalent if one can be obtained from the other by translating, scaling and rotating. Before comparison we thus: 1. Translate the shapes so they have mean zero. 2. Scale so the shapes have Root Mean Squared Distance (RMSD) to the origin of one. 3. Rotate to align major axis. Here is how the frisbee and the pebble compare after each stage.
function [f,g]=ShapeAnalysis(f,g) % SHAPEANALYSIS(F,G) Plots the parameterised curves before and after % each stage of translating, scaling and aligning. Outputs are

% parameterised curves ready for Procustes shape analysis.

LW = 'LineWidth'; FS = 'FontSize'; % Plot orignal subplot(2,2,1) plot(f,'r',LW,2), hold on, axis equal, plot(g,'k',LW,2) title('Orignal',FS,16)

% Translate mean to 0. f = f-mean(f); g = g-mean(g); subplot(2,2,2) plot(f,'r',LW,2), hold on, axis equal, plot(g,'k',LW,2) title('After translation',FS,16)

% Scale so RMSD is 1. f = f/norm(f); g = g/norm(g); subplot(2,2,3) plot(f,'r',LW,2), hold on, axis equal, plot(g,'k',LW,2) title('After scaling',FS,16)

% Align major axis. subplot(2,2,4) % Find argument of major axis. [~,fxmax]=max(abs(f)); [~,gxmax]=max(abs(g)); rotf=angle(f(fxmax)); rotg=angle(g(gxmax));

% Rotate both so major axis lies on the +ve real axis. x = chebfun('x',[0,2*pi]); f = exp(-1i*rotf)*f(mod(x+fxmax,2*pi)); g = exp(-1i*rotg)*g(mod(x+gxmax,2*pi)); plot(f,'r',LW,2), hold on, axis equal, plot(g,'k',LW,2) title('After aligning',FS,16), hold off end

[f,g] = ShapeAnalysis(f,g);

To calculate the Procrustes distance we would measure the error between the two shapes at a finite number of reference points and compute the vector 2-norm. In this discrete case In Chebfun we calculate the continuous analogue:


ans = 0.072347575424997

In the discrete version of Procrustes shape analysis statisticians choose reference points on the two shapes (to compare). They then work out the difference between corresponding reference points. The error computed depends on this correspondence. A different correspondence gives a different error. In the continuous case this correspondence becomes the parameterisation. A different parameterisation of the two curves gives a different error. This continuous version of Procrustes (as implemented in this example) is therefore more of an 'eye-ball' check than a robust statistical analysis.


At the beach shapes reflect on the surface of the sea. An interesting question is: How close, in shape, is a pebble to its reflection? Here is a plot of a pebble and its reflection.
figure(2) % pebble f = exp(1i*pi/3)*(1+cos(t)+1.5i*sin(t)+.125*(1+1.5i)*sin(3*t).^2); % reflection g = exp(-1i*pi/3)*(1+cos(2*pi-t)-1.5i*sin(2*pi-t)+.125*(1-1.5i)*sin(3*(2*pi-t)).^2);

plot(f,'r','LineWidth',2), hold on, axis equal, plot(g,'k','LineWidth',2) title('Pebble and its reflection','FontSize',16), hold off

Here is how the pebble and its reflection compare after each stage of translating, scaling and rotating.

Now we calculate the continuous Procrustes distance.


ans = 0.097593759012228

Comparing this result to the Procrustes distance of the pebble and a frisbee shows that the pebble is closer in shape to a frisbee than its own reflection!