我该选择谁? | SAS R Python的比较

2018-04-04 16:55:08 浏览数 (1)

几天(上周日),我在分答上回答了一个问题,问题是:

Python,R,SPSS,SQL这类软件哪个最适合初学者入门以及进阶学习的顺序(以就业为导向)

语音中我从“职能方向”和“行业方向”聊了一下自己的看法,推荐的三个软件是SAS、R和Python。感兴趣的可以去我的分答“偷听”。

(二维码可以翻看之前推送的消息,或者在后台回复【fenda】获取,也可以在分答中搜索“数说君”,那个最帅的就是我)。

今天再推荐一篇文章作为补充资料,这篇文章讨论的就是SAS、R和Python这三个工具,从几个方面进行了比较,每个方面都给予了打分。

原文载于analyticsvidhya.com,作者Kunal Jain(原文见左下角“阅读原文”),数说工作室原创翻译,转载请注明微信号和微信ID


SAS vs. R (vs. Python) – which tool should I learn

SAS和R的比较已经是分析界最大的争论了,Python也值得一辩。本文再对这三个工具进行比较和讨论,希望大家可以从中获得收益。

难道这样的比较还不够多吗?

很多了!但是我仍然觉得有必要再讨论,因为:

  • 咱们这行日新月异,变化很快;
  • 此前的比较一直都不太重视Python,我认为现在咱们需要认真的考虑一下它;
  • 本文是从全球的角度来比较这三个工具的应用情况。

背景

关于这三者的简单介绍:

(1)SAS:在商业分析领域,它是无可争辩的霸主。SAS提供了丰富的统计功能,友好的GUI界面可以让分析师快速上手,技术支持也做的相当到位。但,太贵了,并且对于一些最新的统计分析方法,SAS更新比较慢。

(2)R:R可以看做SAS的一个“开源版本”,在学术研究上的应用一直很广泛。由于它是开源的,新的模型和算法也更新很快,并且网上有很多说明文档,是个蛮划算的选择。

(3)Python:最早是一个开源脚本语言,近几年使用率大增。如今一些库(如numpy、scipy和matplotlib)和函数的引入,也使得它能支持几乎所有统计分析和统计建模工作。另外也由于Pandas这个库,使得Python在结构化数据的处理上非常给力。

比较

我将从如下几个方面来比较这三个工具:

1. 成本 2. 易学性 3. 数据处理能力 4. 图形处理能力 5. 更新速度 6. 工作前景 7. 客服支持和社区资源

对于每一个方面,作者都给出了一个评分(1分最低、5分最高)。

1. 成本

SAS是商业软件,对于大部分分析师个人来说,是根本买不起的!但是SAS在机构或公司中拥有最高的市场份额。而R和Python是免费的,并且可以任意下载,所以我的评分是:

  • SAS - 2
  • R - 5
  • Python - 5

2. 易学性

首先,SAS非常容易上手,比如它的PROC SQL命令,对于任何一个学过SQL的人来说都可以立即上手。并且SAS有一个很好的GUI界面,网上有很多学习资源。SAS公司也提供了资格认证考试,当然,这又增加了学习者的成本。

R的使用要求懂一点编程,但它是一个低阶的编程语言,也因此一个简单的程序需要编写更长的代码。

在编程界,Python以简易性闻名,在数据分析界也是如此。虽然目前为止还没有一个很好的GUI界面,但我希望Python的notebook可以变得越来越主流,因为它非常方面编辑、记录与分享。

  • SAS - 4.5
  • R - 2.5
  • Python - 3.5

3. 数据处理能力

数据处理能力曾经一直是SAS的优势。R的计算都在RAM内存中进行,于是它的计算过程受限于32位机器的RAM内存大小。当然,这一切都将不再是问题(数说君注:由于机器的性能提升?),这三种软件都有非常好的数据处理能力并且可以并行计算。

因此在我看来数据处理能力已经不能区分这三个工具(当然可能有一些我并不知道的创新),因此我给它们打分一样:

  • SAS - 4
  • R - 4
  • Python - 4

4. 图形处理能力

SAS在“功能性”图形处理上表现不错,然而仅仅是对“功能性”而言。如果你想对图进行一些定制化的修改,则需要去了解纷繁难懂的SAS图形包。

与其他2款软件相比,R在图形处理上的表现最好,有非常多的包可以帮你实现。

Python的表现居中,你不仅可以使用本地库(matplotlib),还可以调用R使用一些衍生库。

  • SAS - 3
  • R - 4.5
  • Python - 4

5. 更新速度

这三个工具都提供了基本的、以及最常用的分析函数,你可以应付大部分模型的构建。但假如,你正好需要使用最新最前沿的技术或算法怎么办?

R和Python由于其开源性,算法可以很快得到更新,R因为一直广泛使用于学术界,因此更新最快,SAS则要再下一个版本中得到更新。

但从另一方面来说,SAS的更新是自有的研发团队完成的,并且得到了很好的测试。而R和Python的更新是“公开贡献”的,出错的可能性要比较大。

  • SAS - 4
  • R - 4.5
  • Python - 4

6. 工作前景

全球而言,SAS仍然是公司和机构中使用最多的工具,尤其是大型公司。而R/ Python更多是初创公司的选择,或者是一些想要节约成本的公司。最近几年,R和Python在工作中的使用率增长很快,下面是网络上公开的,使用R和Python的工作数量趋势图:

在印度(数说君:作者是印度人),我估计SAS占据约70%的市场份额,R大概15%,而Python不到5%,但增长趋势与全球差不多。

  • SAS - 4.5
  • R - 3.5
  • Python - 2.5

7. 客服支持和社区资源

R有最大的在线社区,但没有客服支持,因此出现麻烦只能自己想办法解决,当然也会得到别人的很多帮助,Python也类似。

SAS有专门的客服支持系统,也有在线社区,所以如果遇到安装或者其他问题,你可以找他们解决。

  • SAS - 4
  • R - 3.5
  • Python - 3

(数说君:当然,这个评分在中国约等于没用,原因你懂的:-D)

8. 其他因素

还有几点值得注意:

  • Python在网站开发中应用广泛,所以如果你从事的是互联网相关工作,用Python会比较方便。
  • SAS在端到端的部署上(可视化分析、数据仓库等),曾经有巨大的优势,但由于近年一些平台如SAP HANA和Tableau上对R的集成和支持,使得SAS的这一优势下降。尽管和SAS的无缝集成相比差距还很远,但道路已经开启。

结论

行业日新月异,现在说谁输谁赢还太早,根据你自己的情况(职业阶段、财务情况等),选择合适自己的。这里有几个小建议:

  • 如果你是数据分析行业里的新人,我会建议你首先使用SAS,它非常好学,并且市场占有率最高。
  • 如果你在数据分析行业已经摸爬滚打了几年,那你应该学习一个新的工具来扩展你的专业技能。
  • 对于此行业里的专业人士,至少应该掌握2种工具,以应对未来的机会与挑战。
  • 如果你在一家创业公司,或者你是个自由职业者——我想你还是老老实实用R或者Python吧!(数说君:这条不供参考,原因你也懂得)

最后的得分总结如下:

.END.

0 人点赞