2013-03-25 2 views
1

Я пытаюсь сформулировать приоритеты, используя общий счет и бета-распределение.Использование функции Beta.Select в R (предварительная оценка)

я следующее написано:

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)) 

и когда я пытаюсь вычислить Priora с помощью функции beta.select я получаю следующее сообщение об ошибке:

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 

Я просто не могу избавиться от ошибка и не знаю, как подойти к ней больше. Срочно нужна помощь.

+0

что такое 'df'? возможно, 'dput (df)'? –

+0

Для значений бета-распределения должно быть от 0 до <1. В вашем примере 0.5 quantile - x = 8 и 0.9999 quantile - x = 10 - так что вы получите сообщение об ошибке. –

ответ

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, интервал для бета-dist равен [0, 1])

+0

Да, я это понял. Поскольку я использовал бета-дистрибутив в качестве подгонки, мне приходилось пересчитывать байесовское распространение на случайности. Некоторые, где в цикле функция beta.select либо оценивала отрицательные значения, либо значения, превышающие 1, что невозможно для распределения. Благодарим за отзыв. – user2206363

 Смежные вопросы

  • Нет связанных вопросов^_^