26

我需要一些关于为 Python 选择统计数据包的建议,我已经做了很多搜索,但不确定我是否一切都正确,特别是关于 statsmodels 和 scipy.stats 之间的差异。

我知道的一件事是具有 scikits 命名空间的那些是 scipy 的特定“分支”,而过去的 scikits.statsmodels 现在称为 statsmodels。另一方面,还有 scipy.stats。两者有什么区别,哪个是Python统计包?

谢谢。

- 编辑 -

我更改了标题,因为有些答案与问题并没有真正相关,我想那是因为标题不够清楚。

4

3 回答 3

38

Statsmodels 将 scipy.stats 作为依赖项。Scipy.stats 有所有的概率分布和一些统计测试。它更像是 numpy 和 scipy 的库代码。另一方面,Statsmodels 为统计模型提供了一个类似于 R 的公式框架,并且可以与 pandas DataFrames 一起使用。statsmodels 中还有统计测试、绘图和大量辅助函数。真的这取决于你需要什么,但你绝对不必选择一个。他们有不同的目标和优势。

于 2013-01-29T03:34:59.237 回答
4

我尝试在日常工作中使用 pandas/statsmodels/scipy,但有时这些软件包有点短(LOESS,有人吗?)。RPy 模块的问题是(至少我上次检查过)它想要一个不是当前版本的特定 R 版本——我的 R 安装是 2.16(我认为)而 RPy 想要 2.14。所以要么你必须有两个 R 的并行安装,要么你必须降级。(如果您没有安装 R,那么您可以安装正确版本的 R 并使用 RPy。)

因此,当我需要不在 pandas/statsmodels/scipy 中的东西时,我会编写 R 脚本,并使用subprocess模块运行它们。这让我尽可能少地与 R 交互(我真的不喜欢在其中编程),但我仍然可以利用 R 具有的所有 Python 包所没有的东西。

教训是,任何问题都没有一个解决方案——你必须以你理解的方式组装一大堆对你有用的部分(也许你自己写一些),以解决问题。(R 爱好者当然会不同意!)

于 2013-01-29T04:29:59.933 回答
-1

我认为统计包是 numpy/scipy。如果您想使用 matplotlib 绘制数据,它也非常有用。但是,据我所知,matplotlib 尚不适用于 Python 3.x。

于 2013-01-29T01:13:26.357 回答