【问题标题】:Identifying a distribution from a pdf in python从python中的pdf识别分布
【发布时间】:2016-03-22 16:34:54
【问题描述】:

我有一个未知分布的概率密度函数,它以一组元组 (x, f(x)) 的形式给出,其中x=numpy.arange(0,1,size) 和 f(x) 是相应的概率。

识别相应分布的最佳方法是什么?到目前为止,我的想法是根据 pdf 绘制大量样本(通过自己从头开始编写代码),然后使用获得的数据来拟合 scipy.stats 中实现的所有分布,然后取最佳拟合。

有没有更好的方法来解决这个问题?例如,scipy.stats 中是否有某种我缺少的实用程序可以帮助我解决这个问题?

【问题讨论】:

  • here。一般来说,这并不是真正可以解决的。
  • 感谢您的链接。我不确定如何在没有要接受的答案的情况下关闭问题,您介意将其重新发布为答案吗?

标签: python scipy statistics


【解决方案1】:

从根本上说,实际上不可能根据经验样本总结分布 - 请参阅 here 讨论。

可以做一些更有限的事情,即拒绝/接受它来自有限(参数)分布中的一个的假设,基于有点武断的标准。

鉴于分布的有限集合,对于每个分布,您或许可以实际执行以下操作:

  1. 使分布的参数适合数据。例如,scipy.stats.beta.fit 将拟合 Beta 分布的最佳参数(所有scipy 分布都有这种方法)。

  2. 拒绝/接受数据是由此分布生成的假设。有不止一种方法可以做到这一点。一种特别简单的方法是使用分布的rvs() 方法生成另一个样本,然后使用ks_2samp 生成Kolmogorov-Smirnov 检验。

请注意,某些特定发行版可能具有更好的临时算法,用于测试该发行版家族的成员是否生成了数据。像往常一样,正态分布有很多特别的(参见Normalcy test)。

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 2018-01-28
    • 2018-07-05
    • 1970-01-01
    • 2020-12-26
    • 2014-05-15
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多