Найдите нормальное стандартное отклонение от cdf в определенной точке и среднее значение распределения

У меня есть три точки данных:

  1. У меня раздача нормальная
  2. Распределение имеет среднее значение, которое я знаю (m), и
  3. Я знаю cdf (p) распределения в другой точке (x).

Исходя из этого, я хочу найти стандартное отклонение (std) функции. Я пытаюсь решить эту проблему с помощью интеграции scipy и fsolve, но пока это не работает.

В частности, я пробовал:

def func(std, x, m, p):
     return integrate.quad(np.exp(-(t-m)**2/std**2), -10000, x) - p

x0 = fsolve(func, 2 args=(3, 0, 0.96))

Такое ощущение, что я неправильно подхожу к этой проблеме. Кто-нибудь может помочь?


person Chris    schedule 05.10.2018    source источник


Ответы (1)


Совершенно неправильно делал, должно быть:

def func(std, x, m, p):
    return (norm.cdf(x, m, std) - p)

fsolve(func, 3, args=(0, -5, 0.8))
person Chris    schedule 06.10.2018