代码之家  ›  专栏  ›  技术社区  ›  sleepynichijou

如何估计r中已知百分位数的β分布参数?

  •  0
  • sleepynichijou  · 技术社区  · 7 年前

    我有一个数据集,我知道它来自beta发行版,但参数未知:

    2.5%0.264 50%0.511 97.5%0.759

    有没有找到最佳的贝塔分布和估计形状参数使用R?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Onyambu    7 年前
    m=function(z){
       if(any(z<0))return(NA)
       x=z[1];y=z[2]
       a=c(qbeta(0.025,x,y),qbeta(0.5,x,y),qbeta(0.975,x,y))-c(0.264,0.511,0.759)
       b=c(pbeta(0.264,x,y), pbeta(0.511,x,y), pbeta(0.759,x,y))-c(0.025,0.5,0.975)
       abs(a)+abs(b)
     }
    sol=optim(c(0.1,1),function(x)sum(abs(m(x))),m)$par;sol
    [1] 7.375020 7.071576
    pbeta(0.264,sol[1],sol[2])
    [1] 0.02500033# almost close to 0.025
     pbeta(0.511,sol[1],sol[2])
    [1] 0.5
     pbeta(0.759,sol[1],sol[2])
    [1] 0.9774994
     qbeta(0.025,sol[1],sol[2])
    [1] 0.2639994
     qbeta(0.5,sol[1],sol[2])
    [1] 0.511
     qbeta(0.975,sol[1],sol[2])
    [1] 0.7542515
    

    您也可以决定只使用 pbeta qbeta 仅此而已,所有这些都将产生不同的结果,但接近正确的结果。

    推荐文章