[英]python scipy.stats pdf and expect functions
我想知道是否有人可以解释scipy.stats中的以下功能:
rv_continuous.expect
rv_continuous.pdf
我已经阅读了文档,但仍然感到困惑。
这是我的任务,理论上很简单,但是我仍然对这些功能的作用感到困惑。
因此,我有16383个值的区域列表。 我想找到可变区域取较小值(称为“ 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之间。
有人能通过简单的方式解释这些函数的作用以及有关如何计算inf和sup之间的f(a)积分的任何提示吗?
谢谢
布莱斯
rv_continuous
是所有中实现的概率分布的一个基类scipy.stats
。 您不会自己在rv_continuous
上调用方法。
您的问题尚不清楚您要做什么,因此我假设您有16383个数据点数组,这些数据点是从某种未知的概率分布中得出的。 从原始数据中,您将需要估计累积分布,在sup
和inf
值处找到该累积分布的值,然后减去以找出从未知分布中提取值的可能性。
有多种方法可以根据数据估算未知分布,具体取决于您要进行多少建模和要进行多少假设。 在频谱更复杂的一端,您可以尝试将标准参数概率分布之一拟合到数据中。 例如,如果您怀疑数据是对数正态分布的,则可以使用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)
是使用未知分布的高斯核密度估计进行此估计的简便方法。 但是,内核密度估计并不总是合适的,需要进行一些调整才能正确。
您可以做的最简单的事情就是计算介于inf
和sup
之间的数据点的数量,然后除以您拥有的数据点的总数。 这仅适用于较大数量的点(具有的点)以及在数据尾部距离不太远的边界。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.