我试图弄清楚如何创建一个新的scipy.stats.rv_continuous
子类。我的分布取决于“位置”和“形状”参数,但每个示例都_pdf
假设scipy.stats.distributions
形状和位置参数可以简单地应用于 X 轴,而某些分布并非如此。
例如,我正在使用的一个分布是对数正态的修改版本,其中 X 轴位置显式取决于分布的宽度,即:
def _pdf(self, x, x0, s):
Px = exp(-(log(x/x0)+s**2/2.)**2 / (2*s**2))
return Px / (s*x0*sqrt(2*pi))
我希望能够使用loc
forx0
和scale
for s
。有什么办法可以做到这一点,还是有更好的子类化方法rv_continuous
?
(请注意,简单地使用我定义的 PDF 会导致其他rv_continuous
方法出现问题,例如.fit
,因为loc
和scale
仍然被视为“自由参数”,即使它们不应该是)