Hans Waldmann wrote:
Actually we need to evaluate whether factorial structures
>of 2 tests are similar enough, roughly, to assume they're parallel. For my
>own part I think one should use LISREL (or the like), constrain the loadings
>of one model to the other one, and evaluate (mis)fit. It shouldn't be too
>hard to set this up in SAS. Unfortunately, our client insists on keeping to
>SPSS (no LISREL module) and now asks for a "formal" comparison of two explo-
>ratory PCAs. He doesn't want to hear that it cannot be done. Still, I feel
>that I should collect some opions on the issue before giving up. Anybody out
>there to provide some hints ?
>
>Thank you in advance for your consideration!
>
>Hans

First, AMOS is now distributed by SPSS and can be called from within SPSS.

Two PCA's isn't too tough.  You can use Gower's Procrustes rotation to rotate
one structure to fit the other (in the least squares sense) and calculate the
residual sum of squares of the fit.  If you had many PCA analyses, you could
fit all simultaneously and then calculate the distance of each pattern from the
overall pattern.  You could then do an MDS on the residual sums of squares
matrix to show which scalings are similar in their lack of fit to the general
pattern.  This is generalized Procrustes analysis and is reviewed in:

Digby, P. G. N. and R. A. Kempton. 1987.  Multivariate analysis of ecological
communities. Chapman & Hall, New York.

With among group distances from different PCA scalings, you can look at the
patterns with SINDSCAL or you could even put multiple distance matrices into
KYST-2A NMDS to find the best fit solution. 

Your client has really constrained you by making you stick to SPSS.

I've programmed Gower's Procrustes analysis in Matlab.  It is only a few
statements long if you skip over the documentation;
function [Z,H,m2,p]=procrustes(Y,X);
% ******* Gower's PROCRUSTES analysis *******
% formats:
%    no scaling:    [Z,H,m2]=procrustes(Y,X);
%    with scaling:  [Z,H,m2,p]=procrustes(Y,X);
% INPUT:  Y and X are the results of 2 different ordinations
% in the form of a sample x coordinates matrix.
% Samples in X will be rotated to provide a best 
% least-squares fit to ordination Y.
% If 4 output arguments specified, rescaling of X will be performed.
% OUTPUT: Z=new X coordinates, H=orthogonal transformation matrix,
% m2 is the residual sum of squares, p (optional) is the rescaling 
% scalar for X.
% written by E. Gallagher, UMASS/Boston, August 29, 1993
% Email: [EMAIL PROTECTED]
% References: Digby & Kempton(1987, p. 114),Multivariate analysis of 
% ecological communities, Chapman & Hall
% Gower, J. C. (1987, p. 55).  Introduction to ordination techniques. 
% Pp. 3-64 in Legendre, P. and L. Legendre, eds., Developments 
% in numerical ecology. Proc. NATO Advanced Research Workshop 
% on Numerical Ecology. NATO ASI Series G: Ecological Sciences
% 14. Springer Verlag. 
[rx,cx]=size(X);
[ry,cy]=size(Y);
if rx~=ry
     error('Matrices must have the same number of rows')
end
if cx~=cy  % pad out the extra columns with zeros if necessary
     if cx>cy
           Y=[Y zeros(ry,cx-cy)];
     else
           X=[X zeros(rx,cy-cx)];
     end
end
% Center both matrices:
Y=center(Y);X=center(X);
[U,S,V]=svd(Y'*X);
H=V*U';
Z=X*H;
% rescale only if 4 output arguments used in call to procrust.m
if nargout<4
      Z=X*H;
else
      p=trace(X*H*Y')/trace(X*X');
      Z=p*X*H;
end
% calculate residual sum of squares.
m2=trace((Y-Z)'*(Y-Z));


=================================================================
Instructions for joining and leaving this list and remarks about
the problem of INAPPROPRIATE MESSAGES are available at
                  http://jse.stat.ncsu.edu/
=================================================================

Reply via email to