在R中使用Beta.Select函数(先前估计)

时间:2013-03-25 06:05:59

标签: r statistics probability

我试图通过使用总计数和beta分布来制定先验。

我写了以下文字:

quantile(df$row, probs=c(0.00001, 0.5, 0.99999))

quantile1 <- list(p=0.5, x=8)
quantile2 <- list(p=0.99999, x=10)
quantile3 <- list(p=0.00001, x=1)

library("LearnBayes")
findBeta <- function(quantile1,quantile2,quantile3)

quantile1_p <- quantile1[[1]]; quantile1_q <- quantile1[[2]]
quantile2_p <- quantile2[[1]]; quantile2_q <- quantile2[[2]]
quantile3_p <- quantile3[[1]]; quantile3_q <- quantile3[[2]]

priorA <- beta.select(list(p=0.5, x=8), list(p=0.99999, x=10))

一旦我尝试使用beta.select函数计算PriorA,我会得到以下错误:

Error in if (p0 < p) m.hi = m0 else m.lo = m0 : 
  missing value where TRUE/FALSE needed
In addition: Warning message:
In pbeta(x, K * m0, K * (1 - m0)) : NaNs produced

我无法摆脱错误,不知道如何处理错误。迫切需要帮助。

1 个答案:

答案 0 :(得分:1)

我猜测(完全是凭空)你正在处理百分比。在这种情况下,您想使用x/100

beta.select(list(p=0.5, x=.08), list(p=0.9, x=.10))
#  [1]  28.02 318.74

无论哪种方式,虽然beta.select可能会抛出更合适的错误消息(或者更确切地说,在那里进行错误检查),但问题的根源在于x是超出界限的。 (正如@Didzis指出的那样,beta dist的间隔是[0, 1]