第五届中国R语言会议通知

Featured

R是一门用于统计计算和作图的语言,其官方机构每年都会举办useR!会议,但会议地点主要局限在欧美地区。自2008年以来,在谢益辉的倡导下,中国已经成功举办了四届自行组织的R语言会议,极大促进了R语言在中国的推广和发展。在前四届会议的成功经验下,为了进一步加强各领域R语言使用者之间的交流,我们准备于2012年5月(北京会场)举办第五届中国R语言会议。

 

会议事宜(北京会场)

一、会议时间

会议暂定于2012年5月26-27日,上午9:00开始报告,请参会者提前半小时入场领取材料。

二、会议地点

中国人民大学明德楼-法学0201教室。 Continue reading

R You Ready?——大数据时代下优雅、卓越的统计分析及绘图环境

作者按:本文根据去年11月份CSDN举办的“大数据技术大会”演讲材料整理,最初发表于2012年2月期《程序员》杂志。

1. 历史

R(R Development Core Team, 2011)语言由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 两人共同发明,其词法和语法分别源自 Scheme 和 S 语言,R 语言一般认为是 S 语言(John Chambers, Bell Labs, 1972)的一种方言。R 是“GNU S”, 一个自由的、有效的、用于统计计算和绘图的语言和环境,它提供了广泛的统计分析和绘图技术:包括线性和非线性模型、统计检验、时间序列、分类、聚类等方法。我们更倾向于认为 R 是一个环境,在 R 环境里实现了很多经典的、现代的统计技术。

图1: 1992 年,Ross Ihaka 和Robert Gentleman 在奥克兰大学成为同事。后来为了方便教授初等统计课程,二人开发了一种语言;而他们名字的首字母都是R,于是R 便成为了这门语言的名称。

作为 R 语言的前身——S 语言的代码几乎不需要进行任何修改即可在R 语言环境下运行,从这个角度讲两种语言几乎等价。S 语言诞生于上个世纪 70 年代的由 John M. Chambers 领导的贝尔实验室统计部,它的诞生过程几乎就是现代统计分析方式的演化历程的写照(谢益辉,郑冰, 2008):

  • 1975-1976 年,贝尔实验室统计研究部使用一套文档齐全的 Fortran 库做统计研究,简称为 SCS ( Statistical Computing Subroutines );
  • 当时的商业统计软件采用的是批处理的方式,一次性输出问题的所有相关的信息,在那个时代,这个过程需要几个小时,并且商业软件不能对程序做任何修改。而贝尔实验室的统计学家们需要灵活的交互式数据分析方式,因此 SCS 在贝尔实验室非常受欢迎;
  • 但统计学家们发现使用 SCS 做统计分析时需要大量的 Fortran 编程,花在编程上的时间同取得的分析效果相比有些得不偿失。慢慢地,大家达成了一个共识:统计分析不应该需要编写 Fortran 程序!
  • 于是,为了同 SCS 进行交互,一套完整的高级语言系统 S 诞生了;
  • S 语言的理念,用它的发明者John Chambers 的话说就是“to turn ideas into software, quickly and faithfully.”

1993 年,S 语言的许可证被 MathSoft 公司买断,S-PLUS 成为了其公司的主打数据分析产品,这时候,由于 S-PLUS 继承了S 语言的优秀血统,所以广泛被世界各国的统计学家所使用。但好景不长,1997 年 R 语言正式成为了 GNU 项目,大量的优秀统计学家加入到了 R 语言开发的行列。随着 R 语言的功能愈发强大,渐渐地 S-PLUS 的用户转到了同承一脉的R 语言。S 语言的发明人之一,John M. Chambers 最终也成为了 R 语言的核心团队成员。S-PLUS 这款优秀的软件也几经易手,最后花落 TIBCO 公司,这是后话。

John Chambers 老爷子一直不遗余力的致力于R 语言的发展,至今仍然是活跃的 R 语言开发者。在 2009 年第一期 R Journal 上 John Chambers 是这样对 R 语言是定义的:

  1. An interface to computational procedures of many kinds;
  2. Interactive, hands-on in real time;
  3. Functional in its model of programming;
  4. Object-oriented, “everything is an object”;
  5. Modular, built from standardized pieces; and,
  6. Collaborative, a world-wide, open-source effort.

当然,R 语言的这些特点很难在一篇短文里细致的体现出来,那下面我将简要的描述一下 R 语言的现状和未来。

2. 现状及应用

R 语言在国际和国内的发展差异非常大,国际上 R 语言已然是专业数据分析领域的标准,但在国内依旧任重而道远,这固然有数据学科地位的原因,国人版权概念薄弱以及学术领域相对闭塞也是原因。那为什么 R 语言能够被广大的数据分析工作者做接受?这其中原因是很多的:

2.1 优势及特点

从 R 语言的发展历史上看,R 主要是统计学家为解决数据分析领域问题而开发的语言,因此 R 具有一些独特的优势:

  • 统计学家和几乎覆盖整个统计领域的前沿算法(3700+ 扩展包)
  • 开放的源代码(free, in both senses),可以部署在任何操作系统,比如 Windows, Linux, Mac OS X, BSD, Unix强大的社区支持
  • 高质量、广泛的统计分析、数据挖掘平台
  • 重复性的分析工作(Sweave = R + LATEX),借助 R 语言的强大的分析能力 + LaTeX 完美的排版能力,可以自动生成分析报告
  • 方便的扩展性
  • 可通过相应接口连接数据库,如 Oracle、DB2、MySQL
  • 同 Python、Java、C、C++ 等语言进行互调
  • 提供 API 接口均可以调用,比如 Google、Twitter、Weibo
  • 其他统计软件大部分均可调用 R,比如 SAS、SPSS、Statistica等
  • 甚至一些比较直接的商业应用,比如 Oracle R Enterprise, IBM Netezza, R add-on for Teradata, SAP HANA, Sybase RAP(刘思喆,2012

Continue reading

日历中的夏天

看着有节,摸着无节,打一生活用品

不知不觉,夏日已慢慢临近。姑娘们飞扬的裙角,小贩叫卖的西瓜,蚊蝇嗡嗡的声音,以及翻过的一页日历,都提醒着你夏天快来了。夏季有着不同的定义:根据中国人的日历,我们所俗称的夏季从立夏开始,到立秋结束;但在气候学上,夏季是指连续五天平均温度超过22摄氏度即算作夏季的开始,若连续五天平均温度低于22度则算作入秋;而天文学上的夏季一般是指六、七、八这三个月。

那么哪一种夏季的定义更合适一些呢?还是用数据可视化来说话吧。这项任务基本上有两个步骤:一是获取某城市的2011年日平均温度数据,二是根据数据绘制日历热图(Calendar-Heatmap)Continue reading

关于概率论主干课程的训练

1. 引言

虽然外界不大能区分“概率论”和“统计学”的差别,但是在概率统计专业内的人士们看来,这两者无论从思维方式、课程学习还是学术训练角度来看,区别还是相当明显的。比如我了解的北大概率统计系的情况,概率论和数理统计分属不同的教研室,日常的学术活动也大相径庭。研究生除了第一年会一起上专业基础课之外,之后就少有交集。我当年的体会是,在统计专业同学们的眼中,“概率论跟基础数学没有什么区别”;而在概率专业的同学看来,“统计学不像是数学”。这些对彼此颇为玩味的看法至少表现出二者之间不小的差别,即便同在“概率统计专业”的屋檐下。当然,随着统计学在我国逐步确立为一级学科,概率和统计的这种“隔阂”也许会更加明朗化。

但不可否认的是,无论统计学的未来如何发展,其主干课程中必然少不了像概率论、随机过程这样的概率基础课程。以前我在科学网上针对概率论专业的同学如何选择和学习课程发表过一些建议,因此针对咱们COS读者的背景,我重新整理了一份关于概率课程学习的若干想法,希望能对大家有所帮助。

2. 概率论要怎么学?

都说概率论是研究“随机现象”的数学,那么相对于研究“非随机现象”的数学,概率论的学习有哪些特别之处呢?

小时候咱们学数学都是从数数开始。比如学习1+1的时候,老师们会拿出两个苹果,用实物演示“一个苹果加一个苹果等于两个苹果”。正是这种基于直截了当的“观测”,我们接受起“1+1=2”这件事来就略显自然。然而,如果要理解“质地均匀的硬币出现正反面的可能性都等于二分之一”这件事,就并非那么顺利了。即便主观上我们会认同这个结果,但从观测的角度却是一个永远无法回答的问题。我们能观测的只能是有限的样本以及永远都在变化着的频率,而这个“真实的可能性”,也即“概率”的确切值,却是无法观测的。因此,概率的定义本身就曾经是一个大难题。即便在早年研究赌博问题的时候,一些数学家即能根据排列组合的方法计算一些简单的离散概率(即大家熟知的古典概型),但那主要是基于人们对概率的一些朴素认识,离构建一套完整的数学理论还差得很远。

因此,大家在学习概率论的时候,最先遇到、也是最重要的一个问题就是“如何定量描述随机现象”,即如何给出概率的定义。随着二十世纪30年代苏联数学家柯尔莫哥洛夫(1903-1987) 运用分析学中的测度理论(measure theory)完成了概率论的公理化体系,概率论才算正式登上了现代数学的殿堂。事实上,柯尔莫哥洛夫的公理化体系并未直面“概率是什么”的问题,到现在人们对于概率在哲学层面的思辨仍然在进行,但是公理化的作用是将人们对于概率的一些朴素共识或者基本性质抽象出来,形成一套公理体系,然后依据这套体系逐步发展出一套概率理论。这种思维跟当年德国数学家希尔伯特(1862-1943)所倡导的公理化思想是相一致的。值得一提的是,自打柯尔莫哥洛夫的概率公理化提出以来,对其的质疑从来就没有停止过,也不断有新的概率理论被提出,但这套理论依旧成为了概率研究的绝对主流,我们这里所谈到的概率论的学习也是指以柯尔莫哥洛夫公理化体系为基础的概率理论。

然而,在本科阶段我们学习概率论课程的时候,却往往不是从介绍柯尔莫哥洛夫的公理化体系开始。这主要是因为,要用严格的数学充分阐释概率论的公理化体系,必须要有测度论的数学基础。而测度论的课程难度很大,基本要在研究生阶段或者本科的高年级阶段才能开设。那是否要等大家学完了测度论之后再学概率论的课程呢?当然不是,就我了解全世界没有哪个国家和地区的学校会这么做。普遍的做法是在大学二年级就会开设初等概率论的课程,所适用的教材也大多基于微积分和线性代数的先修知识。这又是为什么呢?在由美国概率学家Rick Durrett教授所著的研究生教材Probability: Theory and Examples的前言部分,他提到概率论有两只手,左手是基于测度论的严格数学,右手则是概率的思考方法,也可以理解成概率的物理直观。

虽然测度论是概率论的基本数学语言,但如果真把概率论就当做测度论的一部分去学习,就只抓住了概率论两只手中的一只,而忽略了另一只联系物理直观的右手。而这只右手恰恰是概率论在现代数学之林中最难能可贵的地方。一直以来,概率论都保持了与包括物理学在内的科学领域的亲近,几乎所有的概率研究课题背后都有实际背景问题的支撑:例如离散空间随机游动问题与理论计算机、化学高分子聚合物理论;大偏差理论、粒子系统与统计物理、复杂性科学等等之间的密切联系,都极大推动了概率论这门科学的不断发展。同时,概率论的发展也得到了来自社会科学领域的刺激,特别是以随机微分方程为代表的随机分析学已经成为了数理金融领域中的基本理论和工具之一。更有趣的是,借助概率论广泛联系物理直观的特点,很多数学家纷纷借助概率论的思想帮助解决了一系列传统数学中的很多重大问题,例如当年佩雷尔曼在解决庞加莱猜想的论证过程中即用到了概率论中条件期望的想法。

因此,为了尽早让大家了解概率论所联系的物理直观以及巨大的应用价值,学校会提早开设本科概率论的课程。本科课程会尽量回避测度论,用一些仅需用微积分和线性代数就讲明白的模型,引入概率论的基本概念,培养大家的概率直观,并熟悉一些基本运算。经过了这一阶段的训练,待到本科高年级或者研究生阶段,再借助测度论的基础,进一步明确概率论的数学理论,从而迈入现代概率论的门槛。

下面我们就来具体聊聊本科和研究生的课程学习:
Continue reading

因果推断简介之四:观察性研究,可忽略性和倾向得分

这节采用和前面相同的记号。Z 表示处理变量(1 是处理,0 是对照),Y 表示结果,X 表示处理前的协变量。在完全随机化试验中,可忽略性 Z \bot \{Y(1), Y(0)\} 成立,这保证了平均因果作用 ACE(Z\rightarrow Y) = E\{Y(1) - Y(0)\} = E\{Y\mid Z=1\} - E\{Y\mid Z=0\} 可以表示成观测数据的函数,因此可以识别。在某些试验中,我们“先验的”知道某些变量与结果强相关,因此要在试验中控制他们,以减少试验的方差。在一般的有区组(blocking)的随机化试验中,更一般的可忽略性 Z \bot \{Y(1), Y(0)\} | X 成立,因为只有在给定协变量  X 后,处理的分配机制才是完全随机化的。比如,男性和女性中,接受处理的比例不同,但是这个比例是事先给定的。

在传统的农业和工业试验中,由于随机化,可忽略性一般是能够得到保证的;因此在这些领域谈论因果推断是没有太大问题的。Jerzy Neyman 最早的博士论文,就研究的是农业试验。但是,这篇写于 1923 年的重要统计学文章,迟迟没有得到统计学界的重视,也没有人将相关方法用到社会科学的研究中。1970 年代,Donald Rubin 访问 UC Berkeley 统计系,已退休的 Jerzy Neyman 曾问起:为什么没有人将潜在结果的记号用到试验设计之外?正如 Jerzy Neyman 本人所说 “without randomization an experiment has little value irrespective of the subsequent treatment(没有随机化的试验价值很小)”,人们对于观察性研究中的因果推断总是抱着强烈的怀疑态度。我们经常听到这样的声音:统计就不是用来研究因果关系的!

在第一讲 Yule-Simpson 悖论的评论中,有人提到了哲学(史)上的休谟问题(我的转述):人类是否能从有限的经验中得到因果律?这的确是一个问题,这个问题最后促使德国哲学家康德为调和英国经验派(休谟)和大陆理性派(莱布尼兹-沃尔夫)而写了巨著《纯粹理性批判》。其实,如果一个人是绝对的怀疑论者(如休谟),他可能怀疑一切,甚至包括因果律,所以,康德的理论也不能完全“解决”休谟问题。怀疑论者是无法反驳的,他们的问题也是无法回答的。他们存在的价值是为现行一切理论起到警示作用。一般来说,统计学家不会从过度哲学的角度谈论问题。从前面的说明中可以看出,统计中所谓的“因果”是“某种”意义的“因果”,即统计学只讨论“原因的结果”,而不讨论“结果的原因”。前者是可以用数据证明或者证伪的;后者是属于科学研究所探索的。用科学哲学家卡尔·波普的话来说,科学知识的积累是“猜想与反驳”的过程:“猜想”结果的原因,再“证伪”原因的结果;如此循环即科学。

Continue reading