我正在研究统计和概率(aleks.com),他们有一个在线计算器,可以计算标准正态随机变量的概率。
示例:P(Z> 1.26)
但是,我也在学习使用Breeze线性代数Scala库,我想了解如何使用breeze.stats包实现这个计算。
提前致谢。
修改
我在@dlwh的答案之后增加了我的问题,以便更多地了解我对Gausian类的理解:我如何反转模式以使用概率值来获得具体值( s)该地区?
示例:我需要确定c的值,给出概率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
答案 0 :(得分:2)
使用breeze.stats.distributions中的Gaussian类._:
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方法)为您提供分析方法,第二个是经验/蒙特卡罗估计。