Ruby作为统计工作台


13

这也是一个与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学习统计信息。您可以假设此问题的统计背景。


谢谢编辑!我注意到我的感谢已消逝。对这些问题说谢谢你是个坏主意吗?(只想确认一下,对我来说没有问题-对该问题进行一些评论,但我不想为此而在meta上开始一个问题)。
Oeufcoque Penteano '04年

1
意见有所不同。在问题的末尾简短地“谢谢”是很常见的,但通常认为超出此范围是不必要的。您可以在站点范围内的元站点上快速找到指南,例如SE FAQ页面
whuber

Answers:


9

我使用Ruby + R。

您可以阅读以下文章:RinRuby:从Pure Ruby访问R解释器

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

和这个博客:

http://rubyforscientificresearch.blogspot.com

http://sciruby.com/

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


谢谢,您的回答将继续指导我要寻找的东西。我注意到参考文献的日期为2009年和2011年,我想知道是否有更多有关此红宝石的最新文献,因为红宝石是一种相当新的语言并且一直在增长?不过,我认为这是一个不错的起点。很高兴博客将红宝石用于科学研究,这正是我的情况。
Oeufcoque Penteano '04年

嗨,我喜欢红宝石和铁轨。我也爱R 您可以找到rubygems越来越多。rubygems.org/stats R也是如此。2003,R cran是200,现在是3600+ !!! 在2011年,Ruby gem是28000 gem,现在是36874 gem!您可以享受Ruby + R:D
ouyang 2012年

关于红宝石宝石的要点,我忘了那些。在使用Ruby作为工作台的问题上,也许其他人可以建议很少的红宝石宝石,这些宝石能正常工作并且坚固耐用?感谢您为我再次寻找的问题添加答案。
Oeufcoque Penteano '04年

4

旧(预编辑)答案:

如果您认为自己可以通过自己编写所有程序来学习统计信息,那么我想您将需要进行大量调试,而不是进行统计学习。另外,您将需要使用R之类的语言来检查您的答案。

我认为user765195在R方面要比许多其他语言更难调试,这一点很重要,但是“最糟糕”吗?我不这么认为。

编辑:

因此,如果我可以总结一下您的EDIT:鉴于您已经做过统计,并且您真的想使用Ruby代替实际的统计程序(R,gretl,SAS等),那么如何使您的生活更轻松。那正确吗?

我无法给出Ruby的答案,但我认为也应解决一般性问题。尤其是因为您要提到同一问题的其他实例化:“我想使用Python / perl / java / Clojure / C /无论执行什么统计”。

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

  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更有可能是合法的,但也可能有解决方法,对于其他三个答复,希望您会得到比我更好的答案。


这个问题的目的不是要与红宝石一起学习统计信息,请查看编辑内容,但是感谢您的想法,如果问题引起误解,我们深表歉意。
Oeufcoque Penteano '04年

谢谢,您说对了。统计知识的假设很好,现在我正在寻找库以学习如何在Ruby中做到这一点,例如针对Python的建议。我同意你的观点,有许多动机是可能的,但是再次重申一下(仅是为了让以后阅读本页面的读者),预期的答案是一个建议库,例如在Python问题中提到的库。我认为,如果对于使用哪种统计工具有很多不同意见的空间,那么也可以在该社区中提供有关它们的知识。谢谢!
Oeufcoque Penteano '04年

+1。最有可能的是,我们正在谈论拼写为“统计”的不同词语。使用Python或Ruby可以很容易地从日志中获取网站使用情况统计信息,这与说必须编写Cox模型或基于使用Ruby进行的两阶段分层调查得出的总体比率估算器的方差不同。(一个人必须完全按照答案2、3和4的要求绝望,甚至将Ruby视为首选语言。)一个人可以用最方便的语言进行模拟来补充其学习统计信息,然后再选择1是一个有效的答案。
StasK 2012年

@OeufcoquePenteano:最后,我认为我的问题归结为“工作台”。Python线程中的成功答案实际上是斯巴达式的。列出的所有资源组合甚至都不匹配基数R,更不用说考虑R包了。如果您必须使用Python进行一些统计,那么您有几个有限的选择,但是不要混淆,并且认为Python是一个很好的统计“工作台”。我希望您能得到一些答案,但是Ruby比Python更糟糕。
韦恩

@Wayne,很好。我不打算将R换成Ruby,Python或Excel。但是我很好奇知道Ruby提供了什么。也许Ruby中的几个宝石比某些鸡蛋(它们在Python上调用的那个鸡蛋好吗?不确定)好,反之亦然。也许Excel在某些方面更胜一筹。例如,我认为Excel可以帮助进行一些非常肤浅的分析,然后深入研究R或其他工具。因此,这不是“选择一个”的问题,而是要了解每个世界的最佳状态并了解它们,然后选择一个更适合给定问题的解决方案。谢谢你的建议。
Oeufcoque Penteano '04年

-1

一些随机的想法:

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

你好!谢谢您的意见。我很高兴看到对R的不同看法。我也会考虑您在说什么,因为我也在研究此处未提及的其他工具。也许我的问题令人误解。我仍在学习统计信息,实际上我有关R的问题是关于此的,但是对于Ruby而言则有所不同。我很好奇如何将红宝石用作工作台,例如可用于python和excel。我还将考虑研究Haskell,但是如果您对Ruby有任何建议,我也将不胜感激!谢谢!
Oeufcoque Penteano '04年

Haskell进行统计?谈论不必要的干扰……
Phillip Cloud

-1,不可能在r中调试代码吗?
mpiktas 2012年

我应该注意,这个答案中只有关于R中调试的段落不正确。其他一切似乎都应该得到支持。除了Haskell,我没有任何经验。但是,有关调试的注意事项是存在的。
mpiktas 2012年

1
@cpcloud:数学和统计学的语言是lambda微积分。Haskell就是lambda微积分。在Haskell中表达数学结构的方式与在数学书中所描述的完全相同。因此,该语言的开销几乎为零。实际上,《 Haskell逻辑之路》一书通过使用Haskell进行了数学教学。我建议你看看那本书。
user765195'4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.