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
In-Reply-To: <200510251506.j9PERtW0032576@malibu.cc.uga.edu>
Content-Type: text/plain; format=flowed
flom@NDRI.ORG wrote:
> >>> "paige.miller@itt.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
>way
>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
>place?
> >>>
>
>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?
>
>etc.
>
>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
the evaluator
*codes* in each of these languages. Each language has functions for
inverting
matrices, as well as for handling ill-condiitoned (or non-invertible)
matrices. So
it is up to the coder to make sure that the best approach is taken in *each*
language.
Everyone makes these sorts of 'efficiency' mistakes when programming in
languages
which are not their regular toys. Even the gurus. I mean the REAL gurus.
Brian
Kernighan (yes, THE Kernighan) and Rob Pike (yes, him too) wrote "The
Practice
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++,
Perl,
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
like
C and C++ which focus on fast processing of numeric data. Still, the Perl
code
beat C++ on the win32 box and just trailed it on the unix box. But there
was a
lot of discussion about this on the perl Usenet groups, because the true
Perl gurus
could see inefficiencies in the code. In the code written by *Kernighan*
and *Pike*,
mind you! So if programming gods aren't perfect, what chance do lesser
mortals
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
C++
code.
David
--
David L. Cassell
mathematical statistician
Design Pathways
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
|