一个SAS使用者的回应
软件大比拼,UCLA ATS Statistical Consulting Group有篇很好的报告
Strategically using General Purpose Statistics Packages: A Look at Stata, SAS and SPSS,最后有个推荐,说Stata和SAS搭配来用,可以扬长避短,发挥最大的功用。在统计分析方面,如果拿R跟SAS比较,我想最后也会得出类似大团圆的结论。以下三条,引号里面的,都来自益辉原文,下面则是我的一些相应的回应。接下来,我会单独提些话题,比较一下SAS和R。
1. “程序的可靠性或正确性:大多数商业软件都不是开源软件,我们并不知道其背后统计方法在计算机程序上的可靠性,从这一点上来讲,我们只能根据输出结果去判断程序是否可靠”
益辉的意思是不是,开源软件,因为可以查看源代码,就可以判断其统计方法的可靠性?如果是这样,我做些回应吧。成熟的统计软件包,如SAS,它的计算方法,经受了SAS研发人员的多重检验和测试,而且还要接受外部的测评,美国FDA在新药检查时,只认准SAS的计算结果,其方法的稳健应该没多少问题。我们对其他商业软件包的看法,也应该类似。
开源软件像R,在这方面其实应该受到质疑。对一个统计方法,可能有很多R使用者查看代码,考究其稳健性。但软件测试不是单凭读代码就可以完成的,也不是随便拿一个小数据跑跑就可以的。这方面,我想广大R使用者应该谦虚些。
益辉用Excel做例子。但Excel无意成为统计软件包,它只是一个有简单统计功能的电子表格。
2.“模型方法的变化与更新”
这个R当然做得更好。但熟悉SAS的用户也清楚,SAS也在随时提供experimental SAS software,这次新发布的SAS9.2就融入了以前的一些实验算法,包括mcmc、bayes之类。
很多朋友觉得SAS在算法更新方面一无是处,我的两个回答是,一就是上面提到的SAS在这方面也做了不少工作,二就是从应用的角度来说,SAS是一个商业软件包,它引进新算法是要考虑工业界的需求的。
3.“总之我们也看不到源代码,不知道它的统计分析代码怎么能写到七张光盘那么大。R的Windows安装文件30M,源文件16M左右。”
SAS的统计分析代码没有七张光盘那么大。SAS是一个商业分析的套件,包括银行、零售等各个行业的解决方案,它的代码级当然是R不能想象的。SAS/STAT模块execute在SAS root下的文件大概是30几兆。
你可以proc setinit;run;一下,查看机器装了多少SAS产品,大多是一般人一辈子也用不到的。在安装时大伙可以只勾选几个常用的模块。
又,很久很久以前,SAS是英文Statistical Analysis System的缩写,现在SAS只是一个品牌。
我再单列3个话题,关于R跟SAS,
4. 统计做图
这个是R比较自豪的地方。SAS9.1.3中的实验版本,现在SAS9.2正式发布的SAS ODS statistical graphics,一样能做出publication-quality graphics。
5.矩阵运算
R是一门矩阵语言,SAS提供相应的矩阵运算模块,SAS/IML(Interactive Matrix Language),跟Matlab类似。
6.数据访问
R支持很多数据格式,SAS提供更多,包括各种数据库和ERP系统。这个不能多说,否则有以大欺小之嫌。同样不能多说的是并行计算等。