2015-01-22 3 views
0

Я изучаю статистику и вероятность (aleks.com), и у них есть онлайн-калькулятор, который вычисляет вероятности стандартной нормальной случайной величины.Распределение вероятности линейной алгебры Бриз

Пример: P (Z> 1,26)

Однако, я также научиться использовать Breeze линейную алгебру Scala библиотеку, и я хотел бы понять, как реализовать этот расчет с использованием пакета breeze.stats.

Заранее спасибо.

EDIT:

Я увеличивая мой вопрос последующего к ответу от @dlwh для того, чтобы заполнить больше мое понимание на Gausian класса: Как я потом обратно шаблон использовать вероятность значение для получения конкретного значения (-ов) для области?

Пример: мне нужно, чтобы определить величину с учетом вероятности 0,9426 (что 1,90)

// P(-c <= Z <= c) = 0.9426

val gau_dist = new Gaussian(0.0, 1.0)

val tailArea = (1 - 0.9426)/2 //> Double = 0.028700000000000003

1 - gau_dist.cdf(1.90) // = tailArea //> Double = 0.02871655981600174

ответ

2

Используйте гауссова класс от breeze.stats.distributions._:

scala> import breeze.stats.distributions._ 
import breeze.stats.distributions._ 

scala> Gaussian(0, 1).cdf(1.26) 
res1: Double = 0.8961653188786995 

scala> 1.0 - Gaussian(0, 1).cdf(1.26) 
res2: Double = 0.10383468112130045 

scala> Gaussian(0, 1).sample(1000000).count(_ > 1.26) 
res3: Int = 103981 

Первый (с использованием метода cdf) дает вам аналитический способ, а второй - эмпирическую оценку/monte carlo.

+1

Возможно, я должен добавить: cdf - это функция «кумулятивной плотности», и вероятность того, что случайное число, полученное из распределения, меньше, чем переданное значение. То есть: гауссовский (0, 1) .cdf (x) = P (Z dlwh

+0

Отлично! Спасибо. –

+0

Еще раз спасибо @dlwh. Я добавил еще одну часть моего вопроса, если вы не возражаете, об использовании значения области для получения значения вероятности. –