help procrustes dialog: procrustes
also see: procrustes postestimation
-------------------------------------------------------------------------------
Title
[MV] procrustes -- Procrustes transformation
Syntax
procrustes (varlist_y) (varlist_x) [if] [in] [weight] [, options ]
options description
-------------------------------------------------------------------------
Model
transform(orthogonal) orthogonal rotation and reflection
transformation; the default
transform(oblique) oblique rotation transformation
transform(unrestricted) unrestricted transformation
noconstant suppress the constants
norho suppress the dilation factor rho (set rho=1)
force allow overlap and duplicates in varlist_y
and varlist_x (advanced)
Reporting
nofit suppress table of fit statistics by target
variable
-------------------------------------------------------------------------
bootstrap, by, jackknife, and statsby are allowed; see prefix.
Weights are not allowed with the bootstrap prefix.
aweights are not allowed with the jackknife prefix.
aweights and fweights are allowed; see weights.
See [MV] procrustes postestimation for features available after
estimation.
Menu
Statistics > Multivariate analysis > Procrustes transformations
Description
procrustes performs the Procrustean analysis, one of the standard methods
of multidimensional scaling. For given "target" variables varlist_y and
"source" variables varlist_x, the goal is to transform the source X to be
as close as possible to the target Y. The permitted transformations are
any combination of dilation (uniform scaling), rotation and reflection
(i.e., orthogonal or oblique transformations), and translation.
Closeness is measured by the residual sum of squares. procrustes deals
with complete cases only.
procrustes assumes equal weights or scaling for the dimensions. It would
be inappropriate, for example, to have the first variable measured in
grams ranging from 5,000 to 8,000, the second variable measured in
dollars ranging from 3 to 12, and the third variable measured in meters
ranging from 100 to 280. In such cases, you would want to operate on
standardized variables.
Options
+-------+
----+ Model +------------------------------------------------------------
transform(transform) specifies the transformation method. The following
transformation methods are allowed:
orthogonal specifies that the linear transformation matrix A should
be orthogonal, A'A = AA' = I. This is the default.
oblique specifies that the linear transformation matrix A should be
oblique, diag(AA') = 1.
unrestricted applies no restrictions to A, making the procrustes
transformation equivalent to multivariate regression with
uncorrelated errors; see [R] mvreg.
noconstant specifies that the translation component c is fixed at 0 (the
0 vector).
norho specifies that the dilation (scaling) constant rho is fixed at 1.
This option is not relevant with transform(unrestricted); here rho is
always fixed at 1.
force, an advanced option, allows overlap and duplicates in the target
variables varlist_y and source variables varlist_x.
+-----------+
----+ Reporting +--------------------------------------------------------
nofit suppresses the table of fit statistics per target variable. This
option may be specified during estimation or upon replay.
Remarks
Formally, procrustes solves the minimization problem
Minimize | Y - (1 c' + rho X A) |
where c is a row vector representing the translation; rho is the scalar
"dilation factor"; A is the rotation and reflection matrix (orthogonal,
oblique, or unrestricted); and |.| denotes the L2 norm.
The number of source (X) variables should not exceed the number of target
(Y) variables for the orthogonal transformation. procrustes deals with
complete cases only. Efficient algorithms for the "partial Procrustes
problem" in which some elements of the target variables are missing are
still under development.
Examples
Setup
. webuse speed_survey
Procrustes transformation
. procrustes (survey_x survey_y) (speed_x speed_y)
Same as above, but omit dilation factor
. procrustes (survey_x survey_y) (speed_x speed_y), norho
Saved results
procrustes saves the following in e():
Scalars
e(N) number of observations
e(rho) dilation factor
e(P) Procrustes statistic
e(ss) total sum of squares, summed over all y variables
e(rss) residual sum of squares, summed over all y
variables
e(rmse) root mean squared error
e(urmse) root mean squared error (unadjusted for # of
estimated parameters}
e(df_m) model degrees of freedom
e(df_r) residual degrees of freedom
e(ny) number of y variables (target variables)
Macros
e(cmd) procrustes
e(cmdline) command as typed
e(ylist) y variables (target variables)
e(xlist) x variables (source variables)
e(transform) orthogonal, oblique, or unrestricted
e(uniqueA) 1 if rotation is unique, 0 otherwise
e(wtype) weight type
e(wexp) weight expression
e(properties) nob noV
e(estat_cmd) program used to implement estat
e(predict) program used to implement predict
e(marginsnotok) predictions disallowed by margins
Matrices
e(c) translation vector
e(A) orthogonal transformation matrix
e(ystats) matrix containing fit statistics
Functions
e(sample) marks estimation sample
Also see
Manual: [MV] procrustes
Help: [MV] procrustes postestimation;
[MV] ca, [MV] pca, [MV] rotate, [R] mvreg