我一直在寻找一个很好的教程或如何使用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
为我们提供的每一个方法。像expect
和fit
现在应该是可用的。
然而,对我来说真正神秘的是,如果我们不明确地告诉rv_continuous指定概率分布的参数是什么,它真的能够正确地执行所有这些方法吗?它甚至是如何仅仅用_pdf或_cdf来执行的?
还是我误解了它的工作原理?
另外,如果你能提供一个简单的例子,说明它是如何工作的,以及如何使用expect
和/或fit
,那就太棒了!或者也许一个更好的教程或链接会很酷。
提前致谢。
1条答案
按热度按时间sczxawaw1#
以下是一个教程:https://docs.scipy.org/doc/scipy/tutorial/stats.html
基本上,
rv_continuous
是为子类化而设计的。如果你需要一个scipy.stats中没有定义的分布(有超过70个),就使用它。简单地说,它使用通用的代码路径:如果子类定义了
_pdf
而没有定义_logpdf
,则它继承以及一系列类似的方法(请参阅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
参数:【严格来说,这只适用于scipy 0.13以上的版本,之前的版本使用的是不同的机制,需要
shapes
属性。】