32

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

各位有什么建议?是否有任何语言的语法/语义特别面向此?或者是否有任何语言具有非常好的库?

4

16 回答 16

52

无可争辩——R作为S 的主要实现(而且恰好是适当的开源和 GNU 项目)。

不仅因为 S 语言专门为此目的而设计(参见 John Chambers 的书籍),而且CRAN对特定领域包的相当丰富的支持是首屈一指的:超过 2000 个具有适当质量控制的包,通常由场。

ACM在 1998 年将ACM 软件系统奖授予约翰·钱伯斯(John Chambers)时也有同样的看法,引用如下

约翰·M·钱伯斯

对于 S 系统,它永远改变了人们分析、可视化和操作数据的方式。

作为参考,该奖项的其他获奖者是 TeX、Smalltalk、Postscript、RPC、'the web'、Mosaic、Tcl/Tk、Java、Make,...... 不错的公司。

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

于 2010-02-04T15:08:22.420 回答
15

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

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

其次,应该承认,使用 R 语言是一种乐趣。它是我的主要语言,在尝试过替代语言后,我无意很快放弃它。但它也没有垄断它在数据编程方面的实力,而且这种说法可能太过分了。所有的 Lisp 和函数式语言都擅长数据编程。毕竟,Lisp 源自“列表编程”,正是 Lisp 对 R 的影响使该语言成为现在的样子。

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

因此,尽管 R 无疑是统计计算的最佳语言,但我认为熟悉 OCaml、Haskell 或(可能)Clojure/Incanter 等另一种语言具有一定的价值。

于 2010-02-06T23:05:15.127 回答
10

看看 基于clojure的Incanter。“Incanter 是一个基于 Clojure 的、类似 R 的统计计算和图形平台。” Clojure 是一种在 JVM 之上实现的基于 lisp 的语言。它可以轻松访问 java 库。没有比这更通用的了。

于 2010-02-04T16:40:08.437 回答
6

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

  1. 数据的处理和转换。

  2. 统计分析。

  3. 图形。

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

  • 一个脚本,通过识别和匹配不同架构的静态和动态库,然后通过lipo.

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

  • 一组脚本,用于创建地理参考图像,使用 将图像切割成图块集GDAL,形成JSON描述输出的清单并将结果上传到网站以供OpenLayers.

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

哇!有一个包可以做到这一点?!

于 2010-02-08T17:33:46.440 回答
5

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

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

因此,除了选择一种编程语言(我认为其他人已经回答了您的问题)之外,您还需要一种语法来定义脚本管道:您可以使用程序“gnu/make”(例如阅读)或使用这个圣人,还是有其他解决办法。

于 2010-02-08T11:52:21.957 回答
4

我会说 R,因为我大学的大多数统计课程都使用 R,而我大多数参加过此类课程的朋友都对它的范围和范围非常满意。

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

干杯

于 2010-02-04T14:48:00.907 回答
4

如果您所做的只是统计数据,R就很棒。它有一个很好的交互式界面和可视化工具。但是,它很难用作通用语言,因为它的语法和语义针对统计数据进行了高度优化。如果您想要一种更通用的语言,带有 SciPy 的 Python 将是一个不错的选择,尽管我使用过它并且发现其中的统计例程有些不成熟。在极端情况下,它们通常效率低下或失败。

如果您正在对大型数据集进行数据挖掘,使性能很重要,和/或您不介意使用 alpha-ish 工具,那么 D 编程语言和dstats 库可能会非常好。D 是一种通用语言,但恕我直言,dstats 非常易于使用,因为模板元编程使得即使在静态编译、接近金属的语言中也可以轻松设计出漂亮的 API。(完全披露:我写了大部分 dstats,所以我当然认为这很好。)

于 2010-02-05T01:17:06.373 回答
3

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

于 2010-02-04T14:45:54.753 回答
3

您是否考虑过使用像MatLab这样的东西?它具有许多执行数据分析的高级功能,您可以在环境中进行一些编程。

于 2010-02-04T14:46:38.713 回答
3

斯塔塔呢?我有一个朋友是经济学博士生,他一直对 Stata 赞不绝口。我个人对Mathematica有浓厚的兴趣。

于 2010-02-04T14:50:50.857 回答
2

Matlab也擅长统计。不过,它并不完全免费。

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

于 2010-02-04T14:46:17.640 回答
2

我的一个专注于市场统计的朋友使用SAS。我对此了解不多——它看起来不像是一种“真正的”语言,但可能值得一试。

我完全支持带有 R 绑定的 Python。

于 2010-02-04T14:46:41.343 回答
2

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

ROOT 是一个C++框架,还带有 python 和 ruby​​ 绑定。它还包括一个有限的交互式C++解释器。

于 2010-02-04T14:52:29.863 回答
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,而是或多或少支持代码突出显示和代码建议的编辑器,这也有助于完成它。R 中的 Farnsworth Econometrics 是一本不错的读物。啊,我不能忘记提到阴谋。Hadley Wickham 的 ggplot2 包刚刚摆脱困境。只要您不需要它们进行交互,这是创建图形的最佳方式。

于 2010-07-02T11:14:26.767 回答
1

APL显然是用于统计工作的最佳语言之一。虽然它不是通用的......

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

请参阅Conway 在 APL 的一行中的生命游戏,了解可以用它做什么的概述。

于 2010-02-04T14:50:18.377 回答
0

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

于 2013-02-09T05:07:11.737 回答