首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用scipy,matplotlib对数据进行多模态分布拟合

使用scipy,matplotlib对数据进行多模态分布拟合
EN

Stack Overflow用户
提问于 2015-10-16 05:20:12
回答 1查看 11.1K关注 0票数 8

我有一个数据集,我想要拟合到一个已知的概率分布。目的是在数据生成器中使用拟合的PDF -这样我就可以从已知的(拟合的) PDF中采样数据。数据将用于模拟目的。目前,我只是从正态分布中抽样,这与实际数据不一致,因此模拟结果不准确。

我首先想使用以下方法:Fitting empirical distribution to theoretical ones with Scipy (Python)?

我的第一个想法是将其拟合为威布尔分布,但数据实际上是多模态的(附图)。所以我想我需要组合多个分布,然后将数据拟合到结果dist中,对吗?也许结合高斯分布和威布尔分布?

如何将scipy fit()函数用于混合/多模态分布?

另外,我想用Python (即scipy/numpy/matplotlib)来实现,因为数据生成器是用Python编写的。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-10-19 12:43:27

我建议使用核密度估计(KDE)。它为您提供了一个混合PDF格式的解决方案。

SciPy只有高斯内核(对于您的特定直方图来说,它看起来很好),但您可以在statsmodelsscikit-learn包中找到其他内核。

以下是相关函数,以供参考:

代码语言:javascript
运行
复制
from sklearn.neighbors import KernelDensity
from scipy.stats import gaussian_kde
from statsmodels.nonparametric.kde import KDEUnivariate
from statsmodels.nonparametric.kernel_density import KDEMultivariate

Python中的KDE的一个很好的资源是here

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33158726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档