【问题标题】:python scipy.stats pdf and expect functionspython scipy.stats pdf和expect函数
【发布时间】:2013-07-29 03:53:24
【问题描述】:

我想知道是否有人可以解释一下 scipy.stats 中的以下函数的作用:

rv_continuous.expect
rv_continuous.pdf

我已经阅读了文档,但我仍然感到困惑。

这是我的任务,理论上很简单,但我仍然对这些函数的作用感到困惑。

所以,我有一个区域列表,有 16383 个值。我想找出变量 area 取较小值(称为“inf”)和较大值“sup”之间的任何值的概率。

所以,我的想法是:

scipy.stats.rv_continuous.pdf(a) #a being the list of areas
scipy.stats.rv_continuous.expect(pdf, lb = inf, ub = sup)

这样我就可以得到任何区域在 sup 和 inf 之间的概率。

谁能帮我简单解释一下函数的作用以及如何计算 f(a) 在 inf 和 sup 之间的积分的任何提示?

谢谢

布莱斯

【问题讨论】:

标签: python statistics scipy probability-density


【解决方案1】:

rv_continuousscipy.stats 中实现的所有概率分布的基类。你不会自己在rv_continuous 上调用方法。

你的问题并不完全清楚你想要做什么,所以我假设你有一个从某个未知概率分布中提取的 16383 个数据点的数组。从原始数据中,您需要估计累积分布,在 supinf 值处找到该累积分布的值,然后减去以找到从未知分布中提取值的概率。

有很多方法可以从数据中估计未知分布,具体取决于您要进行多少建模和做出多少假设。在更复杂的范围内,您可以尝试将标准参数概率分布之一拟合到数据中。例如,如果您怀疑您的数据是对数正态分布的,您可以使用scipy.stats.lognorm.fit(data, floc=0) 来查找适合您的数据的对数正态分布参数。然后您可以使用scipy.stats.lognorm.cdf(sup, *params) - scipy.stats.lognorm.cdf(inf, *params) 来估计值介于这些值之间的概率。

中间是分布估计的非参数形式,如直方图和核密度估计。例如,scipy.stats.gaussian_kde(data).integrate_box_1d(inf, sup) 是一种使用未知分布的高斯核密度估计进行此估计的简单方法。但是,内核密度估计并不总是合适的,需要进行一些调整才能正确。

您可以做的最简单的事情就是计算位于infsup 之间的数据点数,然后除以您拥有的数据点总数。这仅适用于大量点(您拥有)和数据尾部不太远的边界。

【讨论】:

    【解决方案2】:

    累积密度函数可能会给您想要的结果。 那么P 在两个值之间的概率是 P(inf < area < sup) = cdf(sup) - cdf(inf)

    有一个关于概率的教程herehere 它们都是相关的。 pdf 是概率的“密度”。它们必须大于零并且总和为 1。我认为它表明某事的可能性有多大。期望是平均概念的概括。

    E[x] = sum(x.P(x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 2017-07-13
      • 1970-01-01
      • 2019-05-27
      • 2020-05-22
      • 2015-09-04
      • 2018-09-13
      相关资源
      最近更新 更多