找回密码
 立即注册
查看: 3617|回复: 4

选择R语言做统计分析的理由

[复制链接]
发表于 2013-11-29 14:27:46 | 显示全部楼层 |阅读模式
R语言是S语言的一种开源实现,一种用于数据分析和图形化的编程环境。资深分析师Catherine最近撰文结合自己的实践经验详细介绍了R语言的优点和缺点。
Catherine指出,R主要用于做统计工作。你可以把它看成是像SAS Analytics分析系统的竞争者之一,R如此强大,诸如StatSoft STATISTICA 或者 Minitab与R相比,就不值一提了。
许多专业的政府部门、商业和制药行业的统计人员和方法论者把他们的事业都倾注在了IBM 的SPSS或者是SAS上,但是他们并不用写一条R代码就能用。所以,从某种程度上来说,决定去学习R是一个事关企业文化和你如何去工作的问题。我在我的统计咨询实践中使用好几种工具,但是我所用的大部分都是R。
关于R语言的优点,Catherine列举了若干条:
  • R是一个强大的脚本语言。我最近被邀请去分析一次概略研究的结果。这些研究者翻阅了1600篇研究论文,并把这些内容用几种标准来编码——事实上是大量的标准,并且这些标准还包括多个选项和分支。他们的数据曾经放到微软的Excel表格中,这表格中居然包括8000列,然后这些列大多是是空的。这些研究者们想要在不同的类别和标题下对总数进行压缩,R是一种强大的脚本语言,它能够像Perl的正则表达式一样来处理文本。凌乱的数据需要编程语言这样的资源,尽管SAS和SPSS有处理那些超越下拉菜单任务的脚本语言,但是R是被用作一门编程语言来写的,因此,对于这一目的,R是一种更好工具。
  • R领导新的方式。许多新的统计学方面的产品在成为商业平台之前,最初是作为R的包而出现的。我最近得到关于病人回访的医学研究的数据。对于每一个病人,我们有医生曾经建议的治疗条目的数量,同时也有病人实际记住的条目数量。自然模型是β-二项分布。自20世纪50年代以来,这一点已经被广泛熟知,但是把估计程序与感兴趣的协变量关联起来却是最近的事情。通常,像这样的数据都要用一般估计方程来处理,但GEE方法是渐进的,并且假设前提是样本足够大。我曾经希望R能够拥有处理广义线性模型与β-二项式的能力。恰好最近的一个包估计了这个模型: Ben Bolker所写的β-二项式。SPSS都没有完成这个功能。
  • 与文档整合在一起发布。R能够很好的与LaTex文档发布系统整合在一起,这意味着来自于R的统计输出和图形可以嵌入到可出版级的文档中。这并不是适合每一个人,除非你想写一本关于数据分析的书,或者你是不喜欢把你的结果拷贝到一个字符处理文档中,最短和最优雅的途径是通过R和LaTex来实现。
  • 没有花费。作为一个小企业的老板,我很喜欢R是免费的这一特点。甚至对于一个大企业,要知道你可以带一个有临时基础的人来,然后快速的让他们坐到工作站旁来使用领先的分析软件是一件很美妙的事情。没必要担心预算问题。
Catherine进一步指出,R是在S-Plus开发的附加模型的基础上对S的一种实现。有时候,同样的人也参与进对R的开发中。R是在GNU许可证下的一个开源项目,在此基础上,R通过不断的添加大量的包而持续增长。R把那些能被当做同一组安装,并且可以被R在会话期访问的数据集合、R函数、文档和动态加载项用C或者Fortran打包到一起。R的包添加新的功能到R,并通过这些软件包,研究人员可以很容易地分享他们的同龄人之间的计算方法。某些软件包是范围有限的,其他代表统计学的整个领域,含有其他一些包含了前沿的发展。事实上,许多统计学方面的开发包在变成商业软件之前最开始都是以R的包的形式出现的。
对于InfoSphere Streams和R语言的关系,Catherine表示,InfoSphere Streams的是一种先进的计算平台,允许用户开发的应用程序,以快速的采集、分析和关联信息,因为它会接收到数以千计的实时数据源,处理非常高的数据传输率:高达每秒数以百万计的事件或消息。它包括一个R-项目工具包。
InfoSphere Streams是一个计算平台,集成了对数以千计的数据源高流速的数据进行分析的开发环境。这些数据流的内容通常是非结构化或半结构化的。分析的目标是检查对那些基于实时事件的数据和直接决策的模式变化。SPL是InfoSphere Streams的编程语言的简写,它通过一个反映了数据的动态本质和快速分析和响应的必要范式来组织数据。
我们从经典统计分析的电子表格和通常的平面文件还是有很长的路要走的,但R都能适应。至于3.1版,SPL应用程序可以将数据传递到R,从而使用R的丰富的包库。InfoSphere Streams支持通过创建相似的R对象来接收包含着SPL元组(SPL中基本的数据结构)中的信息来支持R分析。InfoSphere Streams的数据可以传递到R作进一步的分析并把结果传回给SPL。
当然,R语言不是完美无缺的,Catherine也列举了R语言的缺点:
  • R不是一个数据仓库。在R输入数据的最简单的方法是输入在别处,然后将其导入到R。R已作出努力来添加电子表格的前端,但还没有做到完美。对电子表格功能的缺乏不仅影响数据输入并且这对在R可视化的查看数据也很难,而这些事情,你在SPSS和Excel中都可以完成。
  • R使得普通的任务在医疗研究中变得艰难。例如,当列出无应答和丢失的数据的发生的时候,你处理数据的第一步是对所有变量汇总统计。这在SPSS只需要点击几次鼠标,但R有没有内建的函数来计算这个相当明显的信息,并以表格形式显示出来。你可以很轻松地写一些东西出来,但有时你只是想用鼠标操作即可。
  • R的学习曲线是艰难的。一个新手可以打开一个菜单驱动的统计平台,并在几分钟内得到结果。并不是每个人都想从一个程序员变成一个分析师,当然,也许不是每个人必须这样。
  • R是开源的。R社区非常大,成熟,并且活跃度也很高,毫无疑问,R是其中较为成功的开源项目。正如我所展示的那样,R的实现花了20年以上的时间,并且S语言比R时间更长。它是一个论证过了的概念和产品。但是,任何开放源码的产品,它的可靠性依赖于透明度。我们相信代码,因为我们可以检查代码,,并且别人也可以检查代码进而报告错误。这与那些采取它在自己的基准,并验证其软件的公司项目是不同的。而对于那些较少被使用的R包,你没有理由相信它们做出了正确的结果。
转自:http://www.infoq.com/cn/news/2013/11/r-language
回复

使用道具 举报

发表于 2013-11-29 16:08:47 | 显示全部楼层
谢谢分享,正在犹豫学那个
回复

使用道具 举报

发表于 2013-11-30 10:12:43 | 显示全部楼层
其实我学这个是用来画图的
回复

使用道具 举报

发表于 2013-12-11 14:39:00 | 显示全部楼层
受教了,感谢分享
回复

使用道具 举报

发表于 2015-5-22 09:07:08 | 显示全部楼层
公司用SAS,但是由于不开源,限制颇多。拿R和Python做补充是个不错的选择。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 22:28 , Processed in 0.023632 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表