Python统计包:statsmodel和scipy.stats之间的区别

her*_*rfz 21 python scipy scikits statsmodels

我需要一些关于为Python选择统计软件包的建议,我做了很多搜索,但不确定我是否做得对,特别是statsmodels和scipy.stats之间的区别.

我知道的一件事是scikits命名空间是scipy的特定"分支",而以前的scikits.statsmodels现在称为statsmodels.另一方面,还有scipy.stats.两者之间有什么区别,哪一个是Python 统计软件包?

谢谢.

- 编辑 -

我更改了标题,因为有些答案与问题没有关系,我认为这是因为标题不够明确.

jse*_*old 33

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

  • "python中的"统计包都在一起.scipy.stats有大量的分布,大多数常见的参数和非参数统计测试,以及描述性统计.statsmodels更侧重于估计统计模型.作为scipy.stats和statsmodels的维护者之一,我们尝试将代码重复保持在非常低的水平. (10认同)
  • 这正是我正在寻找的答案.我非常了解R以及你可以用它做什么,包括与Python的接口.而且我不是在寻找不同统计软件的比较.问题是关于Python中statsmodel和scipy.stats之间的关系(即差异).我知道stackoverflow充满了像你这样能干的帅哥,谢谢!(除了那些关闭了问题的人,你们不冷静...........我当然只是开玩笑) (3认同)

Ben*_*dee 5

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

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

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