我们需要可再现研究(Reproducible Research)吗?
Posted on 03 Nov 2014 PythonResearch 添加评论可再现研究最近开始越来越火热,很多研究者特别材料、生物、计算机相关专业的研究者都加入了可再现研究的行列。在Coursea上还有一个可再现研究为主题的课程。可再现研究可以一定程度上防止学术造假,方便学术交流,减少重复工作,方便自己和他人再现完成的工作,增加研究成果的可信度等等优势。但是不得不说可再现研究需要花费研究者更多的时间和精力,同时为了做到数据和研究过程的可再现需要数据和程序代码的共享,这在很多时候都是不现实,甚至是不可能的。那么我们到底需不需要可再现研究呢?
我觉得答案是需要,或者至少在某些程度上需要。
为什么可再现研究会热起来?
其实,可再现研究一直是科研人员共享研究成果的终极理想,因为科学的要义正在于其可重复性,只有可以重复的科学论断才是值得注意的论断,才是可能成为科学一部分的论断。虽然这并不是说自然界所有的现象都是可重复的或者概率意义上可重复的;但是,作为科学的研究对象的那一部分自然界(不管这一部分是不是整个自然界)必须是可以重复的。这是科学区别与其他形式的理论的关键差别。因此,可再现研究可以认为是科研成果最佳的展现方式之一。
但是,就以往的技术条件而言,上个世纪以前人类并不具备提供完整的可再现研究的物质条件。在很多情况下,即便简单的传递科研成果在历史上也是极端困难的。这导致了过去很多理论被多人多次的在相同或者不同的时间段(甚至是相差千年的时间段)发现或者提出。然而,互联网的发展和科研工作的计算机程序化,尤其是近年来云端资源的丰富使得数据和处理程序的共享成为可能。互联网的发展使得全球可以在很短的时间内实现信息的沟通,但是这并不能构成可再现研究因为现在的互联网还不能传输所有的内容。因此,科研工作的计算机程序化提供了能够将科研成果可重现的分享的另外一个条件,即第三方稳定的重复性。可靠的计算机程序在不同的计算机上经过正确的配置应该可以提供可以接受的相似的结果,这提供了比以往的文章文字描述更为客观的传递方式。所以,互联网和科研的计算机程序化联合起来促成了可再现研究的可能性。
当然现在这种程度的可再现研究远不是可再现研究的终极目标,基于物质层面的可再现将是可再现研究的进一步目标,也即数据的获取等环节的可再现性。不过,在现在的技术条件下这样的重现暂时还是并不现实的。
那下一个问题就是为什么可再现研究没有在具备了上述两个条件后迅速的发展起来,而是最近一段时间才火热起来了呢?
答案是成本。上个世纪和这个世纪初期,在网络上存储和使用带宽还是一个相对比较昂贵的行为。但是,近年来的各种云端服务的出现,特别是诸如网盘和Github一类服务的出现,使得共享数据不再是少数企业和单位的专利。一般的研究者也可以在不需要大量花费的情况下实现这样的共享。同时,近年来的科研工作也越来越电脑化,很多文章的内容本身就是计算机程序的描述。这些因素使得可再现研究更多的成为科研工作者有了选择可再现研究的可能。因此,可再现研究也就开始火热了起来。
可再现研究的现状
可再现研究其实也不算什么新名词了,学术界其实一直在进行着一定程度上的可再现研究。有些作者将自己文章相关的程序和数据挂在个人主页上,虽然一般不提供完整的对应文章的可再现版本,但是一定程度上还是很大的方便了其他科研人员再现自己的工作。还有一些学术论坛也有人提供文章相关的程序或者内容的答疑,一定程度上也超越了以往仅文章交流的可再现性。
令人比较失望的是有部分科研工作者不但不试图增加文章内容的可重现性,反而千方百计的降低自己工作的可再现程度。更有甚者一方面拼命宣传增加自己的知名度,同时又详尽办法使其他人不能重复自己的工作。这样的行为可以说是学术界的耻辱。如果一个科研工作者不是为了解决人类遇到的问题,而是只为了沽名钓誉,那他就不应该被认为是一个优秀的科研工作者。而那些千方百计制造障碍不让他人重复自己工作的人,他的工作要么是无关紧要,要么是虚报浮夸,要么就是弄虚作假。真正优秀的科学理论是不怕被其他人检验的,而且是乐于被其他人检验的。
在国内,以增进科研工作人员交流为目的的网站不在少数,很多网站上的云集了大量的用户和资源。这对于大家重现已有的研究成果当然是有好处的,但是这些网站也存在明显的弊端。首先,这些网站多数采用积分制度,而积分往往成为用户在论坛获取资源的重要凭据,为了获得积分往往需要消耗大量的时间在这些网站上。(部分网站提供了购买积分的手段,我个人是比较支持的,但是按照国人使用电脑的习惯,大多数人还是选择浪费时间在这种网站上。)这一定程度上是为了增加网站人气和提升高级用户的自豪感,但是另一方面也造成了分享的无益壁垒。当然有些网站也察觉了这方面的问题,进行了相应的改进。比如,Simwe在这方面就迈出了很好的一步,取消了附件下载的体力值扣减。其次,这些网站讨论和交流的内容都相对初级,回答也比较模糊,往往就是简单的几个字。与国外如Stackoverflow一类名站相比,这些网站上的回答的质量实在偏低。同时,网站的内容大多来自不甚可靠的来源,部分内容以讹传讹造成很坏的影响。因此,就现在的情况而言,可重现研究已经一定程度上具备了实现和推广的基础,但是要在国内得到长足的发展还需要科研人员的不懈努力。
可再现研究的实现途径
可再现研究依赖于互联网和计算机程序,所以可再现研究的实现基本上依托一种程序设计语言和相应的可再现文档。目前为止还没有见到成熟的商业解决方案提供给可再现研究使用。我认为现在比较成熟可供使用的完整的可再现研究的实现途径有两种,也即基于R系统中Rmd格式的途径和基于IPython Notebook的途径。
两者出现的时间是比较相似的,Rmd的领导者是Rpub.com。现在Coursea上大量基于R的课程使用Rpub作为课程作业的考核方式。Rmd是一个基于Markdown实现的文档格式,格式控制力相对字处理软件会差一下,但是编写的难度也大大降低。加之Rmd可以方便的使用R系统中大量的函数包,特别是强大的R的数据分析和可视化功能,使得Rmd成为可再现研究有力的实现途径。同时,Rmd可以方便的导出成Html和PDF,甚至是docx,可以方便的使用这些生成的文档进行交流。
IPython Notebook是IPython开发组近年来最为重要的产品之一,自发布以来更新和进步的速度之快令人乍舌。IPython Notebook由于初始设计的原因使用基于JSON的存储方式,后期一直严重至今。文件本身的可读性比Rmd差很多,只能使用IPython的终端直接读取。但是,IPython基于Python的实现也使他具有很多不可比拟的优势。一方面,Python不是一种专业领域的语言,学习和使用的难度都较低。另一方面,Python的粘合功能极为强大,使得IPython Notebook可以实现诸多其他平台难以完成的工作。
总的来讲,IPython Notebook从发布以来一直强调其高动态的实现方式,得到的文档的动态性一般也强于Rmd。同时,Python下大量的函数库使得IPython可以完成的功能也远远多于Rmd,诸如使用Sympy进行公式推导等等。相比之下,Rmd中规中举,比较类似于往常的文档,大多基于文字解释,程序和图片。不过两者都可以方便的将科研工作者完成科研工作的流程和使用的方法细节描述的非常细致,都可以方便其他人对研究进行再现。也期待着随着可再现研究的进步,一些商业软件公司能加入到这一领域发布相应的可再现研究的商业支持平台,使更多的科研工作者可以更方便的进行可再现研究。
可再现研究有什么问题?
(to be continued)