【问题标题】:statistics packages for Common LispCommon Lisp 的统计数据包
【发布时间】:2012-05-15 07:57:45
【问题描述】:

我一直在为 Common Lisp 寻找一些好的统计包,它应该既稳定又高效。有lhstats,但它没有太多文档,目前也没有维护。那么在 Common Lisp 中进行统计编程的首选方式是什么(我正在使用 SBCL)?我正在寻找具有高级统计功能的软件包,例如 SEM(结构方程建模)、典型相关、GLM(一般线性模型)等,但即使是非常基本但稳定且记录良好的统计软件包也会很有用。从 Common Lisp 调用 R 统计函数也是一种选择。你有什么推荐的?

【问题讨论】:

  • 为什么一定要Common Lisp?我想你会发现从 Lisp 背景开始学习 R 并不难,这样你就不会试图重新发明轮子....
  • 是的,我实际上在考虑 R,它具有非常好的统计功能,而且我了解 R 语法的基础知识。我一直在寻找一个 Common Lisp 解决方案,因为它更适合通用编程恕我直言,但无论如何使用 R 进行统计也许是件好事,通过RCLRCLG
  • 我认为,如果你找到了一个好的 Common Lisp 解决方案,你不应该选择 R,因为它通常用于统计。还有一篇来自 R creator 的关于 Lisp 用于统计的有趣文章:stat.auckland.ac.nz/~ihaka/downloads/Compstat-2008.pdf 但是如果你决定使用 R,你可能想看看 swankr(R 的 SWANK 后端):common-lisp.net/~crhodes/swankr跨度>
  • @VsevolodDyomkin:我以前读过那篇文章,大部分情况下我都同意。特别是与 Common Lisp 相比,R 缺乏多线程和相对数值效率低下的问题是密集数值计算的大问题,因此使用 R 进行密集数值计算并不是一个有吸引力的选择。对于数值非密集型统计,使用 R 就可以了。
  • common-lisp-stat 是开发出来的,只是很慢。与家人的个人挑战让我放​​慢了脚步。但我很乐意通过blindglobe@gmail.com 回答问题。

标签: r statistics lisp common-lisp


【解决方案1】:

或许,你应该看看common-lisp-stat

【讨论】:

  • 我也在考虑这个选项,但后来在安装时遇到了一些困难:我使用git clone 获取存储库并按照Fast Start instructions 进行操作,但随后出现错误:@987654327 @。所以我需要rsm-string,而使用(ql:system-apropos "rsm") 是不可用的(就此而言,common-lisp-stat 也不可用)。那么我应该如何安装rsm-string 才能使用common-lisp-stat
  • 您可以从同一作者的 github 帐户 github.com/blindglobe 获取它(以及另一个依赖项:listoflists)并手动安装。你还需要来自github.com/danlentz/cldoc 的 cldoc(就像过去一样 :) 你还需要 libgfortran3、libblas 和 liblapack。
【解决方案2】:

我想我会使用 lhstat,它可能不再维护,但对于 common-lisp-stat 来说似乎也是如此(最后一次提交是 1 年),至少它可以通过 Quicklisp 获得。此外,也许这些包没有被维护,因为它们已经足够好了。

您也可以尝试RCL R 的 FFI 绑定,它也是可快速加载的。

【讨论】:

  • @VsevolodDyomkin:你怎么知道?尽管即使它得到维护,如果它符合我的需要,我也会使用可快速加载的东西,除非有另一个更好的系统(但我可能会尝试将它添加到 Quicklisp)。
  • 我在 github 上看到了它的维护者的活动。但是系统肯定应该进入 quicklisp(它实际上存在于github.com/quicklisp/quicklisp-projects,但不知何故不可用)。也许我们应该向blindglobe(和xach)提交一个问题以使其可用。
【解决方案3】:

我只知道它的名字,但是看这里http://incanter.org/

它称自己为“基于 Clojure 的、类似 R 的统计计算和图形平台”。其中 clojure 是 common lisp 的变体。

【讨论】:

  • 有趣。 Clojure 是 Lisp 的一种变体(Common Lisp、Scheme 和 Emacs Lisp 等也是如此),但 AFAIK 它不符合 Common Lisp ANSI 标准,恕我直言,它与它的区别也太大而无法考虑普通 Lisp 的一种变体(不过我还没有尝试过 Clojure)。
  • Clojure 不是 Common Lisp 的变体。它是一种独立的语言,具有类似 Lisp 的语法,基于 Java 和函数式范例。
  • 同意其他 cmets 认为 Clojure 不是 Common Lisp。我要补充的是,Incanter 非常好——我已经非常有效地将它用于数据可视化,如果需求是一般的 Lisp 而不是具体的 Common Lisp,那么值得考虑
【解决方案4】:

GNU Scientific Library 具有统计功能,可从GNU Scientific Library for Lisp 访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2011-04-27
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多