подкласс scipy.stats.rv_continuous

#python #scipy.stats

#python #scipy.stats

Вопрос:

Я потратил значительные усилия и поиски, пытаясь создать подкласс scipy.stats.rv_continuous для создания новой параметризации распределения вероятности Вейбулла ( weibull_max ), но не понимаю, как это должно быть сделано. Я пытаюсь настроить дистрибутив, чтобы иметь возможность использовать методы pdf, cdf, random variates и fit.

Я могу сгенерировать нужный PDF-файл, используя следующую независимую функцию:

 def weibull3P_pdf(x, shape, thres=0, loc=0, scale=1):
    return np.flip(scistats.weibull_max
                   .pdf(-x - thres, shape,
                        loc=loc, scale=scale))
  

Можно было бы предположить, что тогда должно сработать следующее:

 class weibull3P_gen(scistats.rv_continuous):

    def _argcheck(self, c, k):
        return (c > 0) amp; (k < 0)

    def _get_support(self, c, k):
        return k, -k

    def _pdf(self, x, c, k):
        # Adjusted accordingly from weibull_max._pdf
        return c * pow(-x - k, c - 1) * np.exp(-pow(-x - k, c))


weibull3P = weibull3P_gen(name="weibull3P")
  

но pdf метод не дает тех же результатов. Любые указатели приветствуются.