我需要一些关于为Python选择统计数据包的建议,我做了很多搜索,但不确定我是否做得对,特别是statsmodels和scipy.stats之间的区别。
我知道的一件事是scikits命名空间是scipy的特定“分支”,而以前的scikits.statsmodels现在称为statsmodels。另一方面,还有scipy.stats。两者之间有什么区别,哪一个是 Python的统计软件包?
感谢。
- 编辑 -
我更改了标题,因为有些答案与问题没有关系,我想这是因为标题不够明确。
答案 0 :(得分:33)
Statsmodels将scipy.stats作为依赖项。 Scipy.stats具有所有概率分布和一些统计测试。它更像是numpy和scipy中的库代码。另一方面,Statsmodels提供了具有类似于R的公式框架的统计模型,并且它与pandas DataFrames一起使用。 statsmodels中还有统计测试,绘图和大量辅助函数。真的,这取决于你需要什么,但你绝对不必选择一个。他们有不同的目标和优势。
答案 1 :(得分:3)
我尝试在日常工作中使用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 aficionados当然不同意!)
答案 2 :(得分:-1)
我认为统计数据包是numpy / scipy。如果您想使用matplotlib绘制数据,它也很有用。 但是,据我所知,matplotlib还不能与Python 3.x一起使用。