Верхние и нижние границы для замороженного объекта распределения в scipy.stats - PullRequest
1 голос
/ 17 апреля 2020

При создании замороженного rv_continuous дистрибутива в scipy.stats я ожидал, что параметры, которые определяют границы (a и b), будут автоматически заполнены правильно, но они не кажутся:

>>> from scipy.stats import uniform
>>> d = uniform(20, 40) # U[20,60] distribution
>>> d.a # expect 20, get 0
0.0
>>> d.b # expect 60, get 1
1.0

Методы работают ОК:

>>> d.mean() # expect 40, get 40
40.0
>>> d.interval(1) # expect [20,60], get [20,60]
(20.0, 60.0)

(d.interval(1) в основном добивается цели, так как я хочу получить границы.)

Есть ли что-то, что у меня есть сделать, чтобы .a и .b обновились?

1 Ответ

1 голос
/ 24 апреля 2020

Я немного покопался в исходном коде и, насколько я понимаю, нет способа обновить эти атрибуты.

a и b по умолчанию определены как 0 и 1 в строке 7914 _continuous_distns.py

uniform = uniform_gen(a=0.0, b=1.0, name='uniform')

Но я тогда не мог видеть ни одного примера того, как эти переменные действительно используются. Скорее нижняя и верхняя границы устанавливаются с помощью параметров lo c и scale, где нижняя граница равна lo c, а верхняя граница равна lo c + scale.

Наилучшее способ получить верхнюю и нижнюю границы, я бы сказал, это использовать метод поддержки

uniform(20,40).support()
>>>
(20,60)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...