我试图通过使用总计数和beta分布来制定先验。在R中使用Beta.Select函数(事先估计)
我有以下记载:
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
我只是无法摆脱的错误,不知道如何处理它。迫切需要帮助。
什么是'df'?也许是一个'dput(df)'? – 2013-03-25 06:20:38
对于beta分布值应该介于0和<1之间。在你的例子中,0.5分位数是x = 8,0.9999分位数是x = 10 - 所以你会得到错误信息。 – 2013-03-25 06:28:36