我将了解可爱的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有什么区别?交替使用它们时,我会看到非常相似的结果。
感谢您的见解。
答案 0 :(得分:2)
Looking at the source,您可以看到sd
参数是sigma
的别名。请注意,如果您同时提供两者,则sd
优先。
关于命名,它是从the Distribution
class继承的,enter image description here是层次结构中唯一实际定义了__new__()
方法的代码。正是这个基类选择了该参数,其余的都传递给了Beta.__init__()
方法。