pymc3:测试版分发版标准差与标准差

时间:2019-12-04 22:56:06

标签: pymc3

我将了解可爱的pymc3库,并希望确保我理解正确。 Beta发行版的签名为class pymc3.distributions.continuous.Beta(alpha=None, beta=None, mu=None, sigma=None, sd=None, *args, **kwargs)。实际上,当在模型中使用它时,您需要使第一个参数成为分发的字符串名称,但是我在这里看不到。更重要的是,文档似乎说明了除“ sd”以外的所有参数。

Parameters
alpha: float
alpha > 0.

beta: float
beta > 0.

mu: float
Alternative mean (0 < mu < 1).

sigma: float
Alternative standard deviation (0 < sigma < sqrt(mu * (1 - mu))).

似乎我可以使用alpha和beta,mu和sigma或mu和sd定义beta分布。当我尝试使用alpha和mu定义beta分布时,我被告知ValueError: Incompatible parameterization. Either use alpha and beta, or mu and sigma to specify distribution.似乎也忽略了sd。

我的主要问题是,sigma和sd有什么区别?交替使用它们时,我会看到非常相似的结果。

感谢您的见解。

1 个答案:

答案 0 :(得分:2)

Looking at the source,您可以看到sd参数是sigma的别名。请注意,如果您同时提供两者,则sd优先。

关于命名,它是从the Distribution class继承的,enter image description here是层次结构中唯一实际定义了__new__()方法的代码。正是这个基类选择了该参数,其余的都传递给了Beta.__init__()方法。