S 语言是由贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。它的丰富的数据类型,特别有利于实现新的统计算法,其交互式运行方式及强大的图形及交互图形功能使得我们可以方便的探索数据。资深分析师 Catherine 最近撰文详细介绍了S 语言的优点和背后的发展历史。
Catherine 首先分析了 S 语言诞生之前的统计分析状况:
计算机总是善于计算方面的工作。当然,前提是你已经写完并且把一个程序调试到能够实现你所想要的算法。但是在 20 世纪 60 年代和 70 年代,计算机在现实数据方面表现很差劲,尤其是在图像显示方面。由于这些技术的限制加上在统计理论的发展趋势,人们不得不把统计实践以及对统计人员的训练集中于建模和假设性的测试上。在这种假设的环境下,研究者先建立精心设计的实验(在农业技术站),之后猜想假设(通常是农业)适合模型,然后再运行测试用例,进行验证。像 SPSS 这种基于电子表格菜单驱动式程序反映了这种做法。事实上,SPSS 和 SAS Analytics 的第一个版本由可以从一个程序(Fortran 或者其他)调用的子程序组成,进而可以安装和测试模型的工具箱。
John Tukey 抛弃了探索性数据分析(EDA)的概念,这就像一块巨石穿过一个玻璃屋顶,进入形式化和理论支撑的框架中。如今,很难想象当初对数据集的分析居然可以不用箱线图来检查偏差和异常,或者不用通过与分位数图对比来检查一个线性模型的残差的常态。这些想法都源自 Tukey,如果没有他们,就不会有今天统计学的入门课程。当然也并不总是这样。
关于 EDA(探索性数据分析),Catherine 认为这不仅仅是一种方法更是一种理论。这种方法的关键是遵循以下的几条经验法则:
- 在可能的情况下,用图形来辨别感兴趣的功能。
- 分析是递增的。即尝试一种模式,然后再基于这种模式的基础上适应另一种模式。
- 使用图形检查模型假设。在出现异常的地方,做出备注。
- 使用稳健的方法,以防止偏离分布假设。
Tukey 的方法掀起了一股使用新的图形化方法和稳定性估计进行开发的潮流。这也同时激发了一个新的软件开发框架的发展,并且这种软件框架比探索方法更具有适用性。
S 语言是由约翰·钱伯斯和他的同事在贝尔实验室开发的, 最初把它作为一个个平台,进行统计分析,尤其是杜克排序。S 语言的第一版是在 1976 年开发的,最初它仅仅被用于实验室内部。但是知道 1988 年,S 语言遇到了类似如今格式的一些事情。这时,S 语言依然对贝尔实验室以外的的用户可用。这门语言的每一个方面都适合“新模式”的数据分析:
- S 语言与编程环境共同运作,是一种解释型语言。S 的语法很类似 C,但是 S 语言存在一些小困难。例如,S 具有的内存管理和变量声明的功能,因此用户不必编写或调试这些东西。S 语言的编程开销较低,这使得数据集的分析可以更快速的在更短的时间内完成。
- 从 S 诞生之初,S 允许创建高级图形,你可以向任何打开的图形窗口添加功能。你可以很容易地突出感兴趣的点,查询这些点的价值,添加平滑散点图等。
- 直到 1992 年面向对象特性才被加入到 S 中的。在编程语言中,对象通过构建数据和函数来满足用户的要求。人的思想总是面向对象的,统计推理,尤其是如此。统计人员经常与频率表、时间序列、矩阵、不同的数据类型、模型打交道。在任何情况下,原始数据被赋予属性和期望:例如,时间序列由观测数据和时间点组成。对于每一种数据类型,标准的统计和描述是必须的。对于一个时间序列,我可能会做一个时间序列图和相关图,对于一个拟合模型,我可能会绘制拟合度和残差。对于所有这些概念,S 都可以创建相应的对象,并且你可以创建多个你想要的对象。对象使得从问题的概念到问题的代码实现变得非常简单。
Catherine 指出:
原来的 S 语言严格遵循杜克的 EDA,以至于到达了在 S 语言中只能做 EDA 相关的事情,否则其他事情用 S 做起来都很笨拙的程度。这是一门有态度的语言。例如,虽然 S 附带一些有用的内部功能,它缺乏一些最明显的特征功能而你期望统计软件来来拥有这些功能。现在还没有任何一种能够处理两个样本或者实际假设性检测的功能。但尽管如此,假设检验有时候是一件正确的事情。1988 年,总部位于西雅图的 Statistical Science 注册了 S 的许可证,并把 S 语言的增强版本,S-PLUS,移植到 DOS 和后来的 Windows®上。实事求是地了解客户想要什么,Statistical Science 把经典统计的功能添加到 S-PLUS 中。方差分析(ANOVA),t 检验,和其他模型等功能被添加到其中。S 语言面向对象的本质就是:任何的拟合模型的结果本身就是一个 S 对象。适当的函数调用提供配合,残差,和假设检验的 P 值。模型对象,甚至可以包含中间计算分析步骤,如设计矩阵的 QR 分解。
在 11 月 1 日开幕的 QCon 全球企业开发大会(上海站),参与者将有机会聆听与统计分析相关的专题讲师的经验分享:
评论