我正在尝试为由集成定义的分布编写似然函数。我正在使用 integration() 函数,但是当我尝试在函数的其余部分中使用它时,我得到了错误:
“B(alpha + i, beta + 6 - i)/B(alpha, beta) 中的错误:二元运算符的非数字参数”
例如,积分值是“9.501501,绝对误差 < 0.00078”。我试过使用 trunc() 但这也无济于事。我对 R 比较陌生,所以有一个已知的解决方案吗?任何帮助,将不胜感激!
B <- function(a,b){
integrand <- function(t){(t^(a-1))*((1-t)^(b-1))}
integrate(integrand,lower=0,upper=1)
}
betalik <- function(alpha,beta){
likelihood <- 0 Z <- c(37,22,25,29,34,49)
for(i in 1:6)
likelihood <- likelihood +
Z[i]*log((B(alpha+i,beta+6-i))/B(alpha,beta))
return(likelihood)
}
多里安,