Date: Tue, 25 Oct 2005 12:48:45 -0700
Reply-To: David L Cassell <davidlcassell@MSN.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: David L Cassell <davidlcassell@MSN.COM>
Subject: Re: Princincipal components analysis
Content-Type: text/plain; format=flowed
> >>> "email@example.com" <paige.miller@ITT.COM> 10/25/2005 10:25:13 AM
>I cannot imagine how, on realistic data sets, SAS, MATLAB and R would
>differ in ACCURACY for PCA or factor analysis with rotations. These
>packages all have been written by professionals who know the proper
>to write such code, and have been used extensively without a red
>warning flag being raised that there are problems in one package or
>another. I think you are wasting your time looking for differences.
>PRECISION, on the other hand, may be different between the packages,
>but do you really care if the packages differ in the 9th decimal
>I am not so sure about this; Paige may be absolutley right, but.....
>Do all these packages use the same algorithms for doing all the
>background work behind a factor analysis and rotation?
>Do they all have the same degree of numerical precision?
>There could be differences without raising any red flags, because few
>people do their FA on two packages, and the results from many packages
>might be reasonable, but different one from the other.
I think it is more likely that an evaluation like this will show how well
*codes* in each of these languages. Each language has functions for
matrices, as well as for handling ill-condiitoned (or non-invertible)
it is up to the coder to make sure that the best approach is taken in *each*
Everyone makes these sorts of 'efficiency' mistakes when programming in
which are not their regular toys. Even the gurus. I mean the REAL gurus.
Kernighan (yes, THE Kernighan) and Rob Pike (yes, him too) wrote "The
of Programming", which I highly recommend. But there is one part where they
tested the 'speed' of several languages using programs written in C, C++,
awk, and Java. (There may be one other language in there too.) They coded
up a genetic programming algorithm. Of course, this should favor languages
C and C++ which focus on fast processing of numeric data. Still, the Perl
beat C++ on the win32 box and just trailed it on the unix box. But there
lot of discussion about this on the perl Usenet groups, because the true
could see inefficiencies in the code. In the code written by *Kernighan*
mind you! So if programming gods aren't perfect, what chance do lesser
have to get it perfect on something like this?
BTW, if I remember correctly, the Perl code was about 1/8 the length of the
David L. Cassell
3115 NW Norwood Pl.
Corvallis OR 97330
On the road to retirement? Check out MSN Life Events for advice on how to
get there! http://lifeevents.msn.com/category.aspx?cid=Retirement