gpt4 book ai didi

python - 你如何使用 scipy.stats.rv_continuous?

转载 作者:太空狗 更新时间:2023-10-29 20:22:57 26 4
gpt4 key购买 nike

我一直在寻找关于如何使用 rv_continuous 的好的教程或示例,但一直找不到。

我读了:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_continuous.html#scipy.stats.rv_continuous

但它实际上并没有那么有用(并且缺少任何如何使用它的示例)。

我想做的事情的一个例子是,指定任何概率分布并能够调用 fit 然后只是简单地拥有我想要的 pdf 并能够调用expect 并得到想要的期望值。

目前我所理解的是,要创建任何可能的分布,我们需要为它创建我们自己的类,然后将 rv_continuous 子类化。然后通过指定自定义 _pdf_cdf 我们应该能够简单地使用 rv_continuous 为我们提供的每个方法。 expectfit 现在应该可用了。

然而,对我来说真正神秘的是,如果我们不明确告诉 rv_continuous 指定概率分布的参数是什么,它真的能够正确地执行所有这些方法吗?它是如何仅使用 _pdf 或 _cdf 来实现的?

还是我误解了它的工作原理?

此外,如果您能提供一个简单的示例来说明它的工作原理以及如何使用 expect 和/或 fit,那就太棒了!或者更好的教程或链接会很酷。

提前致谢。

最佳答案

这是一个教程: https://docs.scipy.org/doc/scipy/tutorial/stats.html

基本上,rv_continuous 是为子类化而设计的。如果您需要一个未在 scipy.stats 中定义的分布(其中有 70 多个),请使用它。

关于它是如何工作的。简而言之,它使用通用代码路径:如果您的子类定义了 _pdf 而没有定义 _logpdf,那么它继承

def _logpdf(self, x, *args):
return log(self._pdf(x, *args))

和一堆类似的方法(请参阅 https://github.com/scipy/scipy/blob/master/scipy/stats/_distn_infrastructure.py 了解详细信息)。

重新参数。您可能是指形状参数,对吗?它们是通过inspect_pdf_cdf 的签名自动推断出来的,参见https://github.com/scipy/scipy/blob/master/scipy/stats/_distn_infrastructure.py#L617 .如果您想绕过检查,请向实例的构造函数提供 shapes 参数:

class Mydist(stats.rv_continuous):
def _pdf(self, x, a, b, c, d):
return 42
mydist = Mydist(shapes='a, b, c, d')

[严格来说,这只适用于scipy 0.13及以上版本。早期版本使用不同的机制并需要 shapes 属性。]

关于python - 你如何使用 scipy.stats.rv_continuous?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com