Learn R Programming

ade4 (version 1.2-2)

procuste: Simple Procruste Rotation between two sets of points

Description

performs a simple procruste rotation between two sets of points.

Usage

procuste(df1, df2, scale = TRUE, nf = 4, tol = 1e-07) 
plot.procuste (x, xax = 1, yax = 2, ...)
print.procuste (x, ...)

Arguments

df1, df2
two data frames with the same rows
scale
a logical value indicating whether a transformation by the Gower's scaling (1971) should be applied
nf
an integer indicating the number of kept axes
tol
a tolerance threshold to test whether the distance matrix is Euclidean : an eigenvalue is considered positive if it is larger than -tol*lambda1 where lambda1 is the largest eigenvalue.
x
an objet of class procuste
xax
the column number for the x-axis
yax
the column number for the y-axis
...
further arguments passed to or from other methods

Value

  • returns a list of 9 components of the class procuste
  • da numeric vector of the singular values
  • rankan integer indicating the rank of the crossed matrix
  • nfactan integer indicating the number of kept axes
  • tab1a data frame with the array 1, possibly scaled
  • tab2a data frame with the array 2, possibly scaled
  • rot1a data frame with the result of the rotation from array 1 to array 2
  • rot2a data frame with the result of the rotation from array 2 to array 1
  • load1a data frame with the loadings of array 1
  • load2a data frame with the loadings of array 2
  • scor1a data frame with the scores of array 1
  • scor2a data frame with the scores of array 2
  • calla call order of the analysis

References

Digby, P. G. N. and Kempton, R. A. (1987) Multivariate Analysis of Ecological Communities. Population and Community Biology Series, Chapman and Hall, London. Gower, J.C. (1971) Statistical methods of comparing different multivariate analyses of the same data. In Mathematics in the archaeological and historical sciences, Hodson, F.R, Kendall, D.G. & Tautu, P. (Eds.) University Press, Edinburgh, 138--149. Sch�nemann, P.H. (1968) On two-sided Procustes problems. Psychometrika, 33, 19--34. Torre, F. and Chessel, D. (1994) Co-structure de deux tableaux totalement appari�s. Revue de Statistique Appliqu�e, 43, 109--121. Dray, S., Chessel, D. and Thioulouse, J. (2003) Procustean co-inertia analysis for the linking of multivariate datasets. Ecoscience, 10, 1, 110-119.

Examples

Run this code
data(macaca)
par(mfrow = c(2,2))
pro1 <- procuste(macaca$xy1, macaca$xy2, scal = FALSE)
s.match(pro1$tab1, pro1$rot2, clab = 0.7)
s.match(pro1$tab2, pro1$rot1, clab = 0.7)
pro2 <- procuste(macaca$xy1, macaca$xy2)
s.match(pro2$tab1, pro2$rot2, clab = 0.7)
s.match(pro2$tab2, pro2$rot1, clab = 0.7)
par(mfrow = c(1,1))

data(doubs)
pca1 <- dudi.pca(doubs$mil, scal = TRUE, scann = FALSE)
pca2 <- dudi.pca(doubs$poi, scal = FALSE, scann = FALSE)
pro3 <- procuste(pca1$tab, pca2$tab, nf = 2)
par(mfrow = c(2,2))
s.traject(pro3$scor1, clab = 0)
s.label(pro3$scor1, clab = 0.8, add.p = TRUE)
s.traject(pro3$scor2, clab = 0)
s.label(pro3$scor2, clab = 0.8, add.p = TRUE)
s.arrow(pro3$load1, clab = 0.75)
s.arrow(pro3$load2, clab = 0.75)
plot(pro3)
par(mfrow = c(1,1))

data(fruits)
plot(procuste(scalewt(fruits$jug), scalewt(fruits$var)))

Run the code above in your browser using DataLab