Если X нормальный со средним значением 0 и сигмой стандартного отклонения, он должен содержать
P = Prob[ -a <= X <= a ] = Prob[ -a/sigma <= N <= a/sigma ]
= 2 Prob[ 0 <= N <= a/sigma ]
= 2 ( Prob[ N <= a/sigma ] - 1/2 )
где N нормальное со средним 0 и стандартным отклонением 1. Следовательно
P/2 + 1/2 = Prob[ N <= a/sigma ] = Phi(a/sigma)
Где Phi - кумулятивная функция распределения (cdf) нормальной переменной со средним значением 0 и stddev 1. Теперь нам нужен обратный нормальный cdf (или «функция процентной точки»), которая в Python это scipy.stats.norm.ppf (). Пример кода:
from scipy.stats import norm
P = 0.3456
a = 3.0
a_sigma = float(norm.ppf(P/2 + 0.5)) # a/sigma
sigma = a/a_sigma # Here is the standard deviation
Например, мы знаем, что вероятность того, что переменная N (0,1) попадет в интервал [-1,1], равна ~ 0,682 (темно-синяя область в на этом рисунке ). Если вы установите P = 0,682 и a = 1,0, вы получите сигма ~ 1,0, что действительно является стандартным отклонением.