0

为了从 beta 发行版中采样,我编写了该代码:

{
  stopifnot(n > 0 & all(beta > 0) & all(alpha > 0))
  x <- runif(n)
  Fa <- pbeta(a, alpha, beta)
  Fb <- pbeta(b, alpha, beta)
  y <- (1-x)*Fa + x*Fb
  return(qbeta(y, alpha, beta))
}

该代码几乎适用于aand的所有值b。事实是,当ab太接近 0 或 1 时,代码不再起作用。例如,对于a=0.00015and b=0.00020,R 给出的Faand的值为Fb1。由于这两个值相同,因此代码不再起作用。但是这些值应该是不同的,因为pbeta(a, alpha, beta, log=TRUE)是不同的 pbeta(b, alpha, beta, log=TRUE)

我的问题是,有没有办法找到Faand的真正价值Fb

4

0 回答 0