统计创新离不开具有编程功能的统计软件_编程语言论文

统计创新离不开具有编程功能的统计软件_编程语言论文

统计创新离不开具有编程功能的统计软件,本文主要内容关键词为:功能论文,软件论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

中图分类号:C82:G40

文献标识码:A

一、一些现成的软件包很好用,但仅仅限于现存的统计方法

谁都知道,现代统计发展和应用离不开计算机。但是,目前很多学校的教师和学生把计算机在统计方面的应用落实到几个现成的软件包,诸如SAS,SPSS,STATISTICA,EVIEWS等等。这些软件包现在用起来都很方便。只要把数据输入,用鼠标选择方法,就可以得出结果。当然统计学家的应用和实际工作者的应用有一些不同。统计学家在选择方法(也就是用鼠标选项)时对这些选项的含义、原理和计算机输出的解释上可能比实际工作者知道得更多更精确一些,犯错误的机会可能要少一些。虽然用点鼠标来应用现成的软件包很方便,但是这些软件包仅仅局限于目前现存的一些统计方法。没有太多的灵活性。上面提到的那些软件包虽然也有编程语言,但是这些语言已经很少有人运用。最灵活的使用者也仅限于把这些软件包的一些模块(如果有的话)连接起来。那些模块中程序或模型的不可视性、不可修改以及不灵活等特点是这些软件的最大缺陷。

二、创新需要使用具有强大编程能力的软件

对于专业的统计学家来说,对现存方法的应用只是其职责的一小部分。大部分的统计应用是由实际工作者完成的。而统计学家,特别是进行严肃科研的统计学家的大部分精力是放在对原有方法的改进及创建新的理论和方法上的。毫无疑问,在创新的过程中,仅仅用鼠标点击现成软件包的选项不可能满足需要。统计学家需要学会强大编程能力的软件去检验和实现自己所创造的新的方法和理论。

三、容易编程的语言

计算机编程语言可以粗略地分为低级(low level)和高级(high level)语言。越和计算机汇编语言接近的,就越“低级”。而越和人们熟悉的公式类似的也就越“高级”。这里高级和低级并不是好与坏的意思。越低级的语言,运算就越快,但使用和编程也越困难。同样,容易编程的语言计算速度就会受到影响。最早的科学计算(也是计算机主要功能时期的主要科学计算)的编程语言当推美国的FORTRAN和欧洲的ALGOL60等。许多资深科学家都对这些语言很熟悉。现在,ALGOL60已经退出历史舞台了;而FORTRAN仍然在发展,具有强大的供调用的数学和统计软件库,而且起着相当重要的作用。C语言(及派生的C++等)也是和FORTRAN类似的高级语言,但没有适用的数学或统计程序库。

四、编译语言和解释型语言

FORTRAN和C语言都属于编译语言(compiled language)。也就是说,需要在编好完整的程序之后,进行编译,然后按照机器语言产生一个执行文件;该文件可以独立于软件运行。虽然执行文件运算速度快,但很不方便。而另一种称为解释型语言(interpreted language)的就是边读你的语句,就边运算,边出结果,无论你的语句仅有一行或者是一个复杂的函数,都是边读边算。这种语言的典型是S,S-PLUS,BASIC,GAUSS,MATLAB,JAVA等。当然,运行时需要软件(解释器)在场。解释型语言的巨大的优势在于,你可以逐步发展你的程序。例如在S-PLUS中你可以写一个函数,运行,再写另一个,再运行,然后再写第三个函数,并引用前两个。也就是说,从一个什么都没有的空函数壳子不断增加内容,最终可以实现任何可以实际应用的软件。这使得解释型语言成为优秀的原创语言。比如许多统计学家用S-PLUS编程,实现了他们的统计方法。于是不仅S-PLUS加入了他们的程序,这些算法后来也被程序员编入其他语言,如SAS和FORTRAN的程序库。

五、S(SPLUS)语言

S(及由其派生的S-PLUS)语言具有刚才所说的解释型语言的所有优点。此外,S-PLUS软件还有MATLAB等类似语言所不具有的对统计内容的独特的强调。你还可以在编程中利用其他软件,比如FORTRAN,C等的编译好了的现成模块,融和到你自己的应用程序之中。由于最近的开发,S-PLUS软件也和SAS,SPSS,STATISTICA等一样也有了点鼠标运行的“傻瓜”方法。这给不会编程的实际工作者带来很大方便。但我认为统计学家们重视的不是这个,而是其强大而方便的实现他们统计方法和理论的编程能力。

S语言是一个非常高水平的语言及一个数据分析和作图的环境。在1998年,计算机协会(ACM)把它的软件系统奖(Software System Award)发给S语言的主要设计者John M.Chambers时,赞扬说:“S系统已经永远彻底改变了人们分析、形象化和驾驭数据的方式…S是一个优雅的广泛被接受的,并已持久的软件系统,具有慨念上的完整性,这要归功于John Chambers的洞察力、品位和努力。”

S-PLUS是基于S语言,并加上了许多统计模型的函数的软件;这些函数包括稳健回归,现代非参数回归,时间序列,生存分析,多元分析,经典统计检验,质量控制和画图软件等等,此外还附加了许多诸如小波分析,空间统计,GARCH模型,试验设计等随时可以引用的函数。随着统计研究的发展,许多新的函数还在不断地补充进去。

S-PLUS的许多函数完全是透明的,这在软件包之中是不多见的。你可以看到程序是如何用S语言写成的,也可以对之进行修改,以适应你的要求。当然如果S-PLUS引用其他语言的编译好了的模块,你就看不到这些引用部分了。写S-PLUS的程序并不比在纸上写公式困难多少。例如,一些纸上写不出来的多维矩阵的运算以及数据的描述和模拟在S-PLUS语言中却非常简单。该软件的灵活性是那些“傻瓜”软件根本无法比拟的。

无疑,统计学家是非常喜欢S-PLUS的,有许多统计领域的专著都是用S-PLUS来解释和实行其理论和方法的。比如,Statistical Tools for Nonlinear Regression,a Practical Guide with S-PLUS Examples(作者Huet,Bouvier,Gruet,Jolivet),Applied Wavelet Analysis with S-PLUS(作者Bruce,Gao),Modern Applied Statistics with S-PLUS(作者Venables,Ripley),A Handbook of Statistical Analysis using S-PLUS(作者Brian,Everitt),Modeling Financial Time Series with S-PLUS(作者Zivot,Wang),Modeling Financial Time Series with S-PLUS(作者Zivot,Wang),Mixed Effects Models in S and S-PLUS(作者Pinheiro,Bates),An R and S-PLUS Companion to Applied Regression(作者Fox,Monette),Statistical Computing:An Introduction to Data Analysis using S-PLUS(作者Crawley),Modeling Applied Biostatistical Methods:Using S-PLUS(作者Selvin),Environmen-talstats for S-Plus:User's Manual for Windows and Unix(作者Millard),Analyzing Medical Data Using S-Plus (Statistics for Biology and Health)(作者Everitt,Rabe-Hesketh),Applied Statistics in the Pharmaceutical Industry:With Case Studies Using S-Plus(编者Millard,Krause),Environmental Statistics with S-Plus(作者Millard,Neerchal),Algorithms,Routines、and s Functions for Robust Statistics:The Fortran Library Roheth with an Iuterface to S-Plus(作者Marazzi等),Applied Smoothing Techniques for Data Analysis:The Kernel Approach with S-Plus Illustrstions (Oxford Statistical Science Series,NO 18)(作者Azzalini等)。这十几本最近几年出版的统计书是标题上用了S-PLUS的字眼的那些。至于里面例子中用到S-PLUS的更不在少数。这些书包括理论的小波分析、平滑方法。非线性回归和稳健统计,也包括广泛应用的环境统计、财经统计、制药统计、医学统计和生物统计,还没有任何别的软件受到统计学家如此的青睬。很可惜,这些都是西方统计学家的著作。他们早已习惯使用编程软件。由于中国统计的国情,仅仅是比例不大的部分中国统计学家使用编程语言。大部分统计师生还仅仅使用“傻瓜”试的统计软件包,用现成的方法拟合所遇到的各种数据模型。

六、S的姊妹语言:R

R是S的姊妹语言,会用R编程的人会毫不费力地用S编程。但是R语言完全是免费,公开和透明的,也具有大量的统计函数和许多统计学家编写的函数;而且R语言的组织也提供免费的把你的程序编译成快速机器语言的服务。因此,R也是广大统计学家所喜爱的语言。在国外非常流行。当然,R语言没有“傻瓜”式的鼠标点击式的界面,使得不会编程的人使用有些困难。R语言开发时受到当时两个已有个语言S和Scheme。的影响,结果R语言和S非常相似,而实施则来自Scheme。它也可以利用C++、FORTRAN等语言写成的程序。类似于S-PLUS,它已有许多附加的函数,诸如线性模型、广义线性模型、非线性回归模型、时间序列分析、经典的参数和非参数检验、聚类、平滑以及各种展示,画图功能等等。用一句话来总结R和S的关系:R就是S语言用R的实施机理来实现。所以,仅从语言上,看不出R和S有多大的区别,而我们一般也不那么关心计算机是如何实施我们的计算的。当然,R一般要快一些,可计算的数目要大一些;而编译后的(机器语言的)R就更快了。R提供了S-PLUS没有的一些更方便的画图功能,特别是它的图型中对数学,物理和力学中表示公式的TeX符号系统友好。

七、应该在教学中融入统计编程语言的使用

目前的统计计算机教学有和培养目标不尽相符之处。有的学校的统计学生有公共的计算机语言如C++或现在少见的FORTRAN。虽然很少有统计学家使用C++,但其编程原理却不无补益。但是有的学校除了计算机基础课(可能的内容为Windows和Office软件等)之外连这个都没有。大多数统计学生接触的和统计密切相关的软件是前面提到的诸如SAS,SPSS等“点鼠标即用”的“傻瓜”软件。这使得他们习能产生的创新的方法或理论失去了计算机的支持。因此,希望我们的统计教学,从最基本的数理统计课开始,就融入计算机编程语言的使用,这样,学生既加深了对统计内容的理解,也获得了今后受用不尽的编程能力。

标签:;  ;  ;  

统计创新离不开具有编程功能的统计软件_编程语言论文
下载Doc文档

猜你喜欢