【问题标题】:Find intersection between a beta and a normal distribution查找 beta 和正态分布之间的交集
【发布时间】:2014-06-17 05:26:54
【问题描述】:

我有 2 个分布 - 1 个 beta 和 1 个正态分布,我需要找到它们的 pdf 的交集。我知道两者的参数,并且能够直观地看到交叉点,但我正在寻找 R 计算确切点的方法。有人知道如何做到这一点吗?

【问题讨论】:

    标签: r distribution normal-distribution beta-distribution


    【解决方案1】:

    使用uniroot()

    uniroot(function(x) dbeta(x, 1, 2)-dnorm(x, 0, 1), c(0, 1))
    ## $root
    ## [1] 0.862456
    ## 
    ## $f.root
    ## [1] 5.220165e-05
    ## 
    ## $iter
    ## [1] 3
    ## 
    ## $estim.prec
    ## [1] 6.103516e-05
    

    这解决了一个方程dbeta(x, ...) == dnorm(x, ...) w.r.t。 x(在 inverval [0,1] 中,因为这是对 beta 分布的支持),即找到 dbeta(x, ...) - dnorm(x, ...) 的根。结果列表的 root 字段为您提供答案(或多或少准确)。

    【讨论】:

    • 感谢您的回复!这可能是一个愚蠢的问题,但我应该为 x 输入一些东西吗?我使用我的参数尝试了上面的代码,当我期待大约 0.6 的值时,我得到了 2.710505e-20 的答案。是否有可能有多个交叉点,而这只给出了第一个?
    • 2.71e020 实际上等于 0。你的参数是什么?如果您确定它在 0.6 左右,您可能希望寻找解决方案,例如在区间 [0.5,0.7] 内。顺便说一句,x 可以,它是一个变量,用于搜索解决方案。
    • 是的,我只需要将区间从 c(0,1) 更改为 c(.2,.8) 并得到 0.58 的答案。感谢您的帮助!
    猜你喜欢
    • 2018-09-04
    • 2018-06-16
    • 1970-01-01
    • 2015-03-06
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多