哪些编程语言有利于统计?

时间:2010-02-04 14:42:29

标签: programming-languages r statistics libraries

我最近对某些事情进行了更多的统计分析,我很好奇是否有任何编程语言特别适合这个目的。我知道R,但我更喜欢一些更通用的东西(或者R是非常通用的?)。

你们有什么建议?是否有任何语言的语法/语义特别针对这个?或者是否有任何语言具有非常好的库?

16 个答案:

答案 0 :(得分:52)

没有竞争 - R作为S的主要实现(并且恰好是正确的开源和GNU项目)。

不仅因为S语言正是为此目的设计的 (请参阅John Chambers的书籍),但CRAN对特定领域软件包的相当丰富的支持是首屈一指的:超过2000个具有适当质量控制的包装,通常由该领域的专家撰写。

ACM在1998年以ACM Software Systems Award

citation向约翰钱伯斯提供{{3}}时看到的方式相同
  

John M. Chambers

     

对于永远存在的S系统   改变了人们分析,可视化的方式,   并操纵数据。

作为参考,此奖项的其他获奖者是TeX,Smalltalk,Postscript,RPC,“网络”,Mosaic,Tcl / Tk,Java,Make,......这不是一个糟糕的公司。

现在,如果您“只想”收集和汇总一些数据,那么任何程序或功能语言都可以。但是如果你想要一些设计用于数据编程的东西,那么R就是主要的S实现。

答案 1 :(得分:15)

正如Dirk所说,毫无疑问 R 是统计数据的最佳语言。我只想补充几点:

首先,我认为你应该使用R的主要原因是因为社区。在这个阶段,学术界和工业界的专家大量使用它,没有其他语言可以与CRAN上的财富相媲美。

其次,应该承认R语言是一种乐趣。这是我的主要语言,并且在尝试了替代方案后,我没有意图在任何时候放弃它。但它也没有垄断数据编程的优势,这种说法可能会走得太远。所有Lisp和Functional语言在数据编程方面都很强大。毕竟,Lisp源自“列表编程”,而Lisp对R的影响使语言成为现实。

R社区的成员(例如Ross Ihaka)实际上将Lisp视为未来的统计语言(参见“回到未来”论文作为参考),因为有一些深层设计问题。 R语言(例如,没有多线程)。

因此,虽然R无疑是统计计算的最佳语言,但我认为熟悉另一种语言如OCaml,Haskell或(可能)Clojure / Incanter有一些价值。

答案 2 :(得分:10)

根据Incanter查看clojure。 “Incanter是一个基于Clojure的,类似R的统计计算和图形平台。” Clojure是一种基于lisp的语言,在JVM的顶层实现。它可以轻松访问Java库。无法获得更多的通用目的。

答案 3 :(得分:6)

根据我的经验,R在这些领域是一种非常强大的语言:

  1. 操纵和转换数据。

  2. 统计分析。

  3. 图形。

  4. R绝不是一个三招小马。我还将语言应用于不完全适合上述类别的任务。一些例子是:

    • 通过识别和匹配不同体系结构的静态和动态库,然后通过lipo运行生成的组来协助创建OSX通用二进制文件的脚本。

    • 从网页上抓取信息的脚本。

    • 一组用于创建地理配准图像的脚本,使用GDAL将图像剪切为图块集,形成一个描述输出的JSON清单,并将结果上传到网站,以便立即显示OpenLayers

    我最喜欢使用R的部分是我说的频率:

      

    WHOA!有一个包 THAT?!

答案 4 :(得分:5)

您可以查看程序sage,它是python解释器的重新实现,允许您使用a调用不同的编程语言来进行统计(R,matlab,octave等)。 python语法。

编写程序进行统计时遇到的一个主要问题是,您最终可能会遇到许多不同的小脚本,每个脚本都执行单独的任务,最终会导致文件夹混乱并导致结果混乱。< / p>

因此,除了选择编程语言(我认为其他人已经回答了你的问题)之外,你还需要一种语法来定义脚本的管道:你可以用程序'gnu / make'来实现它(例如read { {3}})或使用此this,或者还有其他解决方案。

答案 5 :(得分:4)

我会说R因为我大学的大部分统计课程都使用R而且我的大多数参加过这些课程的朋友对其范围和范围非常满意。

我甚至尝试过MATLAB,发现它非常方便。

欢呼声

答案 6 :(得分:4)

如果你正在做的所有是统计数据,那么R很棒。它有一个很好的交互式界面和可视化工具。但是,它很难用作通用语言,因为它的语法和语义在进行统计时非常高度优化。如果你想要一个更通用的语言,使用SciPy的Python将是一个不错的选择,虽然我已经使用它并发现其中的统计例程有点不成熟。它们通常效率低下或在极端情况下失败。

如果您正在对大型数据集进行数据挖掘,使性能变得重要,并且/或者您不介意使用alpha-ish工具,则D编程语言和dstats library可能非常好。 D就像你得到的通用语言一样,但是IMHO dstats非常容易使用,因为模板元编程使得即使在静态编译的,接近金属的语言中也可以很容易地设计出一个好的API。 (完全披露:我写了大部分dstats,所以我认为这很好。)

答案 7 :(得分:3)

pystats library(适用于Python)非常适合进行统计分析。

答案 8 :(得分:3)

您是否考虑使用MatLab之类的内容?它具有许多执行数据分析的高级功能,您可以在环境中进行一些编程。

答案 9 :(得分:3)

Stata怎么样?我有一个朋友,他是博士生经济学博士,他一直对Stata赞不绝口。我对Mathematica有个人的亲和力。

答案 10 :(得分:2)

Matlab也擅长统计数据。但这并不是完全免费的。

Octave是一个免费的克隆版,可能也可以满足您的需求。

答案 11 :(得分:2)

我的一位专注于市场统计的朋友使用SAS。我不太了解它 - 它似乎不是一种“真正的”语言,但可能值得一试。

我全都是使用R绑定的Python。

答案 12 :(得分:2)

查看RooFitROOT包。它被例如用于粒子物理学家进行数据分析。

ROOT是一个C++框架,还附带了python和ruby绑定。它还包括一个有限的交互式C++翻译。

答案 13 :(得分:2)

我也想为R添加+1。它可能不像STATA甚至SPSS那样容易处理,特别是对于非程序员。虽然我猜平均stackoverflower比我更像程序员。

话虽如此,我想简要介绍一下,因为我看过一些用户的统计软件包(经济学家(观点)。

STATA仍然是大多数经济学家的选择,实际上它也有一些优势。 STATAs GUI有助于掌控一系列选项和统计功能。除了STATA似乎只是一个包含邮件列表的软件包,它至少有点接近基准:独一无二的R邮件列表。还有人可以编写复杂的.do文件或从网上下载一些文件。 STATA可能不像R那样接近编程语言,但仍然提供了一种很好的编程语言用于统计目的。根据数据集的大小,您应该检查所需的许可证。

您还可以使用SPSS,它甚至比STATA更像是一个GUI工具,并且对于计量经济学工作(例如TOBIT模型或面板回归,尤其是离散选择模型)而言,它不太全面。

还有Eviews - 遗憾的是我已经忘记了大部分内容,并且在我的学习中只使用它进行了几次简单的回归。因此,我在这里命名。 GAUSS也是如此,它看起来比其他人更具数学性。最近我听说过Octave,它也更具数学性。

对于我个人的用法,R比其他任何东西都要强硬。偶尔我会用Python配对它或将它连接到MySQL或PostgreSQL数据库,这也很有效。 R真的可以帮助您学习统计数据,因为您需要了解更多信息才能执行某些操作,而不是单击通过SPSS之类的方式。虽然如果你需要一个GUI,你可以尝试RKward或考虑在Windows上安装Komodo / Sciviews-R或Tinn-R。后者不是GUI,但编辑器或多或少支持Code Highlight和代码建议,这也有助于完成它。 R中的Farnsworth计量经济学是一本很好的读物。啊,我不能忘记提到密谋。来自Hadley Wickham的ggplot2套装刚刚起步。只要您不需要它们是交互式的,那么创建图形的最佳方式。在一天结束时,R真的是最灵活的包:你甚至可以将它安装在网络服务器上并构建一些漂亮的网络界面 - 天空是极限。

答案 14 :(得分:1)

APL显然是统计工作的最佳语言之一。虽然不是一般目的......

它需要特殊的键盘和字体,因为它不使用ascii。

请参阅Conway's Game of Life in one line of APL,了解可以用它做些什么。

答案 15 :(得分:0)

因为我是统计学的学生。我发现R在所有其他统计相关软件中是最好的。也许它有能力用统计数据做任何事情。