Ruby 作为统计工作台

机器算法验证 r Python 软件 红宝石
2022-03-22 07:35:07

这也是一个与Python 作为统计工作台excel 作为统计工作台密切相关的问题。我知道有很多关于 Ruby 与 Python 的讨论,但这不是这个问题的重点。我认为 Ruby 比 Python 更快并且具有非常自然的语法可以帮助我理解统计数据,并且也可以成为 R 的一个很好的替代品(这也是我感兴趣的,并在我关于 R 的另一个问题中被引用在这里)。例如,在我看过的 Google Tech 讲座之一中(在链接的问题中引用,讲师抱怨 R 在创建 for 循环时速度很慢)。使用 Ruby 也有 Rails,所以也许也有可能将两者结合在一起(Python 确实有 Django,但我再次没有涉及到)。

所以,问题是一样的,但出于我的兴趣,在 Ruby 中:

  • 如果我想使用 Ruby 作为“统计工作台”来替代 R、SPSS、Python、Excel等,你有什么建议?

  • 根据你的经验,我会得到什么,失去什么?

请注意,我正在根据之前的 Python 和 Excel 问题考虑这个问题。如果您认为使用 Ruby 和 Python(或 Excel)会产生相同的影响,那么请这样说并指出任何先前问题的论点,此问题的目的不是为了相同的答案复制先前的问题。但是,我确实相信存在差异(例如语言的速度和语法),但我也特别想知道对 Ruby 的建议,或者是否有可用的比说的少得多Python 或 Excel。因此,请考虑这些非常相似的问题的先前答案,但对于其他语言/程序。

编辑:只是为了突出显示,因为答案似乎是另一种方式,我正在寻找的答案是我链接到的 Python 问题中选择的答案。不是与 Ruby 一起学习统计数据。我确实指出了用R学习统计的问题如果有可能很好,但我不希望同时使用 Ruby 学习统计数据。你可以假设这个问题的统计背景。

3个回答

我正在使用 Ruby+R。

您可以阅读论文:RinRuby:从纯 Ruby 访问 R 解释器

http://www.jstatsoft.org/v29/i04/paper

这个博客:

http://rubyforscientificresearch.blogspot.com

http://scruby.com/

(sciruby 的作者也是 R 用户。)

旧(预编辑)答案:

如果你认为你可以通过自己编程来学习统计数据,我会说你已经陷入了一个充满调试而不是统计学习的漫长过程中。另外,无论如何,您都需要像 R 这样的语言来检查您的答案。

我认为 user765195 的意义在于 R 比许多其他语言更难调试,这很重要,但“最糟糕”?我不这么认为。

编辑:

因此,如果我可以总结您的编辑:鉴于您已经进行了统计,并且您确实想使用 Ruby 而不是实际的统计程序(R、gretl、SAS 等)来进行统计,那么您如何让您的生活更轻松. 是对的吗?

我无法给出 Ruby 的答案,但我认为一般性问题也应该得到解决。尤其是因为您指向同一问题的其他实例:“我想使用 Python/perl/java/Clojure/C/whatever 来做统计”。

我认为答案永远是:“为什么要使用通用的、原始的(统计方面的)工具来完成专门工具做得更好的工作?” 我可以看到六个基本回复:

  1. 我只是不想学习另一种语言,而且由于我精通 Python/Ruby/Excel/Java,所以我坚持使用该语言。

  2. 我想做的统计数据必须适合更大的项目(例如基于 Web 的工具),并且该项目使用的工具不能很好地与外部工具配合使用,所以我必须使用 Python/Ruby/Java。(或者可能是部署应用程序的问题,并且无法尝试部署任意可执行文件。)

  3. 我会使用专门的工具,但我可以使用的工具(比如 R,它是免费的)太慢或无法处理我项目的庞大数据集/实时要求。

  4. 我的雇主/客户坚持我使用通用语言 Python/Ruby/Excel/Java。我别无选择,我正在寻找最不痛苦的方式来遵循这个要求。

  5. 我所说的“统计”是指非常简单的东西,比如寻找均值/中位数、方差等。当我只想计算哪些点在 1-sigma 之外时,为什么要引入一个可以通过 MCMC 计算混合效应模型的专用包远离平均值?

  6. 我正在做一些非常专业的事情,即使像 R 这样的统计包也没有包/库/函数。它不仅是尖端的,而且需要超高性能,我需要从头开始。(或者也许使用我已经用 X 语言开发的库。)

在我看来,回复 1 不是一个好回复,回复 2 可能是合法的,但可能有您不知道的解决方法,回复 3 更可能是合法的,但也可能有解决方法,对于其他三个回复,希望你能得到比我更好的答案。

一些随意的想法:

  • 您提到您正在寻找一个学习统计数据的工作台。恕我直言,您提到的平台都不适合学习统计数据。学习特定语言的语法和语义会分心太多。如果你想学习统计,只需拿起一本书(我强烈推荐 Tukey 的 EDA),也许还有一个计算器。在统计概念之上学习一门语言是一种非常不必要的干扰。
  • 抱怨 R 循环慢的人是在暴露他的无知:循环并不是每种语言的自然构造。它们在大多数函数式编程语言中都很慢。另一种方法是函数应用程序,这通常很快。
  • 谈到编程语言,速度应该是您最不关心的问题。一个更重要的问题是调试代码的难易程度。
  • 谈到调试,R 可能是我所知道的最糟糕的编程语言。有时无法调试代码。最重要的是,现有软件包的文档通常写得很糟糕。总的来说,我的建议是,如果你可以避免使用 R,那就去做吧。
  • 我只是稍微熟悉 Python 的统计内容。我的理解是,NumPy 并不是真正专业编写的,也没有考虑数字问题。
  • 你考虑过Haskell吗?它绝对是最好的编程语言。