2012-06-06 3 views
4

Есть ли какая-либо функция, которая позволяет мне вычислить вероятность CDF нормального распределения, учитывая среднее значение и сигма? то есть, например, P (X < x), учитывая нормальное распределение с $ \ bar {x} $ и $ \ sigma $.Как вычислить вероятность CDF нормального распространения в C++?

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

+0

, если вы используете C++ 11, есть 'егГ()' в '' . См. Ниже ответ @ Dirk, чтобы использовать его с нестандартными нормальными дистрибутивами. – Shep

ответ

6

Вы масштабируете - любое N (m, s) можно превратить в N (0,1), разделив на s и вычитая m. Итак, все, что вам нужно, это cdf для N (0,1), который предоставляется рядом библиотек.

Вот простой пример R:

R> pnorm(1.96, 0, 1)   # compute cdf of 1.96 for N(0,1) 
[1] 0.975002 
R> pnorm(1.96*3 + 2, 2, 3) # mu + sd*1.96 is really the same for N(mu, sd) 
[1] 0.975002 
R> 
+0

О, хорошо, может сделать это прямо! даже это не стандартное распределение. Однако я не знал о масштабах, спасибо. – shn

+0

Я даже не проверял, но я взглянул на pnorm.c и это так же, как и m и s (по умолчанию, конечно, 0 и 1, конечно) не поставляются. Поскольку операция настолько простая и общая, большинство библиотек действительно предлагают ее. Но все же удобно знать скейлинг-трюк :) –

+0

Кому-то, кто просто случайно опущен, не оставив комментария: Ха? –