pymc3:Beta 分布 sd 与 sigma

pymc3: Beta Distribution sd vs sigma

我正在了解可爱的 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 有什么区别?当交替使用它们时,我看到了非常相似的结果。

感谢您的任何见解。

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

至于命名,这是继承自the Distribution class,这是层次结构中唯一真正定义了__new__()方法的。正是这个基础 class 挑出了那个论点,其余的都传递给了 Beta.__init__() 方法。