Для нормального распределения с заданными mu
и sigma
, каков компактный и чистый способ создания таблицы с вероятностями в диапазоне значений r
(так что позже я смогу построить их в виде гистограммы)?
То, как я делаю это сейчас с scipy
, работает, но это ужасно, поэтому я надеюсь, что кто-то может предложить что-то более чистое?
from scipy.stats import norm
mu = 0
sigma = 5
step = 5
eps = 20
r = list(range(mu-eps, mu+eps + 1, step))
print(r)
for i, j in enumerate(r):
if i == 0:
range_desc = '<{}'.format(j)
v = norm(mu, sigma).cdf(j)
else:
range_desc = '{} - {}'.format(r[i-1], j)
v = norm(mu, sigma).cdf(r[i]) - norm(mu, sigma).cdf(r[i - 1])
print(range_desc, ':::\t', v)
ВЫВОД:
[-20, -15, -10, -5, 0, 5, 10, 15, 20]
<-20 ::: 3.167124183311986e-05
-20 - -15 ::: 0.0013182267897969735
-15 - -10 ::: 0.0214002339165491
-10 - -5 ::: 0.13590512198327787
-5 - 0 ::: 0.3413447460685429
0 - 5 ::: 0.3413447460685429
5 - 10 ::: 0.13590512198327787
10 - 15 ::: 0.021400233916549105
15 - 20 ::: 0.0013182267897969835