【问题标题】:Breeze linear algebra probability distributionBreeze 线性代数概率分布
【发布时间】:2015-01-27 08:17:27
【问题描述】:

我正在研究统计和概率 (aleks.com),他们有一个在线计算器可以计算标准正态随机变量的概率。

示例:P(Z > 1.26)

不过,我也在学习使用 Breeze 线性代数 Scala 库,我想了解如何使用微风.stats 包实现此计算。

提前致谢。

编辑:

我在@dlwh 的回答之后增加了我的问题,以补充我对高斯类的更多理解:然后我如何反转模式以使用概率值来获得具体值区域?

示例:给定概率 0.9426(即 1.90),我需要确定 c 的值

// 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

【问题讨论】:

    标签: scala-breeze


    【解决方案1】:

    使用来自微风.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 方法)为您提供分析方法,第二个是经验/蒙特卡罗估计。

    【讨论】:

    • 我可能应该补充一点:cdf 是“累积密度函数”,它是从分布中抽取的随机数小于传入值的概率。即:Gaussian(0, 1).cdf(x) = P(Z
    • 再次感谢@dlwh。如果您不介意,我在我的问题中添加了另一部分,关于使用面积值来获取概率值。
    • 要获得一个范围 P(-c
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2016-07-09
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多