LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous (more recent) messageNext (less recent) messagePrevious (more recent) in topicNext (less recent) in topicPrevious (more recent) by same authorNext (less recent) by same authorPrevious page (October 2005, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
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


Back to: Top of message | Previous page | Main SAS-L page